lemoncai
Java程序員如何(怎樣)才能成為一名合格的架構師,需要經過哪些路徑、具備哪些技術知識體系?這是程序員們經常問到的問題,本篇我將通過程序員進階之路、程序員薪酬待遇、架構師必備技術進行詳解,文末有程序員進階架構師詳細學習內容。
一、程序員進階之路
架構師也是從初級程序員起步的,程序員從初級、中級、高級再到架構師,職級不同,技術能力要求不同,這是一個不斷經驗積累的過程,後面會講到。
二、程序員薪酬待遇
程序員在不同的職業發展階段,薪酬待遇差別大,初級程序員與初級架構師的收入差距能達到幾十萬,架構師崗位可謂是名利雙收(技術牛人+團隊核心+豐厚收入),這也是程序員們期望往架構師方向發展的主要原因,關於薪酬待遇下圖以阿里為例,供大家對比參考。
三、架構師必備技術能力
架構師是團隊中的技術權威,需同時具備技術的深度和廣度,哪些技術是架構師必須具備的呢?我總結了十七點,先簡單羅列幾點。
1、大數據
Hadoop
Hbase
Spark
Storm/JStorm
2、算法與數據結構
數組
鏈表
棧
隊列
樹
二叉樹
B Tree/B+ Tree
紅黑樹
哈希
3、排序
內部排序
插入排序
直接插入排序
希爾排序
選擇排序
簡單選擇排序
堆排序
交換排序
冒泡排序
快速排序
歸併排序
基數排序
桶排序
外部排序
4、分佈式系統
從集中到分佈式
分佈式Session:Session複製、Session綁定、Session服務器(靠譜)
分佈式緩存:Redis、一致性Hash算法
數據庫:讀寫分離、主從熱備、分庫分表、一致性
分佈式事務、CAP、BASE、2PC/3PC
分佈式鎖
Redisson
負載均衡、硬件、F5、軟件、LVS、Nginx
消息隊列:RabbitMQ、ZeroMQ、ActiveMQ、Kafka(推薦)
服務化:服務註冊與發現、Zookeeper
架構
微服務
Spring Boot
Dubbo
RPC
SOA
虛擬化
Docker
由於字數限制,未能完整列舉,若需要程序員進階架構師的完整學習資料,將關鍵詞【架構】私信給優知學院,即可秒收,已有超過3萬+程序員成功領取啦~。
優知學院
架構師是程序員的發展方向之一,所以很多程序員對架構師的工作崗位和工作內容也比較關注。目前IT行業的很多架構師都是從程序員成長起來的,可以說程序員是架構師的一個重要基礎。
從程序員成長到架構師大概需要經歷四個階段,分別是初級程序員、主力程序員、核心研發級程序員、架構師。每個解決都有不同的任務,也有不同的知識儲備,如果能一步一步成長到架構師,對於程序員來說不僅要有較強的工作能力,還需要有較強的學習能力。
在初級程序員階段,主要的工作是功能模塊的實現,能夠輔助主力程序員完成具體的功能實現,這個階段會鍛鍊程序員的基礎編碼能力。在初級程序員階段,主要需要學習軟件開發的流程、技術實現以及軟件部署和測試方面的內容。往往初級程序員階段的成長速度是比較快的,工作能力強的初級程序員在1到2年就會成長為團隊的主力程序員。
主力程序員要獨立完成功能模塊的設計和實現,對軟件整體結構有清晰的認知,知道模塊之間的邏輯關係,能完成初級研發任務,對技術邊界有一定的認知。主力程序員的發展方向有兩個,一個是走項目經理,再到諮詢專家的路線,另一個就是走架構師,再到技術專家的路線。如果走項目經理的路線,則需要深入瞭解行業知識。而對於架構師方向來說,更應該瞭解各種技術方案的應用場景,以及相應的性能指標,尤其是技術關鍵點的解決方案,工作能力強的主力程序員經過2到3年的時間會成長為團隊的核心研發人員。
核心開發人員的主要工作任務往往是產品的容器部分開發,這個過程能夠對軟件產品有深入的學習,核心研發人員往往要跟著產品線走,大部分核心研發人員未來都會成長為架構師或技術專家。
我從事軟件開發工作多年,目前也在負責移動互聯開發團隊和大數據團隊,我會陸續在頭條寫一些關於軟件開發方面的文章,感興趣的朋友可以關注我的頭條號,相信一定會有所收穫。
如果有大數據方面的問題,也可以諮詢我。
謝謝!
IT人劉俊明
說多了其實很簡單,我就是一個屌絲架構師沒有多少深的知識,甚至無法編寫出多線程高性能程序,什麼設計模式呀,垃圾回收呀都不精通……這能算是架構師嗎?我堅信一條做企業最有價值的人,做企業不可替代的人,做自己最感興趣的的事。現在已經從架構師轉成研發經理,不過擔任架構方面工作,希望能給大家分享出不一樣的案例demo。謝謝。