導航:首頁 > 軟體知識 > 程序員如何走技術路線

程序員如何走技術路線

發布時間:2023-08-19 12:21:42

『壹』 幹了兩年程序員了,不知道下面的路該怎麼走了,請前輩們指點下好嗎

我有幾個做程序員的朋友,因為我是做職業規劃的,之前有朋友也咨詢過我類似的問題,答復如下:

1.首先,程序員是非常枯燥的工作,做了大概兩年左右都會有倦怠期,這個時候應該問問自己,我還要不要繼續做IT類工作。

2.若確認繼續做此類工作,那麼有兩個選擇,第一是繼續鑽研技術,平時多到網路平台找同行交流或學習。第二是轉運維類工作,我有兩個朋友就是由編程轉到了運維。其實還有第三,可以走管理方向,不過這個需要自己多學習管理類技能,同事也要有這方面的興趣。

作為一名從業多年的程序員,同時也是一名教育工作者,我來回答一下這個問題。

對於從業兩年的程序員來說,正處在技術成長期,如果未來想在技術領域走得更遠,此時應該注重開發經驗的積累,同時應該廣泛涉獵各種技術體系,尤其要注重各種新技術的學習,包括大數據、物聯網、雲計算、區塊鏈、人工智慧等技術體系。對於程序員來說,在從業的最初五年,一定要多做「加法」,更多的技術儲備能夠為崗位升級奠定一個扎實的基礎。

對於專注於行業領域的應用級程序員來說,還應該重視行業經驗的積累,在產業互聯網時代,行業經驗對於程序員未來的發展有非常重要的影響。對於大部分基礎知識比較薄弱的程序員來說,如果不能在技術研發的道路上走得更遠,就應該考慮未來的發展方向,如果具有豐富的行業經驗,會在很大程度上拓展自身的選擇空間。從當前行業發展趨勢來看,程序員可以考慮向產品經理、項目經理、行業信息化專家等方向發展。

對於從業兩年的初級程序員來說,如果條件允許的話,還可以考慮通過讀研來提升自身的崗位級別,目前有不少初級程序員都會選擇考研。按照 歷史 經驗來看,大部分程序員在考研之後都會獲得崗位升級,不少人在讀研之後會選擇進入互聯網大廠發展,薪資待遇也有了一定程度的提升。從這個角度來看,程序員讀研也是一個不錯的選擇。

最後,隨著產業互聯網的發展,當前程序員應該注重雲計算平台、物聯網平台和人工智慧平台相關技術的學習,未來這些平台將有廣闊的發展空間。

兩年也就相當於是剛入行的一個程度,那這個程度就是要多努力幹活,多學多練,想任何其他的都是白費功夫,因為你沒有其他的時間積累,在二至四年的這個時間里,要把自己的工資技術水平提升到你所在的那個城市圈子裡面的中上等的水平,然後你要有一個比較謹慎的思維,不要空有一個想法。

那麼這個時候你個思想和你這個能力就不匹配了。我們首先要選擇考慮的就是北上廣深。你現在還可以努力干到35歲左右。另外技術這個行業它分為一個是偏技術型,另外一個是業務驅動型,還有就是屬於技術骨乾性。偏技術型的話,不建議你選這個,因為不管是程序員也好,前端也好,都是工程師,都是幹活的,不搞科研,雖然很多it公司技術部要求很多,但是都是幹活的,沒有說太深的一些技術要求,基本上就是用於日常的技術啊bug。

另外一個是業務驅動型,也叫業務,就是你要主導需求就是客戶你能找到自己的客戶,然後還要和前端一起去搞定這些問題,你要有老闆的一個思維,自己乾的時間長了,那麼你就能找到自己的這個路了,不管是你創業還是說去其他的地方去做都對自己非常有好處。

你現在考慮的可能就是說以後怎麼發展他這個技術程序員發展的話一般是年齡平均到35歲左右的時候,你就可以通過前期的一些積累,然後鋪墊到35歲的時候,你就可以去做其他的行業的,因為你到35歲的時候,不管是去面試或者是帶領團隊熬夜,很多時候有些東西都跟不上了,所以建議你到那個時候去轉行。

你好,作為一個工作4年的同學,我想以個人經歷回答下這個問題。對於工作兩年的程序員來說,大都是處於技術的快速上升期,應該也接觸了挺多的技術面,包括但不限於分布式、資料庫、網路、大數據等,並且可能對某個框架或者技術有了自己的深入見解。

