小團隊一般 10 人左右,其中常常是技術最牛的人做架構師(或TL)。所以,架構師在廣大碼農中的佔比大概平均不到 10%。而架構師也可以分為初級、中級、高級三檔,江湖上真正高水平的軟體架構師就更少了。

所以,大部分(超過九成的)碼農幹上許多年,還是做不了架構師,這是什麼原因造成的呢?

1:碼農分為真的能寫代碼的,以及自認為能寫代碼的。

2:真的能寫代碼的碼農又分為自認為寫的不錯的,以及真的還不錯的。 3:真的能寫不錯代碼的碼農又分為會鑽研會不斷優化的,以及安於現狀的。

4:會鑽研的碼農又分為喜歡廣度了解新技術蜻蜓點水的,以及深入鑽研用到知識的。 了解廣度的碼農又有少部分願意深入某些技術,喜歡深入研究的又往往缺乏廣度知識。

5:極少深度廣度都關注的碼農又分為為技術而技術和為業務而技術的。 純為技術而技術的碼農在國內的軟體行業需求太少,且需求的往往不是應用軟體領域了。 6:為業務而技術的深度廣度都了解的碼農,又需要有良好的溝通能力。 7:而溝通好的,又有一部分當PM去了。 8:然後剩下的,又有一部分慢慢脫離實際開發(不再做任何實現)或者開始依靠拿各種中間件搭積木來作為「架構」手段。 9:除去這些,剩下對業務有一定了解,對技術廣度上有多種涉獵,深度上對部分技術研究徹底,還有很重要的一點,考慮問題足夠細緻全面。 10:細緻全面善於溝通,技術上深度廣度都沒問題, 又喜歡這個工作,還會不時做底層實現,從業務和開發兩個角度出發,搭出「架構」來是為了開發效率,為了運行效率,為了開發質量,為了業務靈活和運行穩定,為了維護方便等等這樣的人,個人認為可以稱為「架構師」。 而真能滿足這種需求的,別說10%的比例,1%能不能達到我也持懷疑態度。其實現在的「架構師」大多數都停留在8這個層次,甚至很多在5這個層次就當上title上的架構師了。 總之,成為架構師,不僅僅是工作上的簡單積累,更需要主動接納工作外的大量知識,同時,對性格上對於非技術能力上也有一定的要求,不僅如此連思維方式都很重要,要不斷找准自己定位,不斷思考如何搭建架構師知識體系?

點贊+關注後私信回復【架構資料】獲取學習資料

一、學會如何分析源碼?

大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。但是,會讀代碼的並不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。因為它是兩個原因造成的:

1:我們所有的教育和培訓都在強調怎麼寫代碼,並沒有教大家如何讀代碼

2: 大多數工作場景都是一個蘿蔔一個坑,我們只需要了解一個系統的局部便能開展工作,讀不相干的代碼,似乎沒用

所以,要養成源碼三問的習慣:

「為什麼要有這樣的架構」

「他是什麼樣子的」

「他是怎麼工作的」

二、為什麼是分散式?

首先需要說明的是,分散式系統是一個複雜且寬泛的研究領域,學習一兩門在線課程,看一兩本書可能都是不能完全覆蓋其所有內容的。

三、微服務為什麼會這麼火?

相信大家都了解業務越來越複雜,服務分層,微服務架構是架構升級的必由之路,而對於微服務的優點相信大家都不陌生。

比如:易於開發與維護 / 微服務相對小,易於理解 / 啟動時間短,開發效率高 / 獨立部署 / 伸縮性強 / 每個服務都可以在橫向和縱向上擴展 / 微服務架構可以更好將架構和組織相匹配 / 每個團隊獨立負責某些服務,獲得更高的生產力 / 降低嘗試新技術的成本......

四、程序員到底要不要學習JVM?

總有人問這個東西好像用不上,於是要不要學這樣的問題,然後又總有人擔心一直搬磚成天做些重複沒提升的東西。

如果你這輩子只甘心做一個平庸的Java碼農,那麼你完全沒有必要去學習JVM相關的知識。

五、被我們忽略掉的工程化專題

在IT產業中,寡頭化出現代表著創業公司減少--沒人再去用聲勢浩大的發布會講故事、沒人再去宣傳自己拿了多少融資。

這一代中國人自小的教育不比歐美的STEAM,而是重學術、輕手藝。我們往往會為工科和產能過剩畫上等號。強大的資本和技術門檻為這些產業蒙上了一層神秘的面紗,讓普通人很難真正了解到其中技術和工藝的複雜程度,也就更難明白其中的價值。可正是因為中國的工程化能力,才讓我們有機會走到AI時代的第一梯隊,而不僅僅是靠學術研究能力。

六、沒有高並發經驗,想進大公司該怎麼辦?

假如沒有靠譜的公司,接觸不到高並發的業務場景怎麼辦?你永遠解決的是小問題,工作10年技術也未必提升多少。

很多程序員也經常找我說,沒有經驗就沒有靠譜的公司收,沒有靠譜的公司也就沒有經驗,我看了無數的書,自己做了無數的實驗拚命想找個靠譜公司去深入,但是感覺好難,簡直是個死循環

大家都比較關注高並發,原因很簡單,想去BAT這樣的大公司,你必須要有高並發的經驗。今天普及下高並發的知識,希望大家對高並發有一個正確的認識。

七、學習千遍,不如項目實戰成功一次

有人說: 項目實戰相信很多程序員都多少會有的,可是我們這個還要學習什麼呢?

我的回答是:那就要看你想不想成為一個架構師了,為什麼98%的程序員工作10年,一輩子還只是一個開發者, 程序員們都要想一想這個問題,我是不是需要提升了。

我認為,學習項目實戰最重要的還是學習項目管理,作為程序員,都應該學點項目管理。

凡事皆為「項目」項目的兩類屬性(複雜的邏輯,龐大的信息量)

這才是我們學習「項目實戰」的終極意義。

現在作為程序員的你,或許想提升自己,卻找不到突破口,公司沒人帶。又或許你已經工作6年了,卻還是很迷茫,很多知識都還是不懂,也沒有達到自己期望的一個職位,薪資。

相信大家,在學習的路上也遇到了不少的坑,有人放棄,有人堅持,但是我相信 作為程序員的你不會想終其一生也只是一個開發,到年齡就會被公司辭退。

所以,大家如果想往技術路上走的,想成為架構師的,一定要 保持終生學習的態度,讓學習力成為核心競爭力,才能不被時代所淘汰, 這裡我也分享自己收集的系統的學習資料,和幾套學習路徑圖給大家,真心的希望能幫助到大家 。

點贊+關注後私信回復【架構資料】獲取學習資料

點贊+關注後私信回復【架構資料】獲取學習資料

推薦閱讀:

相关文章