① 碼農分為真的能寫代碼的,以及自認為能寫代碼的。
② 真的能寫代碼的碼農又分為自認為寫的不錯的,以及真的還不錯的。
③ 真的能寫不錯代碼的碼農又分為會鉆研會不斷優化的,以及安于現狀的。
④ 會鉆研的碼農又分為喜歡廣度了解新技術蜻蜓點水的,以及深入鉆研用到知識的。
了解廣度的碼農又有少部分愿意深入某些技術,喜歡深入研究的又往往缺乏廣度知識。
⑤ 極少深度廣度都關注的碼農又分為為技術而技術和為業務而技術的。
純為技術而技術的碼農在國內的軟件行業需求太少,且需求的往往不是應用軟件領域了。
⑥ 為業務而技術的深度廣度都了解的碼農,又需要有良好的溝通能力。
⑦ 而溝通好的,又有一部分當PM去了。
⑧ 然后剩下的,又有一部分慢慢脫離實際開發(不再做任何實現)或者開始依靠拿各種中間件搭積木來作為“架構”手段。
⑨ 除去這些,剩下對業務有一定了解,對技術廣度上有多種涉獵,深度上對部分技術研究徹底,還有很重要的一點,考慮問題足夠細致全面。
④ 細致全面善于溝通,技術上深度廣度都沒問題, 又喜歡這個工作,還會不時做底層實現,從業務和開發兩個角度出發,搭出“架構”來是為了開發效率,為了運行效率,為了開發質量,為了業務靈活和運行穩定,為了維護方便等等這樣的人,個人認為可以稱為“架構師”。
而真能滿足這種需求的,別說題主的10%的比例,1%能不能達到我也持懷疑態度。其實現在的“架構師”大多數都停留在8這個層次,甚至很多在5這個層次就當上title上的架構師了。
總之,成為架構師,不僅僅是工作上的簡單積累,更需要主動接納工作外的大量知識,同時,對性格上對于非技術能力上也有一定的要求,不僅如此連思維方式都很重要,外加職業發展中又有很多岔路,最后走到架構師這根樹枝上的就寥寥可數了。
金字塔結構
自古以來,金字塔結構(人群分個三六九等、高中低三檔)在人類社會的各行各業中普遍存在,這是客觀規律??峙略龠^千萬年,也是如此。
人類社會為什么普遍、長期存在金字塔現象?其他動物,比如螞蟻、大雁社會,有嗎?這個問題就很深了,刨根問底有難度,也許應該問上帝。
金字塔結構/現象從根本上決定了大多數人做不了軟件架構師。不光軟件工程行業如此,能做技術領導的始終必然只是位于中上層的少數人。
英文水平差
據說中國有 700 萬碼農,英文不好似乎是一個比較普遍的現象。英語,尤其讀寫不好,把合格的架構師候選人選砍掉一大半。
小富即安的心理
很多碼農每月拿到萬把塊錢,就心安理得了,不再有更高的追求。求穩求安定,這符合大多數人的心理。不滿于現狀,堅持不斷學習,努力提高自己的開發技術和管理水平,擁有強烈進取心,想一朝一日做編程高手、軟件架構師的人畢竟是少數。
二三流企業的壓制
架構師不是隨便什么人可以做的。在一個企業團隊里,架構師作為研發和管理骨干,具有特殊的地位和權利。
知識結構的缺陷
架構師,程序員, 產品經理的區別,大概就是建筑行業里建筑師,建筑工人,甲方業主的區別。產品經理說我要建這么這么一棟樓,架構師說好吧,我來幫你看看是做成磚木結構還是 框架結構,房型怎么設計,水電氣怎么布局,預算多少,然后程序員上陣,按照圖紙把樓建起來。運營是大樓的物業管理,負責營運大樓。
軟件開發越來越成為傳統行業(即便在互聯網企 業),一個成熟的軟件團隊內部自然會分化出這些角色,各展所長。但非常不同的是,建筑工人很少能自發成長為建筑師,后者都是科班出身,因為建筑學科已經高 度發達,需要掌握結構力學,美學等技術,現在軟件行業還沒有這么高的成熟度,程序員和架構師接受的都是一樣的計算機教育,所以程序員可以自學升級到架構 師,走一條不同的升級打怪路線。
那么,架構師是什么人呢?
按所工作的不同軟件層分,有網絡架構,系統架構,數據架構,業務架構,應用架構,平臺架構。
按所解決的問題領域分,有電商架構,支付架構,搜索架構,安全架構,性能架構,游戲架構,多媒體架構,等等等。
按其工作的深度來分,有集成架構,業務架構,模塊架構,框架架構,中間件架構,軟件架構,引擎架構,服務器架構,甚至編程語言架構。
是不是太亂了?好比在設計師的世界觀里一切東西都需要設計。軟件也需要精心設計,在優秀的程序員眼里,每一行代碼都需要架構!都體現了架構。
為了解決問題,程序員自然需要架構,他們中的佼佼者被冠以架構師的名號,獲得了一定的話語權,逐步成為一個職業分工,我想,這就是架構師的本來面目。
成為架構師,需要經驗和眼界
老碼農分為兩種:游擊隊和板凳王
坐穿板凳有利于積累經驗,而不利于開拓眼界
游遍四海有利于開拓眼界,而不利于積累經驗
碼農的生活是高壓的,唯有熱情可以驅使你一邊吃著蘋果,一邊又去摘梨。
然而,又有多少熱情沒有隨時間而冷卻呢?