對於以後的發展,如果是想往 中間件方向發展 的話,需要掌握分布式原理、網路通信、消息隊列、資料庫操作、緩存等,大多數中間件都涉及到分布式支持。可以看幾個不同類型的中間件的原理與設計實現,比如MQ可以看Rockermq,資料庫可以看MySQL,緩存可以看Redis,網路通信庫可以看Netty,配置中心可以看Apollo等,注意,每種類型的中間件或者框架重點學習一個即可,因為思想都是相同的,理解了一個之後在學其他的很快就能上手掌握。當然,除了自己的技術學習之外,一個好的平台也是很重要的,不僅僅能夠認識一幫志同道合的朋友,還能有實際的業務平台去實現技術的價值,這里推薦阿里的中間件相關崗位,目前中國中間件團隊的java水平基本是阿里最高水平了,在這里誕生了很多知名的開源軟體。

針對1-5年的程序員關於技術點來說,可以參考芋道源碼整理的下面一張圖進行查漏補缺:

上面羅列的技術目前我也在學習中,對於技術人來說,知道自己想要什麼,要比自己知道怎麼要什麼更重要。知道自己想要什麼,你就會想方設法去實現它。不管怎樣,腳踏實地做好自己的工作,學習技術,肯定沒錯。

說實話我對程序這東西一竅不通,但我知道不管什麼事情沒有了程序那就亂了,電腦沒有程序就死機了,人幹事情沒有了程序那就沒有頭緒,我覺得你還是好好乾吧,這個行業永遠淘汰不了。永遠是最需要的東西!

說實話,只是普通的編程圈子不會很大,跳出這個圈子會發現還有很多其他相關的職業。如果在一個小公司,程序員工資雖然偏高,但在運營商務銷售其他職務心裡多少還是會有些輕視,畢竟現在普通程序員太多了,大部分人做的東西千篇一律,而他們認為工資其實是靠他們的能力賺取的。

如果想在小公司發展,可以深入了解業務,和一些其他職位的主力人員維護好關系,倒時候想創業可以合夥,想轉行也會輕鬆些。

如果想在大公司發展,可以走管理,大公司一般比較看重資歷,學歷,管理能力。

還有一種走技術路線的,一般只存在於大公司,這種部門在有的公司很閑只是撐個場面,有的是真正能做出實用的東西值得敬佩。

做任何行業都要堅持,兄弟你才做了兩年,相當於是剛入門,以後要走的路還會很遠。

就現在來說,程序員還屬於是高收入行業,工作還比較好找,趁年輕時好好乾,多積累一些經驗,多做一些大的項目,以後的路會越走越寬。

不太清楚你目前的困惑點在哪裡,是學習新技術感覺力不從心了?還是對技術沒有興趣了?還是不想當程序員了?還是對程序員的發展路線迷茫了?不管怎樣,幹了兩年的程序員,對編程這個工作還是有些經驗了,也能夠解決工作中的一些技術問題,但還處於相對初級的一個水平,畢竟積累不太夠。

建議繼續做2-3年開發工作,提升編程水平,提升解決問題的能力,逐漸成長為公司的技術骨幹。等到那個時候,你的選擇會相對多一些,也會理智一些。例如:你在開發過程中,覺得自己更喜歡跟人打交道,想做項目管理,那麼,你多做2年開發工作,並不耽誤你後面轉為項目經理。你可以將接下來的2年作為一個潛伏期,在做好本質工作的同時,注意一定要做好你的工作,你的工作做好了,自然會得到別人的尊重,也會贏得人脈,千萬不可以為將來不做開發了,就開始敷衍、不用心,做好當下,再考慮將來的發展方向,是換一個公司,換一個崗位,還是換一個城市?畢竟程序員的待遇還是可以的,多做2、3年,沒啥損失。

在迷茫的時候,不要做任何決定,靜觀其變。

大家好!我是鍵盤手,

關於這個問題我想說一下我個人的看法,我個人也是吃技術飯的,現在過了三十五歲了,打工已經沒有公司要了,也不想和大學生去搶飯碗,去工作人在心不在。以前二十幾歲的時候,總認為吃技術飯經驗很重要,年齡越大經歷越豐富,薪資就越高,而現實是,現在的公司一般不招三十五歲以上的人員,而且有些公司把三十五年以上的員工解聘掉,主要是人過了三十五歲,思想和創新能力、學習能力沒有二十幾歲時候強,所以對於技術員來說就是一道坎,很多人到了這個歲數都不敢隨意跳槽,也不敢創業。

所以我個人認為如果你不是很喜歡這個行業,就早點作出選擇,當然越早越好,如果你喜歡,那就深造下去,見意在三十歲之前能夠有所作為,不要再給別人打工,我過了三十五歲才明白,打工是最不劃算的買賣。

