software engineer career planning

職業規劃

23-28歲

技術積累階段假設本科22歲畢業,那麼工作的前5年對你來說是打基礎的階段。在這5年時間裏面,你要積累足夠的代碼量,打磨自己的技術實力,成爲某一個技術細分領域的牛人。

工作1-2年

對Java已經有了一個較爲深入的瞭解。首先,要非常熟悉設計模式,日常要多看一些關於代碼編寫優化的書,提高自己的代碼能力,能夠寫出一手優雅的代碼;其次,在工作過程中肯定接觸過併發,應該更加深入地去了解併發的相關知識;最後,要對所使用的框架和Java的類庫有一定的研究,還需要去看一些JDK中的類的源碼,包括自己日常所使用的框架的源碼。總而言之,這個階段,需要做的是深入瞭解Java底層和Java類庫,也就是JVM和JDK的相關內容。

工作3-4年

這個階段的學習會比較多樣化。在前三年的工作中,相信或多或少都會接觸一些其它的技術,比如大數據、分佈式緩存、分佈式消息服務、分佈式計算、軟負載均衡等技術,你能精通任何一項,都將是你未來面試時巨大的優勢。因此,如果自己對某一項技術感興趣,這時可以深入去研究,即使這項技術不一定會在工作時用到,但一定是相關的。

工作4-5年

這個階段應該遇到了所謂的“技術瓶頸期”了。不要急於提高自己的技術,此時更重要的是提高你的影響力。可以嘗試去一些知名公司提高你的就業背景;也可以發表一些技術文章去影響更多的人;還可以去Github創建一個屬於自己的開源項目,打造屬於自己的產品。這個時候提高自己的影響力主要是可以給自己創造更多的機會,所以,這個階段最大的任務是提高自己的影響力,爲未來工作生涯做準備。對於軟件開發同學而言,首先要客觀認識自身的情況,想清楚自己現在要什麼、未來要什麼,做好職業規劃,從而選擇不同類型的企業。

29-35歲

形成思維方法論和知識體系的階段。當你積累足夠的代碼量,例如超過10萬行代碼以後,你應該形成了自己的思維方法論和自己獨立的學習技巧,任何新的技術在你眼中都能迅速的看到技術的本質,快速吸收成爲你的知識體系的一部分。到了這個階段,你會發現你所完全不瞭解的新技術新知識是非常少的,新技術對你來說也不過是幾天時間就把玩的很好的玩具,學習越來越輕鬆,掌握的知識儲備越來越多。你開始逐漸的不再滿足於純技術領域的探索,而是思考更多的問題:如何將技術轉化爲生產力;什麼技術在什麼樣的場合能夠發揮最大的價值;技術團隊應該怎樣構建;在一家公司裏面,我怎樣才能將自己的技術能力最大化的發揮出來?在這個階段,積累技術對你來說簡直是小菜一碟,你更需要磨練的是思考能力,形成自己的思維方法和知識體系,這將是你幫助你一生的武器。

35歲以後

瞭解自己,把自己變現的階段。毋須諱言的是,35歲以後你的一線coding能力一定是下降的,你寫代碼絕對不如25歲的程序員快,效率高。但是這不重要,因爲編程只是你整個武器庫當中相對最不重要的了,你的經驗,你的視野,你的架構能力,你的管理能力,你分析和解決問題的能力已經遠遠不侷限於技術這個領域。

兩大方向

技術

架構師,是Java開發人員非常向往的一個角色。架構師需要擁有完善和紮實的技術體系,具備較好系統分析和設計能力,豐富的項目研發經驗。架構師是一個漫長的積累過程,大部分架構師的年齡在35歲左右,這個階段就是程序員的黃金期。程序員要向一名架構師發展,需要進一步加強技能的修養。對於互聯網公司來言,最重要的技能是對網絡和分佈式系統的理解,比較麻煩的是分佈式系統,除了分佈式,在現在大型互聯網企業中,還需掌握高性能、深入淺出、性能調優、Spring、JVM等技術。

管理

走向項目經理當然,也有一些運氣比較好的程序員,不但負責項目的設計工作,而且還負責項目的管理工作,對項目經理這個工作有一定的嘗試。因此,這類程序員可以審視一下自己,是否合適這項工作,如果自己對這種工作比較滿意,而且具備項目經理的要求,則可以向項目經理這個方向發展。項目經理的工作重點已經從編程轉移到對人、對技術、對進度、對項目的管理,因此,項目經理必須要瞭解軟件開發的各個環節、瞭解開發的各種技術和運用、瞭解開發隊伍人員的水平和特點。在日常的工作和生活中就得側重鍛鍊這方面的能力,還要學習一些項目管理的知識,例如:PMP、CMMI、敏捷開發管理等。從程序員到項目經理可以使項目經理更好地理解程序員在項目中的地位和作用,瞭解軟件開發的各種規律性的東西,從而保證項目的正常完成。而且,項目經理的收入和地位在公司裏也是比較高的,因此,走向項目經理是程序員的另一個發展空間。走向管理層很多程序員希望自己能成爲公司中的主管、或項目經理等管理人員,無論是收入還是地位都會相對高一些。另外,還有一些程序員可能厭倦了日復一日枯燥而繁瑣的編程工作,希望藉助走向管理崗擺脫這種步步緊逼的工作狀態。當然,走向管理者就要求程序員要比一般人做更多的準備,做更多的轉型工作。由於軟件公司的管理者不同於一般公司的管理者,專業能力越強,管理起來就越得心應手,沒有專業能力的管理,遇到的問題很多,也很難解決。所以,想要往管理者發展的程序員,一定要把編程、項目設計、項目管理等基礎打好,這樣轉型到管理者成功率就會高一些,而且到時候也能更加得心應手。

在這裏插入圖片描述

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