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