就這個問題,我根本不了解你的任何情況,我能指點個毛線。再說我還不是前輩。

幹了兩年程序員了,沒有說乾的好還是不好, 回答裡面的各位大佬,你就認為人家 是乾的不好,說不定這個哥牛的一B。

下面的路怎麼走, 我不知道~ 我也是渣渣,不夠格當人生導師~

『貳』 程序員轉行有哪些方向

1. 程序員最多的兩條進階路線是一條是技術路線,即由程序員、高級程序員、系統分析師,到架構設計師。在這條路線上,立足於從業務模型到計算機軟體模型的轉換,成為高端的軟體技術工作者。

2. 另一條是管理路線,即由程序員,經開發小組負責人、項目經理,再到企業中高層管理者。程序員加強自己管理意識的培養,多站在組織的角度來分析問題和解決問題,成為優秀的管理者,甚至職業經理人。

3. 其實在軟體企業中,隨著產品管理的興起,可以說,走向產品,是程序員在技術與管理之外的第三條職業通道。越來越多的程序員開始轉型做產品工作,特別是對那些具有創業意識的程序員而言,走向產品是一條必經之路。鵝廠的robin和360的周鴻禕,他們都是由程序員做起,然後開創自已的產品和事業。

『叄』 要成為一名專業的程序員,從零開始需要怎麼一步步來比較好,要把最底層的先學精通嗎(個人認為)求學長

