從程式員到架構師的進階過程,就像是用時間精力澆灌培植一棵樹,讓小樹苗逐漸長成參天大樹,先有主幹,後有枝葉,待到枝繁葉茂就能開花結果了,也就是說等到架構師所需技能全都儲備好了,那我們就有信心勝任新崗位工作了。 ...
架構師,我們程式員打怪升級的主要方向,它不像某些技能報個培訓班就可以獲得。勝任架構工作需要具備許多技能,如果想儘快轉型升級至架構師,那你必須在日常工作中有意識地儲備這些技能。網路上有不少架構師技能圖譜,但高質量的很少,大部分都是東拼西湊出來的,脈絡不夠清晰,層次不夠分明,雜亂無章,缺乏邏輯,就像拿著錯亂的武學秘籍練功,練不成真本領還是小事,就怕走火入魔、浪費時光。
俗話說:一口吃不成胖子。從程式員到架構師也無法一蹴而就,它是一個循序漸進、穩步提升的進階過程,每個階段有每個階段需要掌握的技能,多項技能之間還存在先後順序,既有硬技能還有軟技能。如果以硬技能為例,我們可以將其分解成下列幾個維度:
-
從職位晉升的角度看,程式員都要歷經初級開發工程師、中級開發工程師、高級開發工程師這三個階段才能進階至架構師,此後還有架構專家、高級架構專家等職位,再往上就是首席架構師、首席技術官。
-
從代碼規模的角度看,程式員都是從編寫函數、類開始起步的,再逐步負責單個模塊、子系統、系統、平臺等,代碼規模從小到大,關聯關係從內到外,複雜度變得越來越高,往上有系統群、生態圈等。
-
從技術堆棧的角度看,程式員入行只要懂某門編程語言就可以了,進階時需要鑽研不同編程語言、開發框架、應用容器、語言運行時、資料庫、操作系統、網路協議等,這樣才有能力把握各種類型的系統。
-
從設計方法的角度看,程式員從面向對象設計開始起步,再通過常用設計模式來優化多個類之間的關係,進而鑽研領域驅動設計用於分析建模,再往上就是架構設計,包括應用架構、數據架構和系統架構等。
除上述幾個維度之外,我們還要跨過性能調優這道門檻,熟悉 HTTP 請求從客戶端到伺服器、資料庫的全流程,掌握基礎的壓力測試、性能監控等方法,分析定位解決各種性能問題,積累消息、事務、調度、緩存、檢索等各類中間件的使用經驗,熟悉各種主流的應用安全機制,掌握分層、SOA、微服務、Serverless 等常見架構風格,熟悉分散式系統滿足性能、擴展性、可用性、可靠性等要求的解決方案等。
古語云:先為力勝,其後智勝,其後道勝。硬技能,是我們程式員的立身之本,在戰場上廝殺,如果沒有過硬的功夫,我們很容易小命不保。但光有硬技能只能算個武夫,想要成為帶兵打仗的將帥,還要配備軟技能。從程式員到架構師,知識體系越來越廣,系統規模越來越大,內外干係人越來越多,這都要求我們持續提升學習、溝通和管理等通用能力,以及通過寫作、演講、培訓、咨詢等途徑打造非職權影響力。
技能圖譜,也可以稱為技能樹,它描繪了勝任某個崗位工作所要掌握的技能。從程式員到架構師的進階過程,就像是用時間精力澆灌培植一棵樹,讓小樹苗逐漸長成參天大樹,先有主幹,後有枝葉,待到枝繁葉茂就能開花結果了,也就是說等到架構師所需技能全都儲備好了,那我們就有信心勝任新崗位工作了。
近期老兵哥準備結合個人真實的成長經歷,梳理從程式員進階到架構師不同階段所需儲備的核心技能項,講解每項技能的應用場景、價值和關鍵模型,介紹獲取每項技能可以參考的資料書目等,最後描繪一棵脈絡清晰、層次分明的技能樹,加速打怪升級的進程。對該主題感興趣的小伙伴,可以關註老兵哥的博客,我會陸續更新相關內容。今天先分享到這裡,如果你覺得本文內容有價值,麻煩動動手指 點贊 或 轉發 文章給其他需要的小伙伴。另外,老兵哥我後續還會分享職業規劃、應聘面試、技能提升、影響力打造等經驗,歡迎 關註 訂閱哦!