『壹』 網站程序員的程序員成長之路大概分幾個階段和未來的發展
信息技術的更新速度是驚人的,程序員的職業生涯則是一個要求不斷學習的過程,如何才能成為一名合格的程序員,一名合格的程序員需要掌握哪些技能呢?為此天天招生網采訪到幾位孳生的程序工作人員,就如何做好一名成功的程序員談出了自己的經驗。
熟練掌握開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C和JAVA是重點推薦的開發工具,C/C以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
熟知資料庫
為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
對操作系統有一定的了解
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要緩此深入了解操作系統,了解它渣哪斗的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。
懂得網路協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP//CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。
不要將軟體工程與CMM分開
現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是如磨一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。
擁有強烈的好奇心
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
真實,最准確的相關信息。
『貳』 程序員以後的發展是什麼
程序員職業生涯發展到一定程度都會面臨一個選擇,是走業務+技術方向,還是選擇純鑽研技術。程序員職業生涯發展的問題,這是所有程序員都在關心的問題,未來究竟要怎麼走,30歲之後還能不能再做程序員。
絕大多數程序員最終的職業目標可能都是CTO,做到CEO的人估計會比較少,也有一少部分人自己去創業去當老闆,也有部分人轉行了,當老闆的人畢竟是少數,轉行的人都不在這行做了,自然沒什麼好說的了。一般來說,程序員的發展基本上都會經歷這么幾條路徑。程序員——系統分析員——架構師——技術經理——CTO,程序員——項目組長——項目經理——項目總監——CTO,程序員——產品設計師——產品經理——CTO。
當然這只是一個大致的路徑,不是所有程序員都必需要這么經歷的,有些人可能跳過其中的一些步驟,也可能有些人會把中間的很多職位都做了。而最終做到CTO的程序員,也是非常少的一部分,原因很簡單,這個世界上不許要那麼多的CTO和CXO。
也就是說,許多的程序員最終可能是做技術經理、項目經理或者項目總監之類的,那麼到底我們職業生涯要選擇哪一種呢?我覺得這個問題沒有一個統一的答案,因為每個人的性格不一樣,際遇也不一樣,就像你從小希望當貪官,可是命運卻偏偏讓你做了一個程序員。所以應該根據你的興趣、性格與際遇選擇一條道路,比如說你正好有機會帶一個項目,而你又不是很討厭項目經理這個位置,那麼你就可以選擇向項目經理方向發展。
實際上很多時候,有些公司並沒有明確的技術經理、項目經理、產品經理之分,在許多的公司里,他們經常是由一個人承擔。在外包公司里,通常會有項目經理和系統分析員(也可能是技術經理)。在一些非IT公司里,可能會是部門經理,而做自己產品的公司可能會分得比較詳細一些。我大致說一下這三個職位的區別,讓正在徘徊的程序員有一個大致的了解。
項目經理是項目的直接負責人,這個角色相當於一個中間介面,不管是團隊成員還是需求方(客戶),或者是上級領導,有事都直接找他,所以這個職位著重於管理與溝通。一般來說,項目經理的工作重點在同客戶溝通需求、項目進度的把控、團隊的溝通方面,有些公司也會需要項目經理承擔團隊建設的工作,不過貌似很多國內公司都忽略了團隊建設這個工作了。對於項目經理來說,重點會要求溝通能力、協調能力、危機把控能力、執行力、團隊管理能力,著重於溝通、管理與計劃。當然也有些公司還要求項目經歷要參與招標談判,這就要求項目經理有一定的商務談判能力。
技術經理有時候也可能叫系統分析員,一些小公司可能會整個部門有一個技術經理。技術經理承擔的角色主要是系統分析、架構搭建、系統構建、代碼走查等工作,如果說項目經理是總統,那麼技術經理就是總理。當然不是所有公司都是這樣的,有些公司項目經理是不管技術團隊的,只做需求、進度和同客戶溝通,那麼這個時候的項目經理就好像工廠里的跟單人員了,這種情況在外包公司比較多。對於技術經理來說,著重於技術方面,你需要知道某種功能用哪些技術合適,需要知道某項功能需要多長的開發時間等。同時,技術經理也應該承擔提高團隊整體技術水平的工作。
產品經理這個職位一般在有自己產品(不管是軟體還是網站產品)的公司比較常見,產品經理主要會負責產品的設計、產品的改良等工作。需要注意的是,產品設計與設計師是兩個不一樣的工作,產品設計主要會從用戶體驗、業務需要等層面去設計產品,而設計師更多是從用戶的視覺上去做。產品經理應該是最懂業務的人,比如說你在設計一個微博的產品,就要求你對微博這個東西非常熟悉,從用戶習慣、用戶體驗、公司的發展戰略上去設計這個產品,還要對比同類產品會有什麼優勢等等。
不管是項目經理還是技術經理與產品經理,都要求要熟悉業務,業務是需求的來源,沒有不談業務的技術,所以不管你從哪個方向發展,都要求對業務熟悉。產品經理要求對業務最熟悉,項目經理次之,技術經理排最後。對於程序員來說,剛開始工作的前幾年可以埋頭扎到技術裡面,一般這個時間在2-3年的時間,然後就應該多關注業務了。這個業務不一定是指某個具體的業務,因為具體的業務的范圍太少,而且也需要機遇。
『叄』 避免迷茫跳槽,程序員有哪些發展路徑
程序員一般的發展方向主要包括:技術專家,架構師,技術管理,管理,產品。接下來通過例子和大家分享以下四種不同的發展路徑及適合走這四類路徑的人群的三個關鍵詞
我之前的一位候選人Z先生,他12年從湖北工業大學畢業,而後去了搜狗擔任工程師,做了兩年後,跳到了另一家公司叫小麥公社,是當時一家風頭正勁的創業公司,擔任B端高級開發,後來去到了因果樹擔任B端的技術資深開發,在今年2月份入職了杭州阿里巴巴,同樣是負責B端商家後台部門,擔任技術專家,他職業規劃最大的亮點是找到自己想要專注的領域並且一直堅持至今。
也是之前100offer的一個用戶,H先生,他11年北航畢業,而後選擇創業做SAAS平台當時擔任前端負責人,兩年後選擇加入搜狗成為一名高級前端工程師,後來去到了音悅台擔任架構師,目前在一家創業公司擔任前端架構師,他職業規劃的最大亮點是在前端領域各個方向都深入見解,而後負責多條產品線的架構設計。
那以上兩種技術路線有什麼不同呢,應該如何選擇呢?
技術專家,是偏理論研究的,對某個或某些相關的專業領域深入了解,能直接或通過提供思路間接解決這些領域的各種問題;架構師,是偏工程實踐的,與技術專家的區別在於它需要一專多能,提供方案解決問題已經不是它最重要的價值,它的價值體現在選擇性價比最高的方案。
說我們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網)
『肆』 做一名JAVA程序員要經歷一種怎樣的過程
第一階段:三年
我認為三年對於程序員來說是第一個門檻,這個階段將會淘汰掉一批不適合寫代碼的人。這一階段,我們走出校園,邁入社會,成為一名程序員,正式從書本 上的內容邁向真正的企業級開發。我們知道如何團隊協作、如何使用項目管理工具、項目版本如何控制、我們寫的代碼如何測試如何在線上運行等等,積累了一定的開發經驗,也對代碼有了一定深入的認識,是一個比較純粹的Coder的階段。
第二階段:五年
五年又是區分程序員的第二個門檻。有些人在三年裡,除了完成工作,在空餘時間基本不會研究別的東西,這些人永遠就是個Coder,年紀大一些勢必被更年輕的人給頂替;有些人在三年裡,除了寫代碼之外,還熱衷於研究各種技術實現細節、看了N多好書、寫一些博客、在Github上分享技術,這些人在五年 後必然具備在技術上獨當一面的能力並且清楚自己未來的發展方向,從一個Coder逐步走向系統分析師或是架構師,成為項目組中不可或缺的人物。
第三階段:十年
十年又是另一個門檻了,轉行或是繼續做一名程序員就在這個節點上。如果在前幾年就抱定不轉行的思路並且為之努力的話,那麼在十年的這個節點上,有些人必然成長為一名對行業有著深入認識、對技術有著深入認識、能從零開始對一個產品進行分析的程序員,這樣的人在公司基本擔任的都是CTO、技術專家、首席 架構師等關鍵的職位,這對於自己絕對是一件榮耀的事,當然老闆在經濟上也絕不會虧待你。
『伍』 北大青鳥分享Java程序員也有很多發展方向
絕大多數Java程序員最終的職業目標可能都是CTO,做到CEO的人估計會比較少,也有一少部分人自己去創業去讓悶當老闆,也有部分人轉行了,當老闆的牛人也有。一般來說,北大青鳥發現Java程序員的發展基本上都會經歷這么幾條路徑。程序員-系統分析員-架構師-技術經理-CTO,程序員-項目組長-項目經理-項目總監-CTO,程序員-產品設計師-產品經理-CTO。
當然這只是一個大致的路徑,不是所有Java程序員都必需要這么經歷的,有些人可能跳過其中的一些步驟,也可能有些人會把中間的很多職位都做了。而很顯然,CTO,是大多數程序員的終極夢想。
也就是說,許多的Java程序員最終可能是做技術經理、項目經理或者項目總監之類的,那麼到底我們職業生涯要選擇哪一種呢?我覺得這個問題沒有一個統一的答案,因為每個人的個性和情況不同。但有一點是重要的,一是有際遇一定要抓住,二是自己要努力。
比如說你正好有機會帶一個項目,而你又不是很討厭項目經理這個位置,那麼你就可以考慮向項目經理發展。因為老闆讓你做,說明他看到你有這個素質和潛力。要相信別人的眼光。
但是大多數人是遇不見這么好的伯樂的,那就要自己努力。沒有能力就學能力,沒有知識就學知識,沒有氣場就每天照鏡子練。如果你的確不知道怎樣才能從眾多的程序員中脫穎而出,那麼就舉正去參加培訓,培訓別選學費巨貴的,選有特色還不貴的。用一兩個月工資,可以換來你能力的快速提升。
再說有些公司,並沒有明確的技術經理、項目經理、產品經理之分,在許多的公司里,他們經常是幾個人混搭的。在外包公司里,通常會有項目經理和系統分析員(也可能是技術經理)。在一正滑悔些非IT公司里,可能會是部門經理,而做自己產品的公司可能會分得比較詳細一些。我大致說一下這三個職位的區別,讓正在徘徊的程序員有一個大致的了解。
『陸』 IT行業大多數技術人員的成長階段大致分為哪幾個呢
第一階段:學徒階段
這個階段有些人是在學校里完成,有些是通過自學完成,有些人是半路出家通過各種教育平台完成。這個階段,剛接觸代碼不久,有些問題變如同霧里看花,但終究是開始行動了,所以這個階段過得很快,心態上可能還是覺得前路不清晰但已經逐漸有了成就感。
第二階段:初級程序員
這個階段的人通過學習已經掌握了一部分的技能,比如知道如何團隊協作、項目版本如何控制、如何使用項目管理工具、如何讓代碼順利運行上線等等,這個階段也許做了一些小的項目便開始覺得自己會得東西不少,其實只是算個半吊子程序員,這個時期的程序員很容易覺得其他程序員也不過如此。
第三階段:中級程序員
這個階段的程序員已經掌握了進階的技能,並逐步確立了自己的專長,在職場中開始能夠獨立承擔項目,並會有意識地去學習。這個階段像一個分水嶺,有些程序員除了工作不研究其他的技術,雖然在工作中很容易完成任務,但很容易就被更加年輕的程序員所代替;有些人則是不斷的提升自己,熱衷於研究各種技術實現細節,多和他人討論,多看了很多書籍文獻,這些人有著自己的規劃,在工作幾年後就是項目組中不可或缺的人。這個時期他們的薪資暫時沒有太大的差距體現,也是在程序員平均水平。
第四階段:高級程序員
這個階段對各種編程已經有了自己的認識,一些程序員脫穎而出開始帶領團隊。這個階段的程序員基本上在公司擔任CTO、技術專家、首席架構師等非常關鍵的職位。隨著自己知識的深度和廣度的提高,反而會覺得自己需要學習的東西更多了,在這個階段,他們對於團隊在工作中遇到的問題,基本都能解決,因為很多知識都自成體系了,站在更高的角度宏觀的看待問題。
第五階段:自我創業
這個階段的程序員已經有了自己的資本和人脈,很多人開始選擇自我創業,哪怕不想自己成為老闆也會選擇與人合作創辦公司,他們有些是為了實現自己的理想,有些是為了能夠獲得更高的生活,這個階段的程序員已經不是單純只考慮編程本身了,還會開始接觸很多商業知識。
以上就是我的回答,希望對你有所幫助
『柒』 《內外兼修:程序員的成長之路》pdf下載在線閱讀全文,求百度網盤雲資源
《內外兼修:程序員的成長之路》(羅飛)電子書網盤下載免費在線閱讀
鏈接:
書名:內外兼修:程序員的成長之路
作者:羅飛
豆瓣評分:6.6
出版社:機械工業出版社
出版年份:2016-9-1
頁數:176
內容簡介:
本書作者將分享自己在做程序員路上的一些經驗。分為「程序篇」和「人生篇」兩部分。在「程序篇」,作者會介紹程序員要經歷哪幾個階段,每個階段要做什麼,程序員遇到問題如何解決,介紹程序員要學什麼、要看什麼開源程序。在「人生篇」,會介紹程序員的人生態度,程序員大多內向、缺乏自信,只有內心強大了,才能勇敢面對困難,解決程序和生活上的問題。
羅飛是優伯立信的CEO,曾就職於新浪雲計算,也在創新工場創業過,是國內流行的PHP框架ThinkPHP的核心開發者之一,開發過多個專利,寫過編程書,做過一些視頻教程,是優才網全棧工程師講師。羅飛高中輟學,程序都是自學的。在學習和工作過程中遇到過很多困難,也曾經差點放棄過。後面掌握了良好編程學習方法以及解決問題的方法,之後的職業生涯就比較順利。
本書的另一位作者伍星老師,他是優才學院的CEO,十多年技術開發經驗,開心網早期創始團隊成員,處理過億級高並發的情況,親手部署了開心網從兩台機器到數千台機器的架構,在開心網培養了數十優秀人才。他們現在已經是各大互聯網公司的資深工程師、創業公司CTO。他為大家制定的學習路線是非常有說服力的。
作者簡介:
羅飛,優伯立信創始人,ThinkPHP核心開發者,移動開發精英俱樂部發起人。待過新浪、創新工場。高中肄業,自學編程。涉足於人工智慧、互聯網+領域。
伍星,80後,湖南人,國內首*全棧工程師培養機構優才學院創始人。擅長互聯網架構與技術研發,專注在線教育、教育科技、O2O教學的實踐與探索。
『捌』 作為一名普通的程序員,需要怎麼給自己找一條後路呢
作為一名程序員,在未來可能會面臨技術淘汰、公司倒閉、經濟不景氣等風險。因此,找到一條後路是非常必要的。
以下是一些可以幫助程序員找到後路的建議:
1.不斷學習新技能:隨著技術的不斷發展,新技能的學習變得非常重要。程序員應該不斷關注行業的動態,並且學習新的編程語言、開發工具和技術。
2.建立廣泛的人脈:建立廣泛的人脈可以幫助程序員在職場上更好地生存。這些人脈可以包括同事、老闆、行業專家和其他程序員。
3.做好個人品牌建設:通過博客、社交媒體和GitHub等平台,程孝祥序員可以建立自己的個人品牌,提高自己的知名度和可見祥凱度。這可以幫助程序員在找工作或者自主創業時更有優勢。
4.考慮轉行:如果程序員發現自己的技能在行業中逐漸被淘汰,或者自己的工作面臨很大風巧宴搏險,那麼可以考慮轉行到其他領域。這需要程序員具備開放的心態和勇氣,但也可能會開啟一條新的、更有前途的職業道路。
綜上所述,作為一名程序員,需要不斷學習新技能、建立廣泛的人脈,做好個人品牌建設,不行就要提前考慮轉行。