前言
你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)
建議:
不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少10年通用。
回顧一下歷史,看看歷史上時間線上技術的發展,你才能明白明天會是什麼樣。
一定要動手,例子不管多麼簡單,建議至少自己手敲一遍看看是否理解了里頭的細枝末節。
一定要學會思考,思考為什麼要這樣,而不是那樣。還要舉一反三地思考。
註:你也許會很奇怪為什麼下面的東西很偏Unix/Linux,這是因為我覺得Windows下的編程可能會在未來很沒有前途,原因如下:
現在的用戶界面幾乎被兩個東西主宰了,1)Web,2)移動設備iOS或Android。Windows的圖形界面不吃香了。
越來越多的企業在用成本低性能高的Linux和各種開源技術來構架其系統,Windows的成本太高了。
微軟的東西變得太快了,很不持久,他們完全是在玩弄程序員。詳情參見《Windows編程革命史》
所以,我個人認為以後的趨勢是前端是Web+移動,後端是Linux+開源。開發這邊基本上沒Windows什麼事。
啟蒙入門
1、 學習一門腳本語言,例如Python/Ruby
可以讓你擺脫對底層語言的恐懼感,腳本語言可以讓你很快開發出能用得上的小程序。實踐項目:
處理文本文件,或者csv (關鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
遍歷本地文件系統 (sys, os, path),例如寫一個程序統計一個目錄下所有文件大小並按各種條件排序並保存結果
跟資料庫打交道 (python sqlite),寫一個小腳本統計資料庫里條目數量
學會用各種print之類簡單粗暴的方式進行調試
學會用Google (phrase, domain, use reader to follow tech blogs)
為什麼要學腳本語言,因為他們實在是太方便了,很多時候我們需要寫點小工具或是腳本來幫我們解決問題,你就會發現正規的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,學會如何配置代碼補全,外觀,外部命令等。
Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日誌會更快更有效率。
3、 熟悉Unix/Linux Shell和常見的命令行
如果你用windows,至少學會用虛擬機里的linux, vmware player是免費的,裝個Ubuntu吧
一定要少用少用圖形界面。
學會使用man來查看幫助
文件系統結構和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
學會使用一些文本操作命令 sed/awk/grep/tail/less/more …
學會使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目錄下的各種配置文章,學會查看/var/log下的系統日誌,以及/proc下的系統運行信息
了解正則表達式,使用正則表達式來查找文件。
對於程序員來說Unix/Linux比Windows簡單多了。(參看我四年前CSDN的博文《其實Unix很簡單》)學會使用Unix/Linux你會發現圖形界面在某些時候實在是太難用了,相當地相當地降低工作效率。
4、 學習Web基礎(HTML/CSS/JS) + 伺服器端技術 (LAMP)
未來必然是Web的世界,學習WEB基礎的最佳網站是W3School。
學習HTML基本語法
學習CSS如何選中HTML元素並應用一些基本樣式(關鍵詞:box model)
學會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網頁結構,並動態修改。
學習使用Javascript操縱HTML元件。理解DOM和動態網頁(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 網上有免費的章節,足夠用了。或參看 DOM 。
學會用 Firefox + Firebug 或 chrome 調試Javascript代碼(設置斷點,查看變數,性能,控制台等)
在一台機器上配置Apache 或 Nginx
學習PHP,讓後台PHP和前台HTML進行數據交互,對伺服器相應瀏覽器請求形成初步認識。實現一個表單提交和反顯的功能。
把PHP連接本地或者遠程資料庫 MySQL(MySQL 和 SQL現學現用夠了)
跟完一個名校的網路編程課程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要覺得需要多於一學期時間,大學生是全職一學期選3-5門課,你業余時間一定可以跟上
學習一個javascript庫(例如jQuery 或 ExtJS)+ Ajax (非同步讀入一個伺服器端圖片或者資料庫內容)+JSON數據格式。
HTTP: The Definitive Guide 讀完前4章你就明白你每天上網用瀏覽器的時候發生的事情了(proxy, gateway, browsers)
做個小網站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網站。
進階加深
1、 C語言和操作系統調用
重新學C語言,理解指針和內存模型,用C語言實現一下各種經典的演算法和數據結構。推薦《計算機程序設計藝術》、《演算法導論》和《編程珠璣》。
學習(麻省理工免費課程)計算機科學和編程導論
學習(麻省理工免費課程)C語言內存管理
學習Unix/Linux系統調用(Unix高級環境編程),,了解系統層面的東西。
用這些系統知識操作一下文件系統,用戶(實現一個可以拷貝目錄樹的小程序)
用fork/wait/waitpid寫一個多進程的程序,用pthread寫一個多線程帶同步或互斥的程序。多進程多進程購票的程序。
用signal/kill/raise/alarm/pause/sigprocmask實現一個多進程間的信號量通信的程序。
學會使用gcc和gdb來編程和調試程序(參看我的《用gdb調試程序》)
學會使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
IPC和Socket的東西可以放到高級中來實踐。
學習Windows SDK編程(Windows 程序設計 ,MFC程序設計)
寫一個窗口,了解WinMain/WinProcere,以及Windows的消息機制。
寫一些程序來操作Windows SDK中的資源文件或是各種圖形控制項,以及作圖的編程。
學習如何使用MSDN查看相關的SDK函數,各種WM_消息以及一些常式。
這本書中有很多常式,在實踐中請不要照抄,試著自己寫一個自己的常式。
不用太多於精通這些東西,因為GUI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:「 我覺得GUI確實不那麼熱門了,但充分理解GUI工作原理是很重要的。包括移動設備開發,如果沒有基礎知識仍然很吃力。或者說移動設備開發必須理解GUI工作,或者在win那邊學,或者在mac/iOS上學」。
2、學習Java
Java 的學習主要是看經典的Core Java 《Java 核心技術編程》和《Java編程思想》(有兩卷,我僅鏈了第一卷,足夠了,因為Java的圖形界面了解就可以了)
學習JDK,學會查閱Java API Doc Java Platform SE 6
了解一下Java這種虛擬機語言和C和Python語言在編譯和執行上的差別。從C、Java、Python思考一下「跨平台」這種技術。
學會使用IDE Eclipse,使用Eclipse 編譯,調試和開發Java程序。
建一個Tomcat的網站,嘗試一下JSP/Servlet/JDBC/MySQL的Web開發。把前面所說的那個PHP的小項目試著用JSP和Servlet實現一下。
3、Web的安全與架構

學習HTML5,網上有很多很多教程,以前酷殼也介紹過很多,我在這里就不羅列了。
學習Web開發的安全問題(參考新浪微博被攻擊的這個事,以及Ruby的這篇文章)
學習HTTP Server的rewrite機制,Nginx的反向代理機制,fast-cgi(如:PHP-FPM)
學習Web的靜態頁面緩存技術。
學習Web的非同步工作流處理,數據Cache,數據分區,負載均衡,水平擴展的構架。
實踐任務:
使用HTML5的canvas 製作一些Web動畫。
嘗試在前面開發過的那個Web應用中進行SQL注入,JS注入,以及XSS攻擊。
把前面開發過的那個Web應用改成構造在Nginx + PHP-FPM + 靜態頁面緩存的網站
4、學習關系型資料庫
你可以安裝MSSQLServer或MySQL來學習資料庫。
學習教科書里資料庫設計的那幾個範式,1NF,2NF,3NF,……
學習資料庫的存過,觸發器,視圖,建索引,游標等。
學習SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
學習如何優化資料庫查詢(參看《MySQL的優化》)
實踐任務:設計一個論壇的資料庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評論最多的文章,最活躍用戶。
5、一些開發工具
學會使用SVN或Git來管理程序版本。
學會使用JUnit來對Java進行單元測試。
學習C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關C語言非常簡單的文章——《編程修養》,這樣的東西你可以上網查一下,一大堆)。
推薦閱讀《代碼大全》《重構》《代碼整潔之道》
高級深入
1、C++ / Java 和面向對象
我個人以為學好C++,Java也就是舉手之勞。但是C++的學習曲線相當的陡。不過,我覺得C++是最需要學好的語言了。參看兩篇趣文「C++學習信心圖」 和「21天學好C++」
學習(麻省理工免費課程)C++面向對象編程
讀我的 「如何學好C++」中所推薦的那些書至少兩遍以上(如果你對C++的理解能夠深入到像我所寫的《C++虛函數表解析》或是《C++對象內存存局(上)(下)》,或是《C/C++返回內部靜態成員的陷阱》那就非常不錯了)
然後反思為什麼C++要干成這樣,Java則不是?你一定要學會對比C++和Java的不同。比如,Java中的初始化,垃圾回收,介面,異常,虛函數,等等。
實踐任務:
用C++實現一個BigInt,支持128位的整形的加減乘除的操作。
用C++封裝一個數據結構的容量,比如hash table。
用C++封裝並實現一個智能指針(一定要使用模板)。
《設計模式》必需一讀,兩遍以上,思考一下,這23個模式的應用場景。主要是兩點:1)鍾愛組合而不是繼承,2)鍾愛介面而不是實現。(也推薦《深入淺出設計模式》)
實踐任務:
使用工廠模式實現一個內存池。
使用策略模式製做一個類其可以把文本文件進行左對齊,右對齊和中對齊。
使用命令模式實現一個命令行計算器,並支持undo和redo。
使用修飾模式實現一個酒店的房間價格訂價策略——旺季,服務,VIP、旅行團、等影響價格的因素。
學習STL的用法和其設計概念 - 容器,演算法,迭代器,函數子。如果可能,請讀一下其源碼。
實踐任務:嘗試使用面向對象、STL,設計模式、和WindowsSDK圖形編程的各種技能
做一個貪吃蛇或是俄羅斯方塊的游戲。支持不同的級別和難度。
做一個文件瀏覽器,可以瀏覽目錄下的文件,並可以對不同的文件有不同的操作,文本文件可以打開編輯,執行文件則執行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
學習C++的一些類庫的設計,如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能會太難了,但是如果你能了解其中的設計模式和設計那就太好了,如果你能深入到我寫的《STL string類的寫時拷貝技術》那就非常不錯了,ACE需要很強在的系統知識,參見後面的「加強對系統的了解」)
Java是真正的面向對象的語言,Java的設計模式多得不能再多,也是用來學習面向對象的設計模式的最佳語言了(參看Java中的設計模式)。
推薦閱讀《Effective Java》 and 《Java解惑》
學習Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學習Java的設計,如IoC等。
Java的技術也是爛多,重點學習J2EE架構以及JMS, RMI, 等消息傳遞和遠程調用的技術。
學習使用Java做Web Service (官方教程在這里)
實踐任務: 嘗試在Spring或Hibernate框架下構建一個有網路的Web Service的遠程調用程序,並可以在兩個Service中通過JMS傳遞消息。
C++和Java都不是能在短時間內能學好的,C++玩是的深,Java玩的是廣,我建議兩者選一個。我個人的學習經歷是:
深究C++(我深究C/C++了十來年了)
學習Java的各種設計模式。
2、加強系統了解
重要閱讀下面的幾本書:
《Unix編程藝術》了解Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗。你一定會有一種醍醐灌頂的感覺。
《Unix網路編程卷1,套接字》這是一本看完你就明白網路編程的書。重要注意TCP、UDP,以及多路復用的系統調用select/poll/epoll的差別。
《TCP/IP詳解 卷1:協議》- 這是一本看完後你就可以當網路黑客的書。了解乙太網的的運作原理,了解TCP/IP的協議,運作原理以及如何TCP的調優。
實踐任務:
理解什麼是阻塞(同步IO),非阻塞(非同步IO),多路復用(select, poll, epoll)的IO技術。
寫一個網路聊天程序,有聊天伺服器和多個聊天客戶端(服務端用UDP對部分或所有的的聊天客戶端進Multicast或Broadcast)。
寫一個簡易的HTTP伺服器。
《Unix網路編程卷2,進程間通信》信號量,管道,共享內存,消息等各種IPC…… 這些技術好像有點老掉牙了,不過還是值得了解。
實踐任務:
主要實踐各種IPC進程序通信的方法。
嘗試寫一個管道程序,父子進程通過管道交換數據。
嘗試寫一個共享內存的程序,兩個進程通過共享內存交換一個C的結構體數組。
學習《Windows核心編程》一書。把CreateProcess,Windows線程、線程調度、線程同步(Event, 信號量,互斥量)、非同步I/O,內存管理,DLL,這幾大塊搞精通。
實踐任務:使用CreateProcess啟動一個記事本或IE,並監控該程序的運行。把前面寫過的那個簡易的HTTP服務用線程池實現一下。寫一個DLL的鉤子程序監控指定窗口的關閉事件,或是記錄某個窗口的按鍵。
有了多線程、多進程通信,TCP/IP,套接字,C++和設計模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP伺服器(帶線程池)
實踐任務:通過以上的所有知識,嘗試
寫一個服務端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁碟I/O和網路I/O可能會很有問題,想一想怎麼解決,另外,請注意網路傳輸最大單元MTU)
了解BT下載的工作原理,用多進程的方式模擬BT下載的原理。
3、系統架構
負載均衡。HASH式的,純動態式的。(可以到Google學術里搜一些關於負載均衡的文章讀讀)
多層分布式系統 – 客戶端服務結點層、計算結點層、數據cache層,數據層。J2EE是經典的多層結構。
CDN系統 – 就近訪問,內容邊緣化。
P2P式系統,研究一下BT和電驢的演算法。比如:DHT演算法。
伺服器備份,雙機備份系統(Live-Standby和Live-Live系統),兩台機器如何通過心跳監測對方?集群主結點備份。
虛擬化技術,使用這個技術,可以把操作系統當應用程序一下切換或重新配置和部署。
學習Thrift,二進制的高性能的通訊中間件,支持數據(對象)序列化和多種類型的RPC服務。
學習Hadoop。Hadoop框架中最核心的設計就是:MapRece和HDFS。MapRece的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapRece就是「任務的分解與結果的匯總」。HDFS是Hadoop分布式文件系統(Hadoop Distributed File System)的縮寫,為分布式計算存儲提供了底層支持。
了解NoSQL資料庫(有人說可能是一個過渡炒作的技術),不過因為超大規模以及高並發的純動態型網站日漸成為主流,而SNS類網站在數據存取過程中有著實時性等剛性需求,這使得目前NoSQL資料庫慢慢成了人們所關注的焦點,並大有成為取代關系型資料庫而成為未來主流數據存儲模式的趨勢。當前NoSQL資料庫很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

