對職業生涯的思考

從剛畢業到目前所在公司,差不多6年了,想想這六年裏面,自己的能力和剛畢業比有了很大的提升,但是現在在什麼能力上,我不知道,畢竟沒有去過別的公司。最近也在思考自己未來,算是比較迷茫階段。趁最近比較閒,順便整理一下自己的職業路程。

剛畢業階段—工作一年半

剛畢業進入公司,公司的規模還算比較小的,那個時候覺得很開心,過的也比較充實,自己的任務就是寫代碼,讀代碼。在那個時候,自己的能力提升的非常快,畢竟在學校裏面做的項目完全無法和公司的所在的項目類比。公司有一套自己的框架,在那個時候的我看來,寫的非常不錯。有很多比較好的編程規範:約定大於配置,強制樹狀依賴,多工程模型,但是也存在明顯的問題,就是大量使用command 模式以及弱參數類型,導致接口上無法很直觀定義入參和出參。那個時候第一次接觸到正式項目流程,典型的瀑布式模型。這個階段自己主要的精力就是學習公司的業務,閱讀公司的框架的源代碼,知道了很apache 開源項目,也是這個時候,能夠熟練的使用一般的設計模式。那個時候公司的規模也比較小,經常也會寫一下底層的工具類。架構也比較簡單,沒有所謂的分佈式架構,基本上所有的業務邏輯在一個系統裏面全部可以找到,排查問題也非常簡單。

個人覺得,在這個階段,是最適合學習的,尤其是自己的編碼技能,也是在這個時候最容易提升的。剛畢業出來的時候,人還有一種拼搏的精神,這個時候相對來說各方面壓力比較少,心也沉的住。比較適合學習編碼。這個時候公司比較少,你會接觸各個方面的知識,包括項目管理,項目部署,項目構建,數據庫開發,這個階段時間是最有效率的,不會有那麼多郵件,流程,規範。

工作一半年階段–工作4年

這個階段就是慢慢的開始職業化的過程。從帶項目開始,後來開始帶人,帶團隊。這個時期主要偏重設計,所謂設計,就是根據產品整個業務流程,在目前業務框架和技術框架的限制下,給出具體的實現過程。這個階段公司就開始越來越大了,系統越來越多,業務越來越複雜,慢慢的轉變爲分佈式架構。目前想從一個系統瞭解到整個業務的流程,已經不太可能。隨着拆分的系統越來越多,一個簡單的業務流經的系統越來越多,團隊配也就越來越重要。溝通和配合能力在這個階段顯的尤爲重要。

隨着公司的越來越大,工作上的郵件越來越多,流程越來越繁瑣,規範越來越完善和變態,溝通和配合越來越多,投入在純技術層面時間也就越來越少。同時由於工作的高度細化,有DBA,發佈團隊,開發環境配置團隊,工具開發團隊,前端團隊,測試團隊等等。你會發現你很難掌握全局。一個人越來越封閉與自己所負責的圈子裏面。基礎技術團隊已經把所有的組件都封裝好了,你只需要實現產品需求就可以了。慢慢的,業務開始主導你的職業生涯,你從一個程序員,會變成一個業務分析師,你花在業務分析上的時間慢慢的會超過編碼時間。而公司的組織架構也慢慢的向業務架構看齊,業務架構慢慢不在coder。從這個角度上看,新技術的研究已經毫無意義,你需要的技術都有底層技術團隊來實現,你只需要關於業務。這個時候應該是大多數業務導向型公司發展的必經階段。

在這個階段,是公司飛速發展的階段。也是個人晉升最快的時期。記得 現在的yahoo總裁-瑪麗薩·邁耶在Google的時候就問過佩奇:如何才能更快的晉升,佩奇回答:加入高速成長的公司。這個說法是相當有道理的,因爲公司的業務發展需要更多的更高的職位,這個時候也是人生中最累的時候。但是隻要你肯努力,你的機會會很大。可惜這個時候自己有點傻。也沒有全力去拼。隨着公司業務的發展,業務已經慢慢的趨於飽和了,已經不是打天下的時代,必然不會有太多的機會。而自己的兩個朋友在公司發展的頂峯期離職,去了其他的公司,付出超出常人的努力,已經是技術二把手和產品總監了。所以晉升有兩個關鍵因素:1 加入成長期的企業 2付出更多的努力。不過這個也是賭博,全靠眼光和運氣。

