程序員喫的是青春飯?本質上取決於。。。

程序員喫的是青春飯?本質上取決於。。。

  • 你是否認真思考過————畢業3-5年、10年,乃至更久後,我們希望成爲什麼樣的人呢?作爲一名技術人,我們要如何規劃自己的職業發展生涯?網上熱議的“35 歲中年危機”,本質上又因什麼而焦慮?今天,阿里資深技術專家毗
    盧,將帶來自己的思考與理解,希望對大家有所啓發。

  • 毗盧:近期,我與團隊同學探討了職業發展規劃的問題。有些同學表示希望後續
    能進一步在技術領域(或管理方向)有進一步的積累;有的同學表示希望在新的一年能
    具有更好的技術影響力,自己能做一些技術決定,去影響其他人,這樣自己會很有成
    就感。

  • 因此,我也問了一些問題

    • 你希望技術能進一步積累,那你積累的方向和期望達到的結果分別是啥?
    • 你希望能有技術決策,希望有影響力,你覺得應該如何做到?是希望通過崗位任命的方式嗎?
    • 你覺得是否成功的標誌,就是今年或明年得到晉升嗎?
    • 等等
  • 大部分同學在面對這些問題時,其實是比較迷茫的,也缺少真正可度量的衡量標
    準。是否能在短期內獲得晉升成了大部分人作爲“組織是否認可、自己是否認可”的
    衡量標準了。

  • 當然,這個話題仁者見仁、智者見智,這裏我簡單地談談我的看法。我以相對比
    較口水化的方式,將職業發展分兩個階段來進行闡述:

    • 第一階段:大學畢業3到5年
    • 第二階段:大學畢業5到10年

第一階段:大學畢業3到5年

  • 對於從事 Java 軟件開發的技術同學,在畢業後的 3 到 5 年內主要都是以學習、
    積累爲主。這個階段的工作幾乎每天都有驚喜,都有收穫。從一開始啥都不懂的校園
    “新鮮人”向“職業人”轉變。在這個階段,你會學習:

    • 基礎的java知識:你會開始看《Java編程思想》、《Effective Java》
    • 高質量代碼進階知識:你會開始看《重構:改善既有代碼的設計》、《代碼大全》、《編程珠璣》
    • 常用的主流框架:比如 SSH 相關的《Spring 實戰》、《Spring Boot 實戰》、
      《Hibernate 實戰 ( 第 2 版 )》。當然,這些書已經不夠了,你會通過 Google、
      Baidu 大量地瀏覽在線的資源:Apache 官網、Spring 官網、Hibernate 官
      網。你會去 StackOverflow 問問題或找答案。
    • 系統設計與算法知識:《系統分析與設計方法》、《設計模式》、《需求分析與系統設計》、《面向對象分析與設計》、《UML用戶指南》、《算法導論》
    • 其他知識:比如數據庫調優、緩存框架、NoSQL數據庫、日誌框架等等
  • 在這5年間,快速的完成這些基礎知識的學習,並能在項目中快速的學以致用。不僅自身能獲得比較高的成就感,而且實際的用人單位、獵頭也會非常喜歡這類熟練工。

  • 從大部分人的實際發展軌跡看,這個階段發展快的人和正常發展速度的人,差別還不是很大。比如,發展非常快的人,從畢業就入職阿里的P5到P7,可能三年就可以做到。發展速度正常的人,可能需要5-6年也可以到P7.也就是說,這個階段正常發展速度的同學也僅僅比發展速度快的人慢 2-3 年而已。

  • 這2到3年的差距,是可以通過有針對性的學習、重大項目的歷練等完成這些知識的學習。無非是,有的同學會嚴格要求自己,有嚴格的學習計劃;有的同學趕早參加了一些重點的、痛苦的項目得到了鍛鍊。只要是做技術的,其實遲早都會經歷過,都會成長起來。

  • 發現沒有?這個階段,我們能協調好的資源其實就是自己,更多的是一個“個人貢獻者”。只要把自己管好了,學習計劃執行好了,工作高質量做好了就能得到認可。