『肆』 一般程序員有以下幾種發展路線

1、技術路線,要求能力強智商高,把握公司核心技術和公司的技術發展。 初級程序員,中級,高級,系統架構師,技術部經理、技術總監。總經理 初級程序員,中級,高級,系統分析員,項目經理、產品經理、研發總監,總經理 3、實施路線。 初級程序員,中級,高級,系統分析員,項目經理、實施經理,實施總監 4、銷售路線 初級程序員,中級,高級,系統分析員,項目經理、實施經理,產品經理,售前顧問,銷售經理 職業生涯規劃是針對決定個人職業選擇的主觀和客觀因素進行分析和測定,確定個人的奮斗目標並選擇符合這一目標的職業。職業生涯規劃要求你根據自身的興趣、特點,將自己定位在一個最能發揮自己長處的位置,選擇最適合自己能力的事業。 一、內外因最佳匹配 找工作最重要的就是要人崗匹配,不能高攀也不能低就。職業規劃就是找到這個最佳匹配點和今後各個階段的發展平台,通過對自己的內在因素進行測評,找到潛質的東西,而學歷、經驗、能力、興趣、特長等是外部的東西,要把內、外優勢結合起來,擰成一股繩,形成職場打拚的強有力的核心競爭力。 通過測評找到最佳匹配點,通過咨詢師對切入點所在的市場狀況、行業前景、職位要求、入行條件、培訓考證、工作業務、薪酬提升、行業英語等運作進行詳細的指導,而自己則沿著主幹道去充電,幾年後成為業內的精英。 二、職業定位要「准」 定位就是要落在「定」和「准」上,不能泛談,其中包括行業定位、方向定位、職位定位,薪酬定位等很多項,比如你定位I T行業,那麼,方向是軟體還是硬體,是銷售還是技術,是基本程序員還是工程師?其中相差很大,各有千秋。 三、把握市場大脈搏 在明確自己想干、能乾的專業領域和事業方向的同時,還應兼顧考慮社會的需求和未來發展前景等外在因素,這是規劃是否成功的基本保證。如果所選擇的職業自己既感興趣又符合能力要求,但社會沒有需求或需求極少,未來就業機會渺茫,這樣的職業生涯規劃其起步就是失敗的。 四、善於從小事、從最具體的職業崗位做起 善於從小事、從最具體的職業崗位做起,只要這種小事、具體事與自己的最終職業目標一致,有利於個人職業目標的實現,都可以選擇確定為自己的最初職業崗位。人的職業生涯規劃就是這樣一件可以由若干件小事(行為)所組成的大事,立足於小事,才能成就大事。

