更新時間:2019-08-01 10:14:14 來源:動力節(jié)點 瀏覽3421次
小團隊一般10人左右,其中常常是技術(shù)最牛的人做架構(gòu)師(或TL)。所以,架構(gòu)師在廣大碼農(nóng)中的占比大概平均不到10%。而架構(gòu)師也可以分為初級、中級、高級三檔,江湖上真正高水平的軟件架構(gòu)師就更少了。
所以,大部分(超過九成的)碼農(nóng)干上許多年,還是做不了架構(gòu)師,這是什么原因造成的呢?
1:碼農(nóng)分為真的能寫代碼的,以及自認為能寫代碼的。
2:真的能寫代碼的碼農(nóng)又分為自認為寫的不錯的,以及真的還不錯的。
3:真的能寫不錯代碼的碼農(nóng)又分為會鉆研會不斷優(yōu)化的,以及安于現(xiàn)狀的。
4:會鉆研的碼農(nóng)又分為喜歡廣度了解新技術(shù)蜻蜓點水的,以及深入鉆研用到知識的。
了解廣度的碼農(nóng)又有少部分愿意深入某些技術(shù),喜歡深入研究的又往往缺乏廣度知識。
5:極少深度廣度都關(guān)注的碼農(nóng)又分為為技術(shù)而技術(shù)和為業(yè)務而技術(shù)的。
純?yōu)榧夹g(shù)而技術(shù)的碼農(nóng)在國內(nèi)的軟件行業(yè)需求太少,且需求的往往不是應用軟件領(lǐng)域了。
6:為業(yè)務而技術(shù)的深度廣度都了解的碼農(nóng),又需要有良好的溝通能力。
7:而溝通好的,又有一部分當PM去了。
8:然后剩下的,又有一部分慢慢脫離實際開發(fā)(不再做任何實現(xiàn))或者開始依靠拿各種中間件搭積木來作為“架構(gòu)”手段。
9:除去這些,剩下對業(yè)務有一定了解,對技術(shù)廣度上有多種涉獵,深度上對部分技術(shù)研究徹底,還有很重要的一點,考慮問題足夠細致全面。
10:細致全面善于溝通,技術(shù)上深度廣度都沒問題,又喜歡這個工作,還會不時做底層實現(xiàn),從業(yè)務和開發(fā)兩個角度出發(fā),搭出“架構(gòu)”來是為了開發(fā)效率,為了運行效率,為了開發(fā)質(zhì)量,為了業(yè)務靈活和運行穩(wěn)定,為了維護方便等等這樣的人,個人認為可以稱為“架構(gòu)師”。
而真能滿足這種需求的,別說10%的比例,1%能不能達到我也持懷疑態(tài)度。其實現(xiàn)在的“架構(gòu)師”大多數(shù)都停留在8這個層次,甚至很多在5這個層次就當上title上的架構(gòu)師了。
總之,成為架構(gòu)師,不僅僅是工作上的簡單積累,更需要主動接納工作外的大量知識,同時,對性格上對于非技術(shù)能力上也有一定的要求,不僅如此連思維方式都很重要,要不斷找準自己定位,不斷思考如何搭建架構(gòu)師知識體系?
學會如何分析源碼?
大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。但是,會讀代碼的并不在多數(shù),會讀代碼又真正讀懂一些大項目的源碼的,少之又少。因為它是兩個原因造成的:
1:我們所有的教育和培訓都在強調(diào)怎么寫代碼,并沒有教大家如何讀代碼
2:大多數(shù)工作場景都是一個蘿卜一個坑,我們只需要了解一個系統(tǒng)的局部便能開展工作,讀不相干的代碼,似乎沒用
所以,要養(yǎng)成源碼三問的習慣:
“為什么要有這樣的架構(gòu)”
“他是什么樣子的”
“他是怎么工作的”
為什么是分布式?
首先需要說明的是,分布式系統(tǒng)是一個復雜且寬泛的研究領(lǐng)域,學習一兩門在線課程,看一兩本書可能都是不能完全覆蓋其所有內(nèi)容的。
微服務為什么會這么火?
相信大家都了解業(yè)務越來越復雜,服務分層,微服務架構(gòu)是架構(gòu)升級的必由之路,而對于微服務的優(yōu)點相信大家都不陌生。
比如:易于開發(fā)與維護/微服務相對小,易于理解/啟動時間短,開發(fā)效率高/獨立部署/伸縮性強/每個服務都可以在橫向和縱向上擴展/微服務架構(gòu)可以更好將架構(gòu)和組織相匹配/每個團隊獨立負責某些服務,獲得更高的生產(chǎn)力/降低嘗試新技術(shù)的成本......
程序員到底要不要學習JVM?
總有人問這個東西好像用不上,于是要不要學這樣的問題,然后又總有人擔心一直搬磚成天做些重復沒提升的東西。
如果你這輩子只甘心做一個平庸的Java碼農(nóng),那么你完全沒有必要去學習JVM相關(guān)的知識。
被我們忽略掉的工程化專題
在IT產(chǎn)業(yè)中,寡頭化出現(xiàn)代表著創(chuàng)業(yè)公司減少--沒人再去用聲勢浩大的發(fā)布會講故事、沒人再去宣傳自己拿了多少融資。
這一代中國人自小的教育不比歐美的STEAM,而是重學術(shù)、輕手藝。我們往往會為工科和產(chǎn)能過剩畫上等號。強大的資本和技術(shù)門檻為這些產(chǎn)業(yè)蒙上了一層神秘的面紗,讓普通人很難真正了解到其中技術(shù)和工藝的復雜程度,也就更難明白其中的價值。可正是因為中國的工程化能力,才讓我們有機會走到AI時代的第一梯隊,而不僅僅是靠學術(shù)研究能力。
沒有高并發(fā)經(jīng)驗,想進大公司該怎么辦?
假如沒有靠譜的公司,接觸不到高并發(fā)的業(yè)務場景怎么辦?你永遠解決的是小問題,工作10年技術(shù)也未必提升多少。
很多程序員也經(jīng)常找我說,沒有經(jīng)驗就沒有靠譜的公司收,沒有靠譜的公司也就沒有經(jīng)驗,我看了無數(shù)的書,自己做了無數(shù)的實驗拼命想找個靠譜公司去深入,但是感覺好難,簡直是個死循環(huán)
大家都比較關(guān)注高并發(fā),原因很簡單,想去BAT這樣的大公司,你必須要有高并發(fā)的經(jīng)驗。今天普及下高并發(fā)的知識,希望大家對高并發(fā)有一個正確的認識。
學習千遍,不如項目實戰(zhàn)成功一次
有人說:項目實戰(zhàn)相信很多程序員都多少會有的,可是我們這個還要學習什么呢?
我的回答是:那就要看你想不想成為一個架構(gòu)師了,為什么98%的程序員工作10年,一輩子還只是一個開發(fā)者,程序員們都要想一想這個問題,我是不是需要提升了。
現(xiàn)在作為程序員的你,或許想提升自己,卻找不到突破口,公司沒人帶。又或許你已經(jīng)工作6年了,卻還是很迷茫,很多知識都還是不懂,也沒有達到自己期望的一個職位,薪資。
相信大家,在學習的路上也遇到了不少的坑,有人放棄,有人堅持,但是我相信作為程序員的你不會想終其一生也只是一個開發(fā),到年齡就會被公司辭退。