在互聯網圈,對于工作多年的程序員而言,日后的職業發展無非是繼續專精技術、轉型管理和晉升架構師三種選擇。
更多的人選擇成為架構師,不管是架構師的薪資還是架構師給自己帶來的成就感,同樣是擼代碼,你與架構師不可逾越的鴻溝在哪里呢?
首先何為架構師?架構師英文architect,這個詞源于建筑學。軟件工程當中的架構師和建筑工程當中建筑師有許多相通之處,都是負責“產品”宏觀的架構設計。
接下來直接進入正題!架構師應具備的基本職業技能及素養:
一、經驗
優秀架構師共同點:都是通過不斷的歷練經過時間的磨練逐漸發展成為架構師的。當你擁有站在局外看代碼的能力,從而理解特定軟件系統背后的設計決策。從多個不同抽象層面理解軟件系統,這是架構師必須掌握的核心技能。
二、技術
1、了解相關領域的技術知識
在你想要成為架構師的相關技術領域,必須具備扎實的專業知識和過人的本領。
2、超強的分析、設計能力
不管怎樣,具備很強的分析和設計能力都是必殺技。另外就是能夠運用設計模式方式解決各種各樣的問題。
3、編碼與驗證性測試(POC)
熟悉該組織整個技術棧,并能使用各層的技術熟練地編碼。能快速實現驗證性測試。
4、架構設計的實力
能為原始需求提供架構方案。考慮周全:工具和框架的采用、安全性、性能和擴展性、依賴關系、集成、效益。熟悉軟件開發生命周期(SDLC):需求、分析、設計、測試、打包、部署。
5、建模語言或工具
能使用不同的建模語言或工具,向其他架構師、開發者、項目經理等人,闡述架構。
6、架構框架
能證明架構的可行性,包括其業務、應用、數據、基礎設置方面。了解TOGAF和ZACHMAN框架就更好了。
三、思維高度
如果你認為懂技術就可以成為一名架構師,那就是大錯特錯了,想要成為一名優秀的架構師,那你一定還要具備:
1、溝通能力
能與開發人員、測試人員、商業分析師、上級經理溝通無阻,無論在口頭上和書面上。
2、培訓能力
(1)能講解該行業的市場、技術知識。
(2)能為全隊提供培訓課程。
3、銷售能力
能參與售前工作(尤其對于軟件服務業):制定技術方案、使用各種預算工具估計方案的規模和成本、與銷售對象互動。
4、演講技巧
優秀的演講技巧,有助于以下活動:華麗的計劃書和技術文檔、PPT演講、布道。
總結下來就是:
1、架構師需要理解最重要的架構驅動力是什么,他提供的設計需要考慮這些因素。
2、架構師要控制技術風險,在需要的時候積極演化架構,并且負責技術質量保證。
3、架構師需要把控全局,技術乃至團隊。
綜上所述你與架構師不可逾越的鴻溝就是:領導力
在一個團隊里,架構師充當了技術Leader的角色,不僅要完成項目的整體設計和規劃,還要帶領技術團隊一起解決實際問題,攻克技術難點,使得軟件的設計、開發、測試、發布流程得以順利完成。
不想成為架構師的程序員不是好程序員,其實架構師定義是模棱兩可的,那些7、8年程序員也算不上架構師,大家都是在學習的過程中,在一個陌生的領域,沒有人從一開始就是大神。如果你想變得越來越好,無論是寫代碼,與人溝通或者其它的技能,都是需要投入時間去學習的。