『伍』 作為一名普通的程序員,需要怎麼給自己找一條後路呢

作為一名程序員,在未來可能會面臨技術淘汰、公司倒閉、經濟不景氣等風險。因此,找到一條後路是非常必要的。

以下是一些可以幫助程序員找到後路的建議:

1.不斷學習新技能:隨著技術的不斷發展,新技能的學習變得非常重要。程序員應該不斷關注行業的動態,並且學習新的編程語言、開發工具和技術。

2.建立廣泛的人脈:建立廣泛的人脈可以幫助程序員在職場上更好地生存。這些人脈可以包括同事、老闆、行業專家和其他程序員。

3.做好個人品牌建設:通過博客、社交媒體和GitHub等平台,程孝祥序員可以建立自己的個人品牌,提高自己的知名度和可見祥凱度。這可以幫助程序員在找工作或者自主創業時更有優勢。

4.考慮轉行:如果程序員發現自己的技能在行業中逐漸被淘汰,或者自己的工作面臨很大風巧宴搏險,那麼可以考慮轉行到其他領域。這需要程序員具備開放的心態和勇氣,但也可能會開啟一條新的、更有前途的職業道路。

綜上所述,作為一名程序員,需要不斷學習新技能、建立廣泛的人脈,做好個人品牌建設,不行就要提前考慮轉行。

