資深大牛分享:一個合格的Java程序員如何成長爲優秀的架構師

踽踽獨行上下求索老是痛苦,若是有良師益友陪伴點撥必能事半功倍。重新手碼農到高級架構師,要通過幾步?要多努力,才能成爲爲人倚重的技術專家?本文將爲你帶來一張程序員發展路徑圖,但你須要知道的是,天下沒有普適的道理,具體問題還需具體分析,實踐才能出真知。
資深大牛分享:一個合格的Java程序員如何成長爲優秀的架構師
最後,若是你們若是在自學遇到困難,想找一個java的學習環境,能夠加入咱們的java學習圈,點擊我加入吧,會節約不少時間,減小不少在學習中遇到的難題。
圖片描述
我認爲,架構師的內功主要包含三部分:判斷力、執行力、創新力,簡單解釋以下:java

判斷力:可以準確判斷系統的複雜度在哪裏,就像武俠高手同樣,能準確地看出對手的破綻和弱點。程序員

執行力:可以使用合適的方案解決複雜度問題,就像武俠高手同樣,能選擇合適的招式或者方法戰勝對手。編程

創新力:可以創造新的解決方案解決複雜度問題,就像武俠世界裏,小一些的創新是創新招式,而武學宗師可以創立新的武學或者心法,例如張三丰創立太極拳同樣。設計模式

所以,要成爲一個優秀的架構師,就須要不斷地提高本身這幾方面的內功,而這三方面的能力主要來源於經驗、視野、思考。緩存

經驗:設計過的系統越多、系統越複雜,架構師的內功也就越強,無論是成功的架構,仍是失敗的架構,無論是踩坑的經驗,仍是填坑的經驗,都將成爲架構師內功的一部分。多線程

視野:掌握的知識和技能越多、越深,架構師的內功也就越強,他山之石能夠攻玉,站在巨人的肩膀上會看的更高更遠。架構

思考:經驗和視野都是外部輸入,相似於咱們吃的食物,但光吃還不行,還要消化,將其變爲咱們本身的養分,這就是思考的做用。思考可以將經驗和視野中的模式、判斷、選擇、技巧等提煉出來爲我所用,思考也能促使咱們產生新的創意和靈感。編程語言

結合上面的分析,從程序員到架構師的成長之路,總的指導原則是:積累經驗,拓寬視野,深度思考。按照這個總的原則爲指導,接下來咱們看看從程序員到架構師的成長過程當中,具體如何實踐。工具

合格的工程師須要 1~3 年時間,其典型特徵是「在別人的指導下完成開發」。工程師階段是最原始的「基礎技能積累階段」,主要積累基礎知識,包括編程語言、編程工具、各種系統的基本使用。性能

高級工程師須要 2~5 年時間,其典型特徵是「獨立完成開發」,包括需求分析、方案設計、編碼實現,其中需求分析和方案設計已經包含了「判斷」和「選擇」,只是範圍相對來講小一些,更可能是在已有架構下進行設計。

從普通工程師成長爲高級工程師,主要須要「積累方案設計經驗」,簡單來講就是業務當前用到的相關技術的設計經驗。包括:表設計經驗、緩存設計經驗、業務流程設計經驗、接口設計經驗等。當接到一個業務需求的時候,高級工程師可以組合這些設計經驗,最終完成業務需求。

技術專家須要 4~8 年時間,其典型的特徵是「某個領域的專家」,通俗地講,只要是這個領域的問題,技術專家均可以解決。

從高級工程師成長爲技術專家,主要須要「拓展技術寬度」,由於一個「領域」必然會涉及衆多的技術面。要成爲一個 Java 開發專家,須要掌握 Java 多線程、JDBC、Java 虛擬機、面向對象、設計模式、Netty、Elasticsearch、Memcache、Redis、MySQL 等衆多技術。

初級架構師須要 5~10 年時間,其典型特徵就是可以「獨立完成一個系統的架構設計」,能夠是從 0 到 1 設計一個新系統,也能夠是將架構從 1.0 重構到 2.0。初級架構師負責的系統複雜度相對來講不高,例如後臺管理系統、某個業務下的子系統、100 萬 PV 量級的網站等。

初級架構師和技術專家的典型區別是:架構師是基於完善的架構設計方法論的指導來進行架構設計,而技術專家更多的是基於經驗進行架構設計。簡單來講,即便是一樣一個方案,初級架構師可以清晰地闡述架構設計的理由和緣由,而技術專家可能就是由於本身曾經這樣作過,或者看到別人這樣作過而選擇設計方案。

從技術專家成長爲初級架構師,最主要的是造成本身的「架構設計方法論」

中級架構師須要 8 年以上時間,其典型特徵是「可以完成複雜系統的架構設計」,包含高性能、高可用、可擴展、海量存儲等複雜系統,例如設計一個和 Kafka 性能匹敵的消息隊列系統、將業務改造爲異地多活、設計一個總共 100 人蔘與開發的業務系統等。中級架構師與初級架構師的典型區別在於系統複雜度的不一樣。

從初級架構師成長爲中級架構師,最關鍵的是「技術深度和技術理論的積累」

高級架構師須要 10 年以上時間,其典型特徵是「創造新的架構模式」

高級架構師與中級架構師相比,典型區別在於「創造性」,高級架構師可以創造新的架構模式,開創新的技術潮流。

關於如何在專業領域內提高,有條著名的「10000 小時定律」,簡單來講要成爲某個領域頂尖的專業人才,須要持續不斷 10000 小時的練習,我認爲技術人員成長也基本遵循這個定律,最關鍵的仍是技術人員對技術的熱情以及持續不斷地投入,包括學習、實踐、思考、總結等。

接下來爲你們提煉一條通用的成長路徑供你參考

資深大牛分享:一個合格的Java程序員如何成長爲優秀的架構師

圖片描述
圖片描述

相關文章
相關標籤/搜索