對于工作多年的程序員而言,日后的職業(yè)發(fā)展無非是繼續(xù)專精技術(shù)、轉(zhuǎn)型管理和晉升架構(gòu)師三種選擇。
架構(gòu)師在一家公司有多重要、優(yōu)秀架構(gòu)師需要具備怎樣的素質(zhì)以及架構(gòu)師的發(fā)展現(xiàn)狀三個方面來分析
程序員如何才能晉升為優(yōu)秀的高薪架構(gòu)師?
希望通過本文讓程序員們了解架構(gòu)師的市場行情,了解架構(gòu)師的發(fā)展前景,并幫助你更清晰地做出職業(yè)規(guī)劃。
架構(gòu)師在一家公司有多重要
架構(gòu)師對一家公司、一個項目有多重要?我們來看一看調(diào)查的數(shù)據(jù)——
架構(gòu)師在公司中擔當著「IT架構(gòu)靈魂人物」的角色,因為他們不僅做著架構(gòu)師的本職工作,還同時做程序開發(fā),寫核心代碼。另外,架構(gòu)師依舊是技術(shù)高手,編程能力依然是一流的。
從圖表結(jié)果來看,我們可以認為架構(gòu)師是一家公司的IT架構(gòu)靈魂人物,他必須具備出色的設(shè)計能力、編程能力和溝通能力,在完成本職的架構(gòu)工作外,還要協(xié)調(diào)好項目中人員的關(guān)系,做出合理的分工,最終完成全部工作。
架構(gòu)師是程序員個人發(fā)展的一條道路,在一家公司里有著極為重要的地位,是團隊的關(guān)鍵人物,擔當著重責。
軟件架構(gòu)師李先生這么比喻道:「架構(gòu)師的工作就像是他打造一棵樹的主干和枝干,然后程序員們讓這棵樹上長出樹葉和果實?!?/p>
一名架構(gòu)師必須能夠?qū)懗鏊H自設(shè)計的系統(tǒng)中最難以實現(xiàn)的那段核心代碼,種出主干和枝干,才能將“冒芽開花結(jié)果”的重擔交給開發(fā)團隊來做。
既然架構(gòu)師是「靈魂人物」,那么,成為一名架構(gòu)師,需要具備怎樣的素養(yǎng)呢?
優(yōu)秀架構(gòu)師需要具備怎樣的素質(zhì)
擔任全棧技術(shù)架構(gòu)師三年的劉先生表示:「架構(gòu)師雖然經(jīng)常需要做一些分工的工作,涉及到一些管理層面,但在我看來,它并不算完全的管理,更考驗溝通能力和他的設(shè)計能力?!?/p>
在具體分析架構(gòu)師該具備的素質(zhì)前,我們首先了解下架構(gòu)師的主要職責有哪些。我選取了平臺上企業(yè)對JAVA架構(gòu)師、前端架構(gòu)師、爬蟲架構(gòu)師發(fā)出的面試邀請,我們先來看一看企業(yè)對架構(gòu)師這一職位的需求描述是什么——
企業(yè)對Java架構(gòu)師的職位描述與職位要求
企業(yè)對前端架構(gòu)師的職位描述與職位要求
企業(yè)對爬蟲架構(gòu)師的職位描述與職位要求
可以看出,企業(yè)無論是招哪一類架構(gòu)師,都會要求他們具有多年從業(yè)經(jīng)驗,有過項目開發(fā)經(jīng)歷,精通多門編程語言且熟悉數(shù)據(jù)庫。
本次我采訪了多名架構(gòu)師與程序員以及CTO,綜合他們的描述,總結(jié)出架構(gòu)師的主要職責為以下四點——
1 確認需求
架構(gòu)師要懂得用戶需求,理解用戶真正想要什么,這使得架構(gòu)師必須要和分析人員不斷溝通,反復確認需求規(guī)格說明書,以此來保證他精準清楚用戶需求。
項目經(jīng)理劉先生在受訪時說:「架構(gòu)師會與很多人溝通,例如開發(fā)人員,例如我們項目經(jīng)理,有時甚至是用戶本身。架構(gòu)設(shè)計的目的很明確,目的是什么呢?挖掘用戶需求?!?/p>
2 系統(tǒng)分解
在架構(gòu)師認可需求規(guī)格說明書后,架構(gòu)師已明確用戶需求是是什么,這時候便看架構(gòu)師的分解能力了。
通過入職的全棧技術(shù)架構(gòu)師周先生從「縱向分解」和「橫向分解」和我們說明了系統(tǒng)分解是什么——
「一般分為縱向分解和橫向分解,縱向分解是將整個系統(tǒng)分層,從而將整體系統(tǒng)分解成下一級的子系統(tǒng)與組件。橫向分解是在系統(tǒng)分解成不同的邏輯層或服務(wù)后,對邏輯層進行分塊,確定層與層之間的關(guān)系?!?/p>
3 技術(shù)選型
在系統(tǒng)分解后,架構(gòu)師會最終形成軟件整體架構(gòu),接下來,架構(gòu)師的職責是技術(shù)選型。
「前端到底用瘦客戶端還是富客戶端呢?數(shù)據(jù)庫是用MySQL還是MSSQL又或是Oracle呢?」架構(gòu)師張先生在接受采訪時說,「在了解用戶需求后,分解完系統(tǒng)后,技術(shù)選型是非常重要的環(huán)節(jié),提出各個方向,我再進行評估。不過,很多人都以為架構(gòu)師是有決定權(quán)的,其實不是,架構(gòu)師沒有拍版的權(quán)力,決定由項目經(jīng)理來做。 」
架構(gòu)師在技術(shù)選型階段會提供參考信息給項目經(jīng)理,項目經(jīng)理再從預算、進度、人力、資源等各方面情況來權(quán)衡,最終確認。
4 制定技術(shù)規(guī)格說明
如前文調(diào)查顯示,架構(gòu)師在項目開發(fā)過程中是「靈魂人物」,并且要具備協(xié)調(diào)組織能力和懂得人員分工。
在制定技術(shù)規(guī)格說明階段,架構(gòu)師要協(xié)調(diào)起所有的開發(fā)人員,架構(gòu)師通常會用技術(shù)規(guī)格說明書與開發(fā)人員保持溝通,讓開發(fā)人員能從各個視角去觀測、理解他們負責的模塊或者子系統(tǒng),確保開發(fā)人員能夠按照架構(gòu)意圖實現(xiàn)各項功能。
在了解架構(gòu)師的職責后,再來看看架構(gòu)師該具備什么能力才能成為一家公司中的「靈魂人物」。我們先來看一下調(diào)查數(shù)據(jù)——
37%的受訪人認為架構(gòu)師的設(shè)計能力最重要,技術(shù)實力重要度排在第二占了24%,溝通能力則排在第三,占比14%,管理能力在大多數(shù)架構(gòu)師眼中并不是最重要的,僅占了7%。此次,我們詳細分析排在前三的能力。
1 設(shè)計能力-擅長整合分析
架構(gòu)是過程,并非結(jié)果。
架構(gòu)是架構(gòu)師洞察內(nèi)在結(jié)構(gòu)、原則、規(guī)律與邏輯的過程,架構(gòu)師要做到清晰理解系統(tǒng),以及簡潔描述,這是分析整合的能力。
一個架構(gòu)師必須具備極強的分析能力,要做到根據(jù)產(chǎn)品宗旨和目標,分析清楚產(chǎn)品定位以及產(chǎn)品業(yè)務(wù),再整合利用現(xiàn)有的技術(shù)領(lǐng)域,找出最佳方案,實現(xiàn)產(chǎn)品概念。
2 技術(shù)實力-實現(xiàn)產(chǎn)品規(guī)劃
架構(gòu)師首先要將代碼寫的清晰易懂,要能夠?qū)崿F(xiàn)功能,做到?jīng)]有Bug,這要求架構(gòu)師必須具備至少熟練掌握一門語言。
這是最重要的,每一名出色的架構(gòu)師,必定是一位優(yōu)秀程序員。架構(gòu)師并不是純粹的管理崗位,對那些愛寫各式文檔、畫流程圖、脫離代碼、只說不做、高高在上的架構(gòu)師,程序員們通常會稱他們?yōu)椤?/p>
PPT 架構(gòu)師。
不懂編程的架構(gòu)師的職業(yè)生涯必定是短暫的,無論如何都不可本末倒置,要想實現(xiàn)自己的職業(yè)規(guī)劃,不能荒廢自己本身的技能,技術(shù)是架構(gòu)師賴以生存的最基本能力。
所以,不推薦不熱愛編程的人去做架構(gòu)師,對于團隊工作和個人發(fā)展來說,都會帶來糟糕的后果。
3 溝通能力-能夠橫向溝通
架構(gòu)師必須參與項目開發(fā)全過程,包括確認需求、系統(tǒng)分解、架構(gòu)設(shè)計、技術(shù)選型、制定技術(shù)規(guī)格說明、系統(tǒng)實現(xiàn)、集成測試和部署各階段,在這一系列過程中,架構(gòu)師會與各部門溝通交流。
一個產(chǎn)品會有多部門合作,架構(gòu)師在其中的溝通極為重要,直接影響產(chǎn)品進度與質(zhì)量。架構(gòu)師不僅要與開發(fā)人員溝通,也要和項目經(jīng)理、分析人員甚至用戶溝通,來實現(xiàn)產(chǎn)品的各種可能性。
所以,對于架構(gòu)師來講,不僅有技術(shù)方面的要求,還有能夠橫向溝通的要求。
架構(gòu)師的發(fā)展現(xiàn)狀
成為一名架構(gòu)師是程序員的職業(yè)發(fā)展道路之一,架構(gòu)師的工作前景也是程序員們所關(guān)心的事情,采訪了數(shù)名架構(gòu)師,做出「架構(gòu)師的發(fā)展現(xiàn)狀」的相關(guān)分析。首先,我們來看一看架構(gòu)師們想去怎樣規(guī)模的公司——
可以發(fā)現(xiàn),初創(chuàng)公司并不受到架構(gòu)師們的青睞,架構(gòu)師們更偏向進入具有一定規(guī)模已有成熟產(chǎn)業(yè)線的公司進行發(fā)展。
接下來,我們收集了近一年來架構(gòu)師所收到的面試邀請數(shù)——
能夠看出,最近一年來,企業(yè)對架構(gòu)師的需求量是在逐步上升的。在了解企業(yè)需要后,我們再來看一看架構(gòu)師的收入——
以上數(shù)據(jù)是兩年來通過1入職的架構(gòu)師年薪,20萬以下和60萬以上各占3%,20萬至30萬、30萬至40萬各占22%,40萬至50萬占比最大,高達34%,從現(xiàn)狀年薪來看,架構(gòu)師屬于高薪職業(yè)。
高薪職業(yè)往往都擔著巨大壓力,對于架構(gòu)師而言,他們在工作中面臨的最大的困難又是什么呢——
協(xié)調(diào)人際利益占了35%,管理分工占了26%,這些與「人」相關(guān)的內(nèi)容成為架構(gòu)師在工作中面臨的最大困難。對于能成為架構(gòu)師的人來說,只要不是PPT架構(gòu)師,基本都具備了對架構(gòu)師而言最重要的設(shè)計能力和編程能力,所以最重要的有時并不是最困難的。
他們必須思考清楚用戶最需要的是什么,同時協(xié)調(diào)好項目內(nèi)部人員的利益關(guān)系,對于很多不擅于打交道的程序員而言,協(xié)調(diào)和管理的確成為了他們最頭疼的問題。
受訪的架構(gòu)師們表示,面對協(xié)調(diào)和管理所帶來的困擾時,不能著急,協(xié)調(diào)人員之間的利益、管理和分配工作量本身就是一件需要大量實踐才能有成效的事情,成功的架構(gòu)師們往往會選擇從減壓做起,而協(xié)調(diào)與管理,在他們看來,是一件水到渠成的事。
我也通過那些這些入職的報告在職的架構(gòu)師們總結(jié)出了一套完整的Java架構(gòu)師的完整體系也錄制好了一套視頻在我自己的qq群里面:629740746 大家可以加群找我的助手領(lǐng)?。?/p>
無論是企業(yè)需求,還是薪資水準,從現(xiàn)狀而言,架構(gòu)師的各方面待遇都是較好的,同樣,多部門協(xié)調(diào)和多線部署也給他們帶來了巨大壓力。不難看出,國內(nèi)架構(gòu)師的發(fā)展現(xiàn)狀是較為樂觀的,架構(gòu)師無論是地位、薪酬還是未來發(fā)展,都具有著優(yōu)勢。
對于在技術(shù)方面想要深入了解的:可以加群 :629740746 來學習我們歡迎每一位Java程序員
不是每一位程序員都必須轉(zhuǎn)管理層成為CTO甚至CEO,也不是每一名程序員都必須要成為架構(gòu)師,每名程序員都有著不同的發(fā)展方向。
從程序員到架構(gòu)師,是很大的職業(yè)轉(zhuǎn)變,也是不少程序員的職場規(guī)劃路線。
本次受訪的架構(gòu)師,大多數(shù)都是在工作十年后再從程序員轉(zhuǎn)型為架構(gòu)師,幾乎所有高薪架構(gòu)師,都懂得多門主流編程語言如C 、Java、python等,才能在架構(gòu)系統(tǒng)時沒有局限性,也可以使用如MySQL、sqlserver、sybase、jracle、infomix等多種數(shù)據(jù)庫,他們還了解文件系統(tǒng)特性,如NFS、GFS,NTDFS、XFS等,甚至做過幾年windows開發(fā),是這些經(jīng)歷,才造就了一名優(yōu)秀的架構(gòu)師。
架構(gòu)師是靈魂人物,地位也在不斷攀升,薪酬仍在穩(wěn)步增長,愿你在本文中找到你想要的幫助。
聯(lián)系客服