『陸』 30多歲程序員選什麼樣的公司可以穩妥地把技術路線走下去

一、大齡程序員選擇公司的3個關鍵點 第1點是關於大公司、小公司的。不要選擇小微的創業公司,原因如下:極不穩定,一年半載就死掉的佔大多數,會導致你需要頻繁換工作,而年齡會越來越大,找工作越來越難。多數小微創業公司,目的是生存,偏向應用類產品,希望程序員能抗壓、加班、一人多用、快速出活,它們不喜歡大齡程序員(除非你是技術帶頭人),因為你10年經驗和3年經驗,在這里乾的事情差不多。技術創新和技術壁壘的構建,需要大把金





條。二、保持競爭力的2個建議 想要在技術之路上走得久遠,有兩點非常關鍵:在某個細分技術方向上精研,建立標簽,讓團隊內提到某個方向就想到你,提到你就想到某個技術方向,有問題都來咨詢你。這樣你就能凸顯出來,影響力和重要性會增大。重視業務,成為業務領域的行家。因為程序員的競爭力,最起碼由技術和業務組成,兩條腿走路,比一條腿更穩健。

『柒』 程序員後期的發展路線是什麼

1、程序員如果走技術路線,要求能力強智商高,把握公司核心技術和公司的技術發展。 後期的發展可以朝系統架構師,技術部經理、技術總監、總經理 發展。
2、程序員如果走業務路線,要求知識面廣,懂得大部分技術,並知道該怎麼做,不一定會做,表達能力好,協調能力好,對某一個行業的業務精通。後期的發展可以朝系統分析員,項目經理、產品經理、研發總監,總經理 發展。
3、程序員如果走實施路線。 後期的發展可以朝項目經理、實施經理,實施總監發展。
4、程序員如果走銷售路線 ,後期的發展可以朝項目經理、實施經理,產品經理,售前顧問,銷售經理發展。

『捌』 避免迷茫跳槽,程序員有哪些發展路徑

程序員一般的發展方向主要包括:技術專家,架構師,技術管理,管理,產品。接下來通過例子和大家分享以下四種不同的發展路徑及適合走這四類路徑的人群的三個關鍵詞

第一類,程序員-高級開發-技術專家路線

我之前的一位候選人Z先生,他12年從湖北工業大學畢業,而後去了搜狗擔任工程師,做了兩年後,跳到了另一家公司叫小麥公社,是當時一家風頭正勁的創業公司,擔任B端高級開發,後來去到了因果樹擔任B端的技術資深開發,在今年2月份入職了杭州阿里巴巴,同樣是負責B端商家後台部門,擔任技術專家,他職業規劃最大的亮點是找到自己想要專注的領域並且一直堅持至今。

第二類,程序員-高級開發-架構師