第二階段:大學畢業5到10年

  • 很多本科同學,特別是研究生同學。在畢業10年後,就已經到了34、35歲左右了。也是前端時間網上廣泛討論的所謂34+現象。其實,年齡並不是問題的真正原因。真正的原因還是在於自身“競爭力”是否符合這個年齡所應該具備的。

  • 到了這個年齡的人,往往已經不是“個人貢獻者”了,而是“團隊貢獻者”。團隊貢獻者可能是帶團隊的TL,也可能是個架構師,在技術決策上具有團隊影響力和話語權。

  • 那麼,爲什麼這些能管理團隊或者有影響力呢?

  • 從公司的經驗視角看,一個管理團隊的人,他必須爲業務的成功負責。說個大白話,一個TL管了N個人,他至少要保證大家輸出所產生的價值,至少要高於這個團隊的工資、獎金、五險一金、OPEX、CAPEX(資本性支出)等等。這個TL爲了大家輸出的有價值,他是不是需要能:

    • 能對所負責領域的業務特點、發展趨勢、友商競爭分析有很好的洞察?能知道這個業務領域的客戶是誰?他們的需求是什麼?他們的痛點是什麼?所以,這個TL應該需要學習《諮詢的奧祕》、《探索需求》、《系統化思維導論》。對於技術型的TL,還應該瞭解《成爲技術領導者:掌握全面解決問題的方法》
    • 服務於特定領域的客戶,我們需要能瞭解我們的客戶企業架構、業務知識。要了解清楚規劃的產品、服務,什麼纔是客戶所需要的。那麼,從理論上,我們是否應該學習一些TOGAF(一個行業標準的體系架構框架)、NGOSS(下一代運營支持系統)、ITIL(信息技術架構庫,全球公認的一系列IT服務管理的最佳實踐)等業務理論以及業務知識?
    • 作爲TL,是否有必要能將自己對於市場的洞察轉換成業務規劃,並能向自己的老闆說清楚、講明白?並爭取到老闆的同意,包括資金、人力資源等。對於,能否把事情講明白,我們可能需要學習《金字塔原理》,並能非常清晰、有邏輯性地進行表達與溝通。當然,有些業務發展的事不一定特別有邏輯,是需要摸索、嘗試,那麼你是否能將一個不確定的領域說服老闆並獲得支持,我們又需要什麼?《博弈論》、《影響力》等。
    • 獲得老闆支持後,就需要開始帶着兄弟們幹活了。作爲帶頭人,你看我們是否需要能將業務趨勢、客戶痛點進行業務建模好讓團隊的PD、技術都能理解?在做業務進一步深入分析,可能就需要學習《領域驅動設計:軟件核心複雜性應對之道》、《實現領域驅動設計》、《企業應用架構模式》、《恰如其分的軟件架構》等待。
    • 做完業務設計後,開始要帶着團隊做技術方案設計、接口設計以及編碼實現等。這個過程,TL又需要具備軟件項目管理的能力。無論是《PMBOK指南》,還是《敏捷軟件開發》、《人月神話》、《程序開發心理學》,相信總歸是會有點幫助的。
    • 對於一些有國際化要求的公司,還需要再學習英語吧!
    • 恩,還需要有個好的身體,還需要經常鍛鍊,學習科學的健身吧。至少我明白了一個道理,以前我都是跟自己說,等這段時間過了,閒下來去鍛鍊一下。其實,我發現,越是忙的時候,越需要鍛鍊身體!
    • 另外,在這10年內,比較關鍵的是————你還經歷過什麼有挑戰的業務、技術、產品、平臺等方面的成功與失敗體驗?在這些經歷裏,你可能會遇到這些困難與挑戰:團隊磨合的挑戰、技術方案上的爭執、平臺優先or業務優先的博弈、低落的團隊氛圍、個人的低谷等等。這些困難與挑戰,你是退縮了?還是有成長?在帶團隊時,再次面臨這些挑戰時,這時你是否有解或者有勇氣了?
  • 發現沒有?畢業10年後,作爲一個團隊貢獻者,你可以需要具備這些能力,並且還遠遠不止。而且,更可悲的是,當畢業10年後,突然發現自己不具備這個能力時(比如晉升失敗時發現了),這些能力GAP就不再是2到3年就能追得上的了。我見過一些有準備的同學,他們給自己的目標是畢業第7年就要具備這些能力,他有嚴格的學習計劃、實踐計劃甚至是冒險的創業經歷。當他到第10年這個點時,這些高階技能很可能已經有3年的實踐經驗了。

  • 如果我們沒有做好準備,10年後,如何和這批人競爭?這些軟、硬知識,從十年這個時間刻度倒排,學習計劃、實踐計劃的執行還是很緊張的。所以,從現在開始給自己制定一個嚴格的學習計劃、嚴格執行,多實踐吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章