總聽到有開發者談論這個問題,我相信是不少人的痛點:
作為一名普通的開發者,看到別人不是進阿里就是當高管。心裡難免有一些豔羨,不甘於現狀。想上進的心思是強烈的,卻不知道到底該選擇什麼樣的技術深入學習。
這個問題主要是開發者的發展方向問題,在我看來解決這個問題一般有以下4種方向:
要記住公司招人是解決問題的,基於現有問題出發,大家一般心裡會有一個大致的解決方案,而這個解決方案通常是由若干種技術組合而成。
比如說,當單機遇到效能瓶頸而單純升級硬體的成本太高時,我通常會選擇分散式技術,而分散式之下又有zookeeper、dubbo等具體技術。
總而言之,針對性地學習比「多而不精」好得多,好鋼使在刀刃上。
如果你是開發者,你一定有在用某種技術了。那麼想深入學習,最行之有效的辦法就是深入現有的技術,並進行拓展學習,形成自己的技術棧。
比如我現在在做視訊編解碼,那像 ffmpeg 、OpenH264、WebRTC等等,都可以學。
一段時間後,你會發現自己也能獨當一面。
大部分人都不能免俗,如果你想賺錢,得到更好的發展,可以根據市場需求選擇自己的學習方向。
比如現在人工智慧的需求較多,前景不錯,那你就可以選擇Python、TensorFlow等。
無論是選擇運用最為廣泛的Java還是在人工智慧方面表現不俗的Python,或者其他語言,都要深思熟慮,一旦決定,絕不輕易回頭。
如果你有感興趣的技術,那跟著興趣走就好了,興趣是最好的老師。
無論你最終選擇哪個方向,何種技術,最重要的還是堅持不懈,只有持續不斷的學習、實踐,才能讓你真正精通某種技術。
我在這裡也給那些想拔高自己的高度卻不知道如何選擇方向的程式設計師們提供一份進階路線圖,主要針對1到5年及以上工作經驗的Java開發人員,從廣度到深度來說還算比較全面的,裡面的技術包涵了Java高並行、分散式、微服務、原始碼分析、高效能等技術,這些也是目前網際網路企業比較常用的技術,那麼來詳細看看。(圖片可以儲存)
學習Java技術體系,設計模式,流行的框架與元件
常見的設計模式,編碼必備Spring5,做應用必不可少的最新框架MyBatis,玩資料庫必不可少的元件
工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊共同作業效率,是必不可少的:
Maven,專案管理Jenkins,持續整合Sonar,程式碼品質管理Git,版本管理
高並行,高可用,海量資料,沒有分散式的架構知識肯定是玩不轉的:
分散式架構原理分散式架構策略分散式中介軟體分散式架構實戰
業務越來越複雜,服務分層,微服務架構是架構升級的必由之路,Java技術體系,和微服務相關的技術有哪些呢?
微服務架構Spring CloudDocker與虛擬化微服務架構
任何脫離細節的ppt架構師都是耍流氓,向上能運籌帷幄,向下能解決一線效能問題,Java技術體系,需要了解:
效能指標體系JVM調優Web調優DB調優
從架構設計,到應用層調優,再深入瞭解底層原理,紮實的Java基本功才能讓自己變為掃地神僧:
記憶體模型並行模式執行緒模型鎖細節
以上是自己收集總結的Java架構技術圖譜,自己因為比較喜歡技術,所以收集了一些Java高並行、分散式、JVM、spring、原始碼分析和kafka等架構技術資料,如果你也對技術感興趣可以「加我VX小助理」就可以免費領取一份架構學習資料哦。
分享給喜歡Java,喜歡程式設計,有夢想成為架構師的程式設計師們,希望能夠幫助到你們。