原創:小姐姐味道(微信公衆號ID:xjjdog),歡迎分享,轉載請保留出處。前端
廣度和深度,是兩個顧此失彼的極端。對於程序員來講,從一個初學者演化成一個終極形態,無不是這兩種力量的拉鋸。java
當被這兩種力量撕扯,無所適從的時候,咱們把它叫作對將來的迷茫。android
程序員很容易達到職業的天花板(大多數)。十年成架構。這不是炫耀,而是悲哀的現實。因此成爲一個架構師並不難,難的是之後的路。程序員
企業須要釘子。如何作一枚價值更大的釘子,正是不少人追求的。本文將介紹一個比較常見的程序員進化之路。每一個公司的路線都不太同樣,因此個人這張圖,會有誤差,您就參考一下就得了。web
有三種發展路線,一種是側重於技術的,一條路走到底;一種專一於業務,成爲行業專家;另一條路,是成爲一個管理者。面試
初級程序員,一般本身都有一股錯覺,以爲本身無所不能。什麼都懂,聊什麼都能頭頭是道的說上兩句。算法
在這個階段,每每會對其中一門開發語言情有獨鍾,會追求一些很是細的知識點(這是對的),並嘗試去搜羅流傳於網絡上的N手資料。後端
做爲一個缺少工做經驗的初級碼農,面試時甚至會有筆試。考察方面多限於基礎知識,以及算法方面的內容。微信
入職後,多負責一些後臺頁面的開發任務,或者處理一些平常事務,會常常發出一種」面試造火箭,入職擰螺絲「的感嘆。網絡
出於熱愛,或者有必定的審美能力,部分同窗在入門基本開發以後,會選擇相似android的客戶端開發。
此部分工做集中在app開發,H5,或者遊戲開發上。這屬於另外一個分支,咱們不作過多介紹。
客戶端開發的工做很辛苦,倒不在於工做自己。客戶端開發框架,較之於後端,變化更快,讓人疲於奔命;因爲成果可以直接被眼睛看到,遇到不靠譜的需求,就須要常常返工:)。
但其中的創新的快感和成就感,是不少後端開發沒法體驗到的。
web開發接觸最多的就是SSM,也是培訓的重災區。
不少人對技術的修煉,就到此爲止了。十年工齡,兩年經驗,就是說的這裏。一般掛在嘴邊的話就是:「總共就那麼點訪問量,學些高級的技術,幹什麼用?」
因此一直作web開發的同窗,必定要選一個能夠深耕的業務,加深對產品的理解;或者走技術路線,多接觸一些複雜的系統。
如今的小公司太多,爲了節省成本,程序員從前端到後端到運維,什麼都幹。樣樣行,樣樣慫。
但惋惜的是,隨着公司成長,全棧,要麼進化爲元老,要麼被淘汰,去進行下一輪全棧。
全棧多用於敏捷開發,可以快速對產品進行驗證,實時調整策略。
聽起來很美好,但不要高興的太早,除非在其餘方面有傑出的貢獻,大多數全棧開發會淪爲炮灰,由於太容易被替代。
固然,全棧的選擇會更多,包括讓人羨慕的自由職業者。也能夠適時吹點牛X。
一些能言善辯,喜歡和人打交道的,會選擇這條路子。
大多數工做就是開會,統計、協調進度,更像是一個幹雜活的,區別就是手裏有一點點權利。
項目經理喜歡考證,許多公司去拿項目的時候,會用得着。
有不少結構優雅的公司,不須要項目經理,這種活有人兼職去作了。因此項目經理,在一些人員複雜,客戶刁鑽的公司,或者外包公司,還比較吃香。
喜歡埋頭苦幹的碼農,會比較排斥此發展路線,因此這也算各得其所。
之前是人人都是項目經理,如今是人人都是產品經理。
你已經get到點了。
業務專家不是設計產品的,而是指在某個垂直行業,有多年的工做經驗和深入的看法,輔助決策。
業務專家可以瞭解業務系統中關鍵的要點和風險點,在技術設計的時候,兼顧業務屬性,並能作微創新。
業務專家一般存在於比較穩定的行業,好比銀行、保險、電信等。跳槽機會更少一些,但有一個步步高昇的指望。但不要被僞業務
耽誤終生,並非全部的業務都有深耕的價值。
若是你是空氣幣老闆,有P2P業務專家和IM系統業務專家兩我的選,你確定會優先選擇搞P2P的。也就是說,不少業務的壁壘很高,對於業務專家來講,跨行的成本也很高。
這也是大部分研發但願達到的技術高度。但惋惜的是,隨着雲環境的推廣,這部分的需求也愈來愈少,在能夠預見的將來,需求會更加萎靡。
但在一些大公司內部,機會和缺口仍是很大。從IAAS、PAAS、SAAS,到如今的Serverless、中臺概念,都是技術專家們不甘寂寞的自我升級,技術羣體的總體路線也越走越窄。
技術專家帶有強烈的技術光環,使用的技術「四海皆准」,不須要關注太多業務,幾乎能適應任何公司。
中小型公司,純粹的業務架構師不多見,仍是須要具體的技術實施,咱們能夠認爲業務架構師是業務專家的升級版本,可以權衡得失,出解決方案的那種。
你是業務專家,同時也是技術專家,可公司不會給你兩份工資。因此你會獲得一個技術屬性的業務架構師稱號。
技術架構師一樣是一個進行權衡的職業,在小型公司很難見到,由於沒有那麼多的需求。
技術架構師一般會對多個技術產品進行深刻比較,並選擇最合適的。影響因素有不少,好比公司技術棧、產品類型、管理、成本、工期等。
架構師與高級開發的區別是:開發可以實現某種方案,而架構師可以在多種方案上進行權衡。
不管是業務架構師,仍是技術架構師,都須要從大量衝突的資源中,找到一種最優的協調方式,以解決問題爲主,不會再拘泥於某種語言或我的喜愛。
一、須要考慮公司的總體發展戰略,明確技術團隊的演化方向。有戰略思惟。
二、對上可以用「人話」與CEO進行溝通,對下可以保證系統的穩定,產品的進度。有溝通能力。
三、打造有競爭力的團隊,會涉及大量管理工做。有管理經驗。
四、有行業影響力,自帶光環,對企業有附加價值。
每一條路,都荊棘密佈。等你達到你想要的高度,會忽然發現:已經35歲了。
做者簡介:小姐姐味道 (xjjdog),一個不容許程序員走彎路的公衆號。聚焦基礎架構和Linux。十年架構,日百億流量,與你探討高併發世界,給你不同的味道。個人我的微信xjjdog0,歡迎添加好友,進一步交流。