更新時間:2019-07-27 09:02:04 來源:動力節點 瀏覽3160次
從小白到Java架構師要多久,如何成型,程序員如何才能晉升為優秀的高薪架構師?希望通過本文讓程序員們了解架構師的市場行情,了解架構師的發展前景,并幫助你更清晰地做出職業規劃。
架構師在一家公司有多重要
架構師對一家公司、一個項目有多重要?我們來看一看調查的數據——
架構師在公司中擔當著「IT架構靈魂人物」的角色,因為他們不僅做著架構師的本職工作,還同時做程序開發,寫核心代碼。另外,架構師依舊是技術高手,編程能力依然是一流的。
從圖表結果來看,我們可以認為架構師是一家公司的IT架構靈魂人物,他必須具備出色的設計能力、編程能力和溝通能力,在完成本職的架構工作外,還要協調好項目中人員的關系,做出合理的分工,最終完成全部工作。
架構師是程序員個人發展的一條道路,在一家公司里有著極為重要的地位,是團隊的關鍵人物,擔當著重責。
軟件架構師李先生這么比喻道:「架構師的工作就像是他打造一棵樹的主干和枝干,然后程序員們讓這棵樹上長出樹葉和果實。」
一名架構師必須能夠寫出他親自設計的系統中最難以實現的那段核心代碼,種出主干和枝干,才能將“冒芽開花結果”的重擔交給開發團隊來做。
既然架構師是「靈魂人物」,那么,成為一名架構師,需要具備怎樣的素養呢?
擔任全棧技術架構師三年的劉先生表示:「架構師雖然經常需要做一些分工的工作,涉及到一些管理層面,但在我看來,它并不算完全的管理,更考驗溝通能力和他的設計能力。」
在具體分析架構師該具備的素質前,我們首先了解下架構師的主要職責有哪些。我選取了平臺上企業對Java架構師、前端架構師、爬蟲架構師發出的面試邀請,我們先來看一看企業對架構師這一職位的需求描述是什么——
企業對Java架構師的職位描述與職位要求
企業對前端架構師的職位描述與職位要求
企業對爬蟲架構師的職位描述與職位要求
可以看出,企業無論是招哪一類架構師,都會要求他們具有多年從業經驗,有過項目開發經歷,精通多門編程語言且熟悉數據庫。
本次我采訪了多名架構師與程序員以及CTO,綜合他們的描述,總結出架構師的主要職責為以下四點——
1確認需求
架構師要懂得用戶需求,理解用戶真正想要什么,這使得架構師必須要和分析人員不斷溝通,反復確認需求規格說明書,以此來保證他精準清楚用戶需求。
項目經理劉先生在受訪時說:「架構師會與很多人溝通,例如開發人員,例如我們項目經理,有時甚至是用戶本身。架構設計的目的很明確,目的是什么呢?挖掘用戶需求。」
2系統分解
在架構師認可需求規格說明書后,架構師已明確用戶需求是是什么,這時候便看架構師的分解能力了。
通過入職的全棧技術架構師周先生從「縱向分解」和「橫向分解」和我們說明了系統分解是什么——
「一般分為縱向分解和橫向分解,縱向分解是將整個系統分層,從而將整體系統分解成下一級的子系統與組件。橫向分解是在系統分解成不同的邏輯層或服務后,對邏輯層進行分塊,確定層與層之間的關系。」
3技術選型
在系統分解后,架構師會最終形成軟件整體架構,接下來,架構師的職責是技術選型。
「前端到底用瘦客戶端還是富客戶端呢?數據庫是用MySQL還是MSSQL又或是Oracle呢?」架構師張先生在接受采訪時說,「在了解用戶需求后,分解完系統后,技術選型是非常重要的環節,提出各個方向,我再進行評估。不過,很多人都以為架構師是有決定權的,其實不是,架構師沒有拍版的權力,決定由項目經理來做。」
架構師在技術選型階段會提供參考信息給項目經理,項目經理再從預算、進度、人力、資源等各方面情況來權衡,最終確認。
4制定技術規格說明
如前文調查顯示,架構師在項目開發過程中是「靈魂人物」,并且要具備協調組織能力和懂得人員分工。
在制定技術規格說明階段,架構師要協調起所有的開發人員,架構師通常會用技術規格說明書與開發人員保持溝通,讓開發人員能從各個視角去觀測、理解他們負責的模塊或者子系統,確保開發人員能夠按照架構意圖實現各項功能。
在了解架構師的職責后,再來看看架構師該具備什么能力才能成為一家公司中的「靈魂人物」。我們先來看一下調查數據——
37%的受訪人認為架構師的設計能力最重要,技術實力重要度排在第二占了24%,溝通能力則排在第三,占比14%,管理能力在大多數架構師眼中并不是最重要的,僅占了7%。此次,我們詳細分析排在前三的能力。
1設計能力-擅長整合分析
架構是過程,并非結果。
架構是架構師洞察內在結構、原則、規律與邏輯的過程,架構師要做到清晰理解系統,以及簡潔描述,這是分析整合的能力。
一個架構師必須具備極強的分析能力,要做到根據產品宗旨和目標,分析清楚產品定位以及產品業務,再整合利用現有的技術領域,找出最佳方案,實現產品概念。
2技術實力-實現產品規劃
架構師首先要將代碼寫的清晰易懂,要能夠實現功能,做到沒有Bug,這要求架構師必須具備至少熟練掌握一門語言。
這是最重要的,每一名出色的架構師,必定是一位優秀程序員。架構師并不是純粹的管理崗位,對那些愛寫各式文檔、畫流程圖、脫離代碼、只說不做、高高在上的架構師,程序員們通常會稱他們為——
PPT架構師。
不懂編程的架構師的職業生涯必定是短暫的,無論如何都不可本末倒置,要想實現自己的職業規劃,不能荒廢自己本身的技能,技術是架構師賴以生存的最基本能力。
所以,不推薦不熱愛編程的人去做架構師,對于團隊工作和個人發展來說,都會帶來糟糕的后果。
3溝通能力-能夠橫向溝通
架構師必須參與項目開發全過程,包括確認需求、系統分解、架構設計、技術選型、制定技術規格說明、系統實現、集成測試和部署各階段,在這一系列過程中,架構師會與各部門溝通交流。
一個產品會有多部門合作,架構師在其中的溝通極為重要,直接影響產品進度與質量。架構師不僅要與開發人員溝通,也要和項目經理、分析人員甚至用戶溝通,來實現產品的各種可能性。
所以,對于架構師來講,不僅有技術方面的要求,還有能夠橫向溝通的要求。
架構師的發展現狀
成為一名架構師是程序員的職業發展道路之一,架構師的工作前景也是程序員們所關心的事情,采訪了數名架構師,做出「架構師的發展現狀」的相關分析。首先,我們來看一看架構師們想去怎樣規模的公司——
可以發現,初創公司并不受到架構師們的青睞,架構師們更偏向進入具有一定規模已有成熟產業線的公司進行發展。
接下來,我們收集了近一年來架構師所收到的面試邀請數——
能夠看出,最近一年來,企業對架構師的需求量是在逐步上升的。在了解企業需要后,我們再來看一看架構師的收入——
以上數據是兩年來通過1入職的架構師年薪,20萬以下和60萬以上各占3%,20萬至30萬、30萬至40萬各占22%,40萬至50萬占比最大,高達34%,從現狀年薪來看,架構師屬于高薪職業。
高薪職業往往都擔著巨大壓力,對于架構師而言,他們在工作中面臨的最大的困難又是什么呢——
協調人際利益占了35%,管理分工占了26%,這些與「人」相關的內容成為架構師在工作中面臨的最大困難。對于能成為架構師的人來說,只要不是PPT架構師,基本都具備了對架構師而言最重要的設計能力和編程能力,所以最重要的有時并不是最困難的。
他們必須思考清楚用戶最需要的是什么,同時協調好項目內部人員的利益關系,對于很多不擅于打交道的程序員而言,協調和管理的確成為了他們最頭疼的問題。
受訪的架構師們表示,面對協調和管理所帶來的困擾時,不能著急,協調人員之間的利益、管理和分配工作量本身就是一件需要大量實踐才能有成效的事情,成功的架構師們往往會選擇從減壓做起,而協調與管理,在他們看來,是一件水到渠成的事。
相關閱讀
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習