http://www.javashuo.com/article/p-eqtdwjog-bt.htmlhtml
「程序員
我但願用一篇文章徹底讓你們正確的理解從程序員到架構師、技術經理、技術總監、CTO的完整區別以及進階要領。算法
只有客觀去認識,纔會更加合理的找到本身的擅長點,從而更好的發展本身。數據庫
上圖是典型的薪資結構圖,咱們先從高級程序員談起。編程
通常是至少三年以上的工做經驗,有些地方是五年以上,不少小公司或者創業公司,高級程序員覆蓋工做職責比較廣,基本包含部分產品經理、項目經理的工做職責之外,最主要負責核心代碼編程,基本技術難點都本身解決爲主。設計模式
在公司大一點的都有很是明確的職責和級別定義,以阿里外表明,P5-P6表明高級軟件工程師這個級別,基本能獨立負責設計和編碼階段。緩存
其實,在國外例如google、facebook等公司,不少牛人的title都是Senior Level engineer,這一點不像在中國。架構
在國內,通常一個高級程序員的準肯定義:分佈式
負責核心複雜功能的實現方案設計、編碼實現。詳細描述:能獨立設計一個業務模塊的能力,而且獨立設計數據庫表以及UML畫圖,利用部分設計模式以及懂得算法和效率的高質量代碼。學習
通常能作到架構師這個稱謂,工做年限至少都在5年-8年以上,具體還看每一個人的學習能力和領悟能力,也有時間短的,但大部分都是個例。
之因此有架構師這個稱謂,主要仍是公司發展以及大了的須要,須要專一於技術的人,你也能夠理解爲技術專家,攻克公司技術難題爲主,例如淘寶的雙11的挑戰,以及公司發展須要考慮獨立拆分,數據庫壓力太大,須要分佈式緩存以及CDN的配合,怎麼選擇,怎麼結合本身公司的狀況攻克當前技術難題。
若是必定要準備定義,我用一句話:
架構師的職責應該是立足於技術和業務之間的中間角色或者平衡點, 在針對業務深入理解的基礎上,針對業務中存在諸多變數,挑選適合的技術架構和技術方案。
技術經理坦率的講,就是從高級程序員開始分化而來,一部分同窗選擇繼續專研技術,往縱向發展,一部分同窗打算以爲將來管理這條路很好,主動選擇開始轉型管理這個方向,因而纔有裏技術主管或者經理經理這個稱謂。
我仍是以阿里爲參考,阿里的M表明管理方向,你能夠經過下圖能夠清晰的看見P系列和T系列對應的級別。
P6和M1,從技術的角度,若是你打算往管理M發展,M1對應的至少你也能勝任資深工程師。
因此,這個時候你就很是清晰了,技術經理自己就是從資深工程師發展而來,不少公司的技術經理根本沒有從一線研發作起,大部分就是一個項目經理,帶帶項目爲主,根本沒法勝任剛纔我講到的技術經理的工做。
最後,我稍微總結下部分技術經理的要領:
首先,具有核心模塊代碼編程的能力,從設計方案到核心編碼,再到後期的代碼review,這方面是能徹底勝任的。
其次 ,纔是團隊任務管理,分配工做,工做量評估,以及幫助團隊人員提高實力,以及推進更加合理的考覈機制。
再次,協調的能力,與人打交道的能力,平級部門,產品、設計、測試、運營打交道的能力,這個仍是要有的,不能一味盲幹,也不能一味不發聲,總之你要讓你的團隊在公司應該有必定的美譽,讓你們能記住大家團隊。
技術總監通常工做8--10年以上,面技術經理的事你能作的很是好,再加上公司發展的須要,須要你同時帶領多條業務線或者多個小團隊的時候,基本就是技術總監了。
從管理的層級,技術總監同時管理多個技術經理,管理從業務線劃分的團隊。
從技術的層級,這裏我補充一點,儘可能你能勝任架構師這個級別,也就是說你至少也是一個技術專家最佳。固然,你會問?以前你提到高級程序員開始從技術專家和管理開始分化,這不是有點矛盾麼。
其實,但你開始往技術經理髮展的時候,其實就是多維度發展了,技術也是一個維度,並非說你作純管理脫離於技術,技術的積累你仍然須要繼續專研。
最後,總結下技術總監的部分要領:
從業務線和團隊的角度,你有能力組建研發部,搭建公共技術平臺,管理各條業務線以及從技術經理、高級程序員、項目經理、還有架構師的能力。
首先澄清幾個CTO的誤區,CTO的要求是最高的,不是每個人都勝任CTO,好的CTO在國內很是少,很是稀有。
不少同窗的一個巨大的誤區,認爲CTO就專一於技術的,這是不對的,CTO若是隻專一於技術,那你招一個架構師不就成了,爲何還須要找CTO呢。
還有一個誤區,不少同窗從大公司出來進入一家創業公司 or 小公司,掛名某某CTO,自認爲本身已經一步登天,其實離CTO的能力差之甚遠。
CTO是一個系統的成長軌跡,不是一朝一夕能夠練成的,須要後天的巨大「自我改進」能力。若是用我本身的話總結,CTO的成長之路猶如「從蠶到蛾的蛻變」,整個蛻變過程缺一不可,最後都是要經歷性格塑造的,不斷的改變本身的性格。
我用一張圖能稍微總結下CTO的要領,若是你有志於往CTO發展,至少你得知道,你儘可能往這方面發展是OK的。
真正的CTO,是軟件產品和技術是統一管理的,在經過後期的本身的努力,經過情商、逆商以及商業思惟來輔助。
若是必定要總結下CTO的要領:
1.業績達成:洞察客戶需求,捕捉商業機會,規劃技術產品,經過技術產品領導業務增加,有清晰的戰略規劃、主攻方向,帶領團隊實現組織目標
二、前沿與平臺:到這個研發規模規模級別了,必定要有專門的團隊作技術應用創新探索和前沿技術預研。並且要和技術平臺團隊、應用研發團隊造成很好的聯動做用,讓創新原型試點可以很平滑的融入商業平臺再讓應用研發線規模化的使用起來。
三、研發過程管理:站在全局立場來端到端改進業務流程,爲業務增加提供方便
四、組織與人才建設:公司文化和價值觀的傳承;研發專業族團隊梯隊建制建設、研發管理族團隊梯隊建制建設;建立創新激發機制,激發研發人創新向前發展,激發黑馬人脫穎而出
CTO作的事情,是商業、產品、技術、管理、團隊相平衡的綜合統管。