工作四年到現在

如果說第二個階段還會寫代碼,這個階段基本上沒有寫過代碼。這個階段做什麼,管人,管團隊,開會,管自己的業務,規劃業務的發展。當公司越來越大的時候,政治,官僚氣息就開始了。在這個階段,自己也是做的最沒有意思的時候,開會討論需求,一個很簡單的需求涉及的利益就很大,開會就在不斷的pk和吵架中進行。畢竟業務架構都是虛的,互相不認同,不像代碼,好與壞一般都能夠分的清楚。這個時候,一個人的技術實力已經顯的不太重要了,重要的是溝通,pk,忽悠能力。能把業務方,別的業務團隊,開發忽悠住就可以了,忽悠這個能力,也許需要更高一個層次。這個階段的開發同學就很苦逼,被這種流程,協作,規範逼着,有各種各樣的質量、缺陷指標。

這個時候抽象思維能力就比較重要,這也是忽悠的基礎。這個往往在架構pk中起決定性作用。業務的規劃需要更高的領域知識以及抽象思維能力,而去實現它,相對來說比較簡單。所謂抽象,就是從衆多的事物中抽取出共同的、本質性的特徵,表現在編碼方面,就是設計模式,表現在業務上,就是業務架構。由於業務架構和組織架構吻合,往往業務架構能力強一個組織所在話語權就會比另外一個組織強。

體現一個人技能主要通過三個維度:

高度:這個層面往往體現在規劃能力,能夠看到未來業務的發展,設計出相對合理的架構滿足未來業務的快速擴展。這個階段應該是少參與到具體的編碼中去,應該是一個公司的CTO或者首席架構師角色。這個方面的能力比較虛,相對來說也是最難煉成的。

廣度:就是知識領域的廣度。反映在IT技能上,就是所掌握的領域,比如.net,java,數據庫,web,前端等等。不一定每個領域都能夠精通,但是至少都能瞭解,能夠在面對問題的時候能夠拿出一個切實可行的解決方案。對於跨領域方面,可能是你的溝通能力,管理能力等。

深度:在某一領域有很深入的瞭解,旺旺是一門具體的技術。比如js代碼寫的很精通,數據庫知識非常豐富,精通linux操作系統底層。
深度->廣度->高度,越往上,要求的抽象能力越高,越往下,要求細節知識越具體。一個人往往具備了以上三樣,就是一個成功的大牛。

體現一個人價值的也可以主要通過以下五方面:

1.IT技能:這個就是具體的技能,這裏就不列舉了
2.領域知識:就是你所在行業領域的業務知識,包括證券,基金,電力等等。這個往往在行業領域是最有價值的,也是決定你主要身價的方面,當然前提是你不是做純技術方面的工作。比如底層框架的開發,數據庫管理員。
3.學習能力:這個也比較重要,畢竟IT這一行拼的是腦力而不是體力
4.人脈資源:這個專門指IT行業領域(我們一般找關係),遇到問題,你可以請教他們,相當於多個大腦
5.軟技能:也就是溝通,協調,管理能力
你會發現,大多數情況下,你想職位越來越高,後面的比重會越來越大。

在學習方面,你要從學習具體知識到學習抽象知識,再把抽象知識應用到具體事物上。這就是術和道。反映在IT技能方面,就是原理和實現。學習一門技能,一般都從具體的用法開始,在開始學習其原理,然後知其原理,在反過來應用實踐。除非是工作必須用到,我們應把更多的時間學習道,只有道,纔是最保值的,也是最長久的,好比代碼設計思想比代碼實現過程更重要。

發佈了23 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章