(轉自:http://www.boode.com.cn/share/programmer_career.html)
程序員職業生涯規划 之最終篇
之前我們分析了程序員職業生涯中可以選擇的幾個發展方向:項目經理、系統分析員、產品經理、軟件測試工程師和系統架構師,當我們發現未來充滿了這么多種可能后,又重新對程序員產生了夢想,但我相信好多人心里還是在打鼓,那就是“怎么才能走到我們夢想的職位?” 本文會對以往的分析進行總結並提供一些重要的職業信息,值得思考一下,以便有所准備。
我們都知道程序員可以向經理或團隊領導發展。但很多程序員不明白經理這個職位的期望和工作要求。當然,我們都有經理,但怎樣才能成為經理呢?要具備什么素質?中層管理者和一個高級程序員之間有什么區別?讓我們來看看一個初級程序員成長到頂級CTO的潛在職業之路。
很多程序員都會直觀的從收入上來觀察他們的職業之路,薪資代表着成就和社會對於個人的滿足,下面一張圖表示的是程序員的各個職位的平均工資。注意在垂直水平上,一些人可能拿着兩倍或者三倍於別人的工資(像是銀行,貿易等行業)。所以這些數字僅代表了一個平均水平,並不全面。
一、初級程序員
(1)0-3年工作經驗(一般是剛從大學畢業),會寫簡單的腳本
(2)初步了解整個應用程序的生命周期
(3)初步了解數據庫和應用程序的服務(隊列,緩存等)
(4)不需了解復雜的應用中的每一個部分
當你剛剛踏入程序員的行列中來的時候,可能會感到畏縮和煩惱。會時常感覺到自己資歷尚淺,驚訝為什么別人可以寫出這么大而復雜的程序。看看其他的高級程序員,你覺得自己做着跟他們相同的工作。但是區別就在於初級程序員缺乏經驗。即使是學習最快、最聰明的初級程序員,也沒有接觸到足夠多的代碼和邊界情況,以勝任高級程序員的工作。在軟件開發方面, 軟件設計模式也是一種智慧。雖然在這方面可以閱讀相關的書籍,但還是需要寫足夠多的代碼,將錯誤盡可能地暴漏出來,真正理解軟件設計模式的價值。
二、高級程序員
- 至少四年工作經驗
- 能寫較復雜的程序
- 深入理解整個應用程序的生命周期
- 掌握數據庫和應用服務(隊列,緩存等)
- 要了解應用程序的每一個方面
稱職的高級程序員非常擅長構建大型程序。擔任高級程序員占了程序員生涯的大部分。事實上,如果你不喜歡管理的工作而僅僅喜歡寫代碼,可以一直做一個高級程序員。高級程序員可以作為一個過渡,一旦掌握了足夠的技術,那么很可能就有能力擔任一家技術創業公司的創始人或者CTO了。作為一個創始人或者CTO,寫代碼的就會就少了,更多的是需要處理事務的技巧。但是深入理解技術非常有必要,是做好這份工作必不可少的部分。
三、團隊領導或架構師
(1)七年以上開發經驗
(2)掌握高級程序員必備的技術
(3)團隊領導:向架構師過渡
(4)架構師:沒有更高的技術方面的職位
七年程序員職業生涯已經能夠使一個程序員的技術能力足夠精進,如果你想從事更具挑戰性的職位,那么可以考慮一下做架構師,這是技術方面最頂峰的職位。架構師有時候也寫代碼,但大多數時間他們在設計復雜的系統,然后交給由初級和高級程序員們組成團隊來實現。架構師的工作就是,利用他技術方面的智慧以及多年的經驗(學習程序的模式和反模式),來為軟件項目創建合適的架構。有新的需求的時候,軟件架構師需要對項目選擇正確的方向,並估算應用程序的規模。
四、中層領導
- 通常包含經理和負責人等職位(開發經理,項目經理,產品經理)
- 做發人員的老板(例如人事工作)
- 向高級主管匯報工作
管理人員通常向工程師發展。他們的方向很多:如果你喜歡接觸開發團隊,並對細節感興趣,那么可以選擇產品經理,做你的伙伴們的盟友;如果你對產品特性和增強其性能着迷,那么做一個產品經理是最好的選擇。
然而大多數人的選擇是開發經理。這是個非常經典的職位,要求平衡項目經理和產品經理的需求和開發團隊的性格之間的矛盾。這個職位對人事處理和化解矛盾的技能要求較高,要經常做出退讓。
五、高層領導
(1)VP,CTO 或CEO
(2)是中層領導的老板(例如 負責人事)
(3)向另一個高層領導或者董事會報告
高層領導負責管理中層領導。然而經理通常是不需要管理的,他們需要的是指導。中層領導需要知道高層領導的方向並跟進,不會得到非常具體的指示。高層領導的工作是,做重要的決定,並激勵工作人員緊跟決策,增加對工作目標的信心。
你在這條路上走得越遠,寫代碼的機會就越少。到達頂峰的時候,做的都是人事方面的工作了。中層領導依然能在核心技術方方面體驗到樂趣,但是對於高層領導,就 必須把所有的時間花在人事上:激勵員工,領導,指定策略。如果你寫代碼,也只能是不重要的項目(除非你是比爾蓋茨,但大多數人不是比爾,他是個極端的特 例)。
結論
今天,程序員的選擇是豐富多彩的。而且對於程序員的職業要求比歷史上任何時候都要高。對程序猿來說這是一個好的時代。但是任何時候規划你的職業都不算晚。希望本文能排得上用場,給你一些指導和精神食糧。