架構(gòu)師一定要掌握技術(shù)細(xì)節(jié)嗎?
做程序員的就沒有不想成為架構(gòu)師的,如果有,那他一定是個有“想法”的程序員。
架構(gòu)師已經(jīng)是程序員中處在技術(shù)最頂尖的一群人,如果你說上面還有技術(shù)總監(jiān)和CTO呢,那只能說你層次還太低了沒看明白。
程序員的職業(yè)發(fā)展
程序員發(fā)展線路圖(這線路中任何時候轉(zhuǎn)管理都行):
- public class Test {
- public static void main(String[] args){
- System.out.println("架構(gòu)級程序員,統(tǒng)稱為‘架構(gòu)師’。");
- }
- }
總監(jiān)和CTO已經(jīng)走向了管理和業(yè)務(wù),脫離技術(shù)一線。如果發(fā)現(xiàn)你們公司總監(jiān)或CTO還在寫Code,那說明你們公司有點(diǎn)小,真的很小,有可能都算不上個公司。
首先,架構(gòu)師一定是“掌握過”技術(shù)的。
這里的“掌握過”要理解一下,架構(gòu)以下的程序員都是在一條賽道上跑,熟悉業(yè)務(wù)再深入技術(shù)底層。
比如一個剛畢業(yè)的IT,從事java開發(fā),一開始就會個java語法,略微會個spring,這叫 初級 程序員。等他工作個1年,發(fā)現(xiàn)能在一個搭建好的project框架下熟練開發(fā)業(yè)務(wù),不需要太多幫助了,這叫 中級 程序員了。在過個3年左右,在常規(guī)的業(yè)務(wù)code下已經(jīng)不滿足了,開始搞框架并能自己搭建和維護(hù),新業(yè)務(wù)啟動能copy個框架過來直接開始寫業(yè)務(wù),這個時候已經(jīng)是 高級 程序員了。再有個3年左右,部分程序員已經(jīng)不甘心寫業(yè)務(wù)code了,開始專門搞框架維護(hù),研究底層源碼,還自己寫個把框架,能提升各種性能瓶頸,這個時候已經(jīng) 專家 程序員了。
有一天專家程序員突然對整個業(yè)務(wù)系統(tǒng)感興趣,想設(shè)計一個完整的系統(tǒng),從頁面+后臺+數(shù)據(jù),還有包括人員資源,都整合起來把系統(tǒng)落地建設(shè)完成。這個時候這個專家發(fā)現(xiàn)自己的知識太過細(xì)分了,還有很多不會,如web開發(fā),app開發(fā),h5開發(fā),數(shù)據(jù)庫維護(hù),項(xiàng)目管理,人員組建,人員管理等,這些能力都需要才能搞定一個完整的系統(tǒng)建設(shè)。
這個時候這個專家開始拼命的學(xué),這個時候“學(xué)習(xí)能力”才是根本,因?yàn)閷W(xué)的東西太多太多,跨過去 專家 就成了 架構(gòu) 程序員了。
其次,架構(gòu)師不一定要“掌握”技術(shù)的。
凡是到達(dá)架構(gòu)級別的程序員,有幾個特征: 超強(qiáng)學(xué)習(xí)能力、優(yōu)秀的表達(dá)能力、豐富的技術(shù)廣度、足夠的技術(shù)深度、一定的領(lǐng)導(dǎo)能力、很好的組織協(xié)調(diào)力。
所以“技術(shù)”不是 架構(gòu)級 程序員唯一的指標(biāo),只是他能力中的不可或缺一部分。往往越到后期,技術(shù)之外的能力越來越重要,是往后發(fā)展必須的條件。
但,架構(gòu)師還是一位技術(shù)一線的程序員,往往有救火隊(duì)員形象,又有點(diǎn)像個打雜的,他們穿插在各種級別程序員之中,也穿插在各種人員當(dāng)中,如產(chǎn)品、運(yùn)維、研發(fā)、市場、運(yùn)營、PM、總監(jiān)、還有其他等等人。
對于架構(gòu)師的考察,很多面試官都搞成了考察“專家或者高級”程序員,去測試一下框架底層原理掌握的怎么樣了,某個生命周期講講。這些是一個專家級程序員必須熟練掌握,并且隨時能拿出來侃侃而談的,但不是架構(gòu)師的主要考察指標(biāo)。
隨著架構(gòu)師的成長,“技術(shù)深度”會慢慢地遺忘丟失,不可避免。
從“初級、中級、高級”乃至“專家”成長起來,都只有一個核心指標(biāo)“技術(shù)深度”,面試時只關(guān)注這個是沒問題的。這個級別一般只在程序員圈子里溝通,外加些產(chǎn)品、測試,但還統(tǒng)一在“產(chǎn)研”中,是他們天天都會接觸的。
架構(gòu)師跨出了這個圈子,來到了更大的天地。
就好比小說修真世界,每一次突破都會發(fā)現(xiàn)更大的世界,同時也發(fā)現(xiàn)自己技能又不夠用了,又開始低調(diào)做人練怪升級,只有到達(dá)這個世界圈最強(qiáng)時候(飛升前)才能橫著走。
最后,生活最大
不做架構(gòu)師,不是就做不好程序員的。
在職業(yè)發(fā)展中,有一個十分關(guān)鍵的因素就是“ 時間 ”,不管你是什么職業(yè)都跑不過它,時間表現(xiàn)在你的年齡上。程序員有個35歲的魔咒!有很多技術(shù)人員就憑一個兩個能力吃一輩子飯,還不愁吃穿,只要把一個能力做到極致,到達(dá)這個領(lǐng)域頂尖,照樣是具有跨級打架的能力。
頂尖,是鳳毛麟角的人物了。
從一個人的一生來考慮,不要被一份工作和一個職業(yè)局限住自己,在一個階段做適合自己的事情才最好,每個階段都可以不同。日子才是人生的根本所在,生命只有一次,不要讓自己后悔曾經(jīng)。