你聽著XX是阿里騰訊首席架構師,是不是覺得很牛?
其實,據我所知,目前來說,能成為架構師的,要么就是技術實力過硬,要么就是跟對了老板,你看阿里云的王X博士,就屬于后者,當然,前提是自身實力不能差。
一般來說,你不要急,你才進這個行業(yè)3-5年,就想成為架構師,是不是太快了?
架構師的工作就像是他打造一棵樹的主干和枝干,第二讓別人在這棵樹上長出樹葉和果實。
一個公司,一個項目能不能成功,架構師占了很多,畢竟現在很多公司都號稱是技術驅動,對吧。
架構師的職責都有哪些?
成為一名架構師,需要什么樣的能力?
別覺得這些假大空,自己去對標能力組成,把標準調到最高,你就知道自己差什么了。
架構上最大的困難是什么?
如果覺得這些對你沒價值,還是老老實實做好本職工作吧。
有以下幾個出路:
1. 做管理人員 40歲以后的程序員,到了中年大家都不愿意每天被上司管著,這個年紀的程序員會有一部分選擇去做管理,畢竟在這個行業(yè)已經摸爬滾打了幾十年。
2. 自己創(chuàng)業(yè) 40歲已經到了中年,如果實在不在繼續(xù)從事程序員行業(yè),可以轉行,很多程序員在年輕時攢了很多工資,善于理財的更是收獲了很多
3. 做工程師 有人說“科技變化太迅速,工程師可能跟不上節(jié)奏”,這或許曾經是事實,但建立網絡所需要的核心技術已經存在了數十年
第一要知道架構師是什么? 系統(tǒng)架構師是一個既需要掌控整體又需要洞悉局部瓶頸并依據具體的業(yè)務場景給出解決方案的團隊領導型人物。
所以,不是說學歷高低。而是經驗好不好。但是一般能當架構師的,學歷也是高的。這是一個相輔相成的。
從程序員到架構師需要多久,這個時間的長短沒有定論,可能很快,也可永遠無法達到。
架構師是什么,先找找定義:
系統(tǒng)架構師是一個最終確認和評估系統(tǒng)需求,給出開發(fā)規(guī)范,搭建系統(tǒng)實現的核心構架,并澄清技術細節(jié)、掃清主要難點的技術人員。
可以看出來,架構師也是一名側重技術的崗位,但也需要懂需求和管理。
把控需求
大多數時候,架構師需要從需求階段就介入的,架構需要和需求人員溝通需求,保證自己可以完整的理解和把握客戶需求。
架構設計、技術選型
如果是一個新的項目,架構師需要對項目進行分解,形成項目架構,在此基礎之上再完成技術選型。
例如,根據項目的需求,要把整個系統(tǒng)分解成多個子系統(tǒng):一個對外提供接口調用,一個跑定時服務,還有一個專門**MQ獲取消息并進行處理;數據庫用Mysql而不是Oracle,定時服務需要要用到zk或者Redis做分布式鎖,對外的接口是Rest而不是WebService,這些都需要架構師來確定。
如果是一個老項目,架構師同樣需要這次的需求做在什么地方,是在現有技術上就能實現,還是需要引入新的技術。
制定規(guī)范、把握方向、踩坑填坑
架構師是要跟隨項目的整個流程,架構師就是項目的技術權威,他應該時刻與開發(fā)人員進行溝通,讓開發(fā)人員理解架構意圖,實現業(yè)務功能。
架構師不是一個指揮者,有一些技術難點,都需要架構師沖在前面解決。而不是當項目遇到一個“坑”時,架構師是要“真刀真槍”的寫代碼的。
要想成為一名架構師,需要哪些品質呢?
技術深度和廣度:這一點不用多說了吧,架構師的技術儲備一定要豐富,也就是見多識廣。想象一下如果一個架構師連memcached、redis都沒聽說過(哈哈,說的就是五年前的我自己)。
抽象思維:這是進行系統(tǒng)分析和需求分解的基本素質,具備抽象思維的能力,才能把一個大的需求,分解成一個一個小的功能,但是分解后依然可以掌控全局。
溝通能力:和需求人員溝通,和業(yè)務人員溝通,和項目成員溝通…
領導能力:推動整個項目的發(fā)展,需要架構師的領導能力,這里說的領導力和項目經理所需的領導力還不太一樣,想象一下如果有一個只會寫PPT的架構師,做出來的架構設計不切實際,那么怎么可能讓開發(fā)人員信服。這里的領導能力,更多的是指技術能力的影響,甚至是個人魅力,也就是【可以服眾】,讓開發(fā)人員心里想:“這個架構這牛,跟著他我學到了很多東西,我服”。
當你具備了這些素質的時候,相信你就有能力成為一名架構師了。
希望我的回答,能夠幫助到你!
我會持續(xù)分享Java程序開發(fā)、架構設計、職業(yè)發(fā)展等方面的知識和見解,希望能得到你的關注【會點代碼的大叔】。
]]>