小團隊一般 10 人左右,其中常常是技術最牛的人做架構師(或TL)。所以,架構師在廣大碼農中的佔比大概平均不到 10%。而架構師也可以分為初級、中級、高級三檔,江湖上真正高水平的軟體架構師就更少了。
所以,大部分(超過九成的)碼農幹上許多年,還是做不了架構師,這是什麼原因造成的呢?
1:碼農分為真的能寫代碼的,以及自認為能寫代碼的。
2:真的能寫代碼的碼農又分為自認為寫的不錯的,以及真的還不錯的。 3:真的能寫不錯代碼的碼農又分為會鑽研會不斷優化的,以及安於現狀的。
4:會鑽研的碼農又分為喜歡廣度了解新技術蜻蜓點水的,以及深入鑽研用到知識的。 了解廣度的碼農又有少部分願意深入某些技術,喜歡深入研究的又往往缺乏廣度知識。
5:極少深度廣度都關注的碼農又分為為技術而技術和為業務而技術的。 純為技術而技術的碼農在國內的軟體行業需求太少,且需求的往往不是應用軟體領域了。 6:為業務而技術的深度廣度都了解的碼農,又需要有良好的溝通能力。 7:而溝通好的,又有一部分當PM去了。 8:然後剩下的,又有一部分慢慢脫離實際開發(不再做任何實現)或者開始依靠拿各種中間件搭積木來作為「架構」手段。 9:除去這些,剩下對業務有一定了解,對技術廣度上有多種涉獵,深度上對部分技術研究徹底,還有很重要的一點,考慮問題足夠細緻全面。 10:細緻全面善於溝通,技術上深度廣度都沒問題, 又喜歡這個工作,還會不時做底層實現,從業務和開發兩個角度出發,搭出「架構」來是為了開發效率,為了運行效率,為了開發質量,為了業務靈活和運行穩定,為了維護方便等等這樣的人,個人認為可以稱為「架構師」。 而真能滿足這種需求的,別說10%的比例,1%能不能達到我也持懷疑態度。其實現在的「架構師」大多數都停留在8這個層次,甚至很多在5這個層次就當上title上的架構師了。 總之,成為架構師,不僅僅是工作上的簡單積累,更需要主動接納工作外的大量知識,同時,對性格上對於非技術能力上也有一定的要求,不僅如此連思維方式都很重要,要不斷找准自己定位,不斷思考如何搭建架構師知識體系?
點贊+關注後私信回復【架構資料】獲取學習資料
一、學會如何分析源碼?
大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。但是,會讀代碼的並不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。因為它是兩個原因造成的:
1:我們所有的教育和培訓都在強調怎麼寫代碼,並沒有教大家如何讀代碼
2: 大多數工作場景都是一個蘿蔔一個坑,我們只需要了解一個系統的局部便能開展工作,讀不相干的代碼,似乎沒用
所以,要養成源碼三問的習慣:
「為什麼要有這樣的架構」
「他是什麼樣子的」
「他是怎麼工作的」