程序員職業(yè)規(guī)劃心得分享
首先你要明確入行的目的,你是深深的熱愛著編程還是只是因為程序員是個高薪的職業(yè)呢?如果是后者,那么不好意思,你需要慎重的選擇。
在中國,程序員并不是一個很好地稱呼。程序員似乎象征著邋遢,宅,甚至是IT民工。記得有一期非誠勿擾上面,上去一個男嘉賓,開場說他是搞JAVA的,臺上女嘉賓的燈全滅了。是不是很可笑,很可悲?而且只有你真正的進入這個行業(yè)你才清楚,這個看上去還不錯的薪水,你卻付出了超過薪水價值的代價。創(chuàng)業(yè)型與游戲型公司里面的項目小組一般是5~10個人,因為他們需要快速的開發(fā)以應對多變的市場波動,所以程序猿的每天工作時長都在12小時以上,身體和精神收到摧殘不說。作為程序猿的你很少有時間去陪陪自己的家人、自己的女友。
如果作為前者,你是因為深深的熱愛著編程,那么恭喜你,你有著一顆hacker的心,屬于那些愿意做一些有挑戰(zhàn)性的事情的人。就如WhyTheLuckyStiff所說:“當你不創(chuàng)造東西時,你只會根據(jù)自己的感覺而不是能力去看待問題。”
當你開始編程,開始創(chuàng)造的時候,開始享受的時候,一切外界的評論,都擋不住你對技術對創(chuàng)造的熱愛。但是,我不得已要潑你一盆冷水,來提醒你一下。你是否準備好了忍受寂寞,也許你面對的是十年寒窗無人問,若你沒有熬住,也許就等不到一朝成名天下知的時刻。技術是永無止境的,好的程序員必須保持對于新的技術敏感度,保持學習的熱情。Stay hungry ,Stay Foolish。
明確了目的,那么你應該規(guī)劃下自己的職業(yè)生涯。
宏觀的講,個人認為我們需要經(jīng)歷三個階段:深度、廣度、高度。
高度:這個層面往往體現(xiàn)在規(guī)劃能力,能夠看到未來業(yè)務的發(fā)展,設計出相對合理的架構滿足未來業(yè)務的快速擴展。這個階段應該是少參與到具體的編碼中去,應該是一個公司的CTO或者首席架構師角色。這個方面的能力比較虛,相對來說也是最難煉成的。
廣度:就是知識領域的廣度。反映在IT技能上,就是所掌握的領域,比如.net,java,數(shù)據(jù)庫,web,前端等等。不一定每個領域都能夠精通,但是至少都能了解,能夠在面對問題的時候能夠拿出一個切實可行的解決方案。對于跨領域方面,可能是你的溝通能力,管理能力等。
深度:在某一領域有很深入的了解,旺旺是一門具體的技術。比如js代碼寫的很精通,數(shù)據(jù)庫知識非常豐富,精通linux操作系統(tǒng)底層。
深度->廣度->高度,越往上,要求的抽象能力越高,越往下,要求細節(jié)知識越具體。一個人往往具備了以上三樣,就是一個成功的大牛。
微觀的講,.已經(jīng)工作兩年以上的程序員可以有幾種基本的職業(yè)規(guī)劃:技術專家、軟件架構師、實施顧問或銷售。對大多數(shù)人來說,首先是要專,在技術上做的比較深入,然后進行工作調整,把自己轉變?yōu)槟硞領域的專家,第三步,根據(jù)自己的情況,來選擇技術還是管理。
有了自己的規(guī)劃,最重要的是執(zhí)行。我認為很多漂亮的計劃都會因為執(zhí)行力不夠而夭折。一個一流的計劃經(jīng)過二流的執(zhí)行,甚至不如三流。而一個三流的計劃,經(jīng)過一流的執(zhí)行,也許就能達到二流。所以從計劃本身來說,執(zhí)行往往更重要些。