也是之前100offer的一個用戶,H先生,他11年北航畢業,而後選擇創業做SAAS平台當時擔任前端負責人,兩年後選擇加入搜狗成為一名高級前端工程師,後來去到了音悅台擔任架構師,目前在一家創業公司擔任前端架構師,他職業規劃的最大亮點是在前端領域各個方向都深入見解,而後負責多條產品線的架構設計。

那以上兩種技術路線有什麼不同呢,應該如何選擇呢?

技術專家,是偏理論研究的,對某個或某些相關的專業領域深入了解,能直接或通過提供思路間接解決這些領域的各種問題;架構師,是偏工程實踐的,與技術專家的區別在於它需要一專多能,提供方案解決問題已經不是它最重要的價值,它的價值體現在選擇性價比最高的方案。

第三類,程序員—資深工程師—技術經理(技術管理)—技術總監(管理)—CTO(管理)

說我們100offer的一位用戶Q先生吧,他在30歲就成為了某知名共享單車公司的CTO,說一下他的職業規劃,09年首都經理貿易大學畢業加入一家創業公司擔任開發移動端工程師,兩年後加入360擔任資深研發工程師,而後加入新浪微博擔任移動端部門的技術負責人,而後加入了宜信擔任技術總監,在去年7月加入共享單車公司擔任CTO。他職業規劃的最大亮點是一直在核心業務上往技術管理進階,最終成為一名優秀的管理者。

談到這類管理路徑,必須要說明下技術管理和管理的區別,技術管理是事情為中心,管理是以人為中心,技術管理主要工作是保證事情能按時按質完成,管理需要考慮團隊的士氣和穩定性、階梯性。

第四類,程序員—高級開發-產品技術—產品經理—產品管理

X先生是100offer的一位深度用戶,也帶來一個海龜碼農成功轉行產品經理的故事,09年畢業於美國工程類名校普渡大學,而後回國在一家外企擔任開發工程師,一做就是5年,14年一個幸運的機會加入了騰訊,當時騰訊面試了7輪,拿到了T1-2,月薪1W2的工程師offer,基本是剛畢業一年左右應屆生的水平。在騰訊主要做手機QQ紅點系統,做了兩年,他從未抱怨。他也給我們展示了所謂"紅點",其實就是手機QQ上不同介面旁的紅點引流。手機QQ流量日活上億,但是會點擊那些游戲、商城、音樂等介面的用戶大概只有1%,紅點主要就是吸引那些有強迫症的用戶點進去引流。從最開始的紅點數量的改進,到後面根據不同屬性用戶設置不同紅點,再到後來和其他產品合作比如京東商場,搞紅點的競價排名...就這么一個小功能騰訊專門養了一個團隊去做,對於BAT這種大公司來說,一個小的模塊和功能的改進能帶來很大的利潤,很多人常年都在做很小一個模塊的重復工作,很難獨立完整去做項目,裡面閑人很多。

所以工作兩年後,許寧也想做點商業化的東西了,給部門老大反饋了想法沒得到支持,在內部其他部門也爭取了問了一圈沒能成功轉崗,於是就想出來,不想繼續在騰訊裡面慢慢熬晉升了,從騰訊出來是那年是2016年3月,T2-3。而後在100offer上入職了一家投資公司,以產品經理的身份加入,兩年過去了,目前已經成為了一名高級產品經理。他職業規劃的最大亮點是深思熟慮後立刻決定和行動,沒有猶豫,而機會往往更容易留給有準備和有勇氣的人。

(資料來源:100offer網)

閱讀全文

與程序員如何走技術路線相關的資料

熱點內容
澆築後膠帶技術要求是什麼 瀏覽:400
抖音小程序一年收費多少 瀏覽:370
木板市場活動有哪些 瀏覽:799
賣俏妃衛生巾找一個代理賺多少錢 瀏覽:911
excel下拉數據怎麼設置遞增 瀏覽:58
汕頭冷凍食品批發市場在哪裡 瀏覽:289
廣元抖音藍v認證怎麼代理 瀏覽:832
如何幫同事做代理 瀏覽:240
資料庫怎麼插入另一個表中 瀏覽:797
不管你怎麼發信息她都不回 瀏覽:739
產品毛邊怎麼去掉 瀏覽:284
技術與經營有什麼區別 瀏覽:104
人員資料庫用什麼軟體 瀏覽:87
顯卡lsi技術是什麼 瀏覽:787
廣西書畫交易平台有哪些 瀏覽:941
足球實時數據怎麼獲取 瀏覽:960
我要學鏟車技術去山東哪裡學 瀏覽:736
護角膠有哪些產品 瀏覽:748
類似於猴姑餅乾的產品有哪些 瀏覽:944
菏澤哪裡培訓鮮花技術 瀏覽:118