十年Java架構學習經驗總結:第六點尤為重要
你有沒有靜下心來思考過:同樣是做了x年Java開發,為什么你的技術比別人差很多?為什么別人每月28K你卻只有10K?
其實技術水平的高低和個人智商關系不大(畢竟能做Java編程開發大家都不會差),主要和勤奮程度、提升方法有關。
勤奮程度不必多說,全靠自我監督和自制力。在這里我們詳細談談提升方法,畢竟好的提升方法會讓你事半功倍。到底有哪些有效的好方法,能幫助我們進階成Java高級工程師呢?
下面這3種方法,你應該加以重視:
吃透基礎技術
養成良好的閱讀源碼的習慣
有長期的技術學習規劃
下面,我們來一起逐條看看,特別是第 3 個方法。
吃透基礎技術
基礎技術是各種上層技術共同的基礎。吃透基礎技術是為了更好地理解程序的運行原理,并基于這些基礎技術進化出更優化的產品。很多分布式系統架構,以及高可用、高性能、高并發的解決方案基本都可以在基礎技術上找到它們的身影。所以,對基礎技術的學習才能夠更好地掌握更高維度的技術。
很多人會覺得底層技術博大精深,從語言、編程范式、算法和數據結構、計算機原理、網絡、數據庫、分布式技術等等,怎么可能有時間去掌握這么多東西呢。這確實需要持續學習的毅力,現在很多技術大牛仍在夯實擴展自己的底層技術,自己就更沒有理由忽視這一塊了不是嗎?
養成良好的閱讀源碼的習慣
源碼閱讀,尤其是針對你正在使用的第三方庫。千萬不要面試的時候,什么源碼都未學習過,理由就是業務太忙,更有甚者說“我覺得沒用”。
閱讀源碼要能回答兩個問題:要解決什么問題+是如何實現的?大到整個項目,小到一個模塊、函數,看的時候都要抱著這兩個問題去看。看完了這兩個問題能答上來,才是有效。
閱讀源碼時建議你這么做:
背景調查:看官網介紹、維基百科,了解主要功能,被應用于哪些項目以及基本的使用,掌握這些基本信息
使用框架:至少follow“Get Started”做個小demo(真的有人連API都沒調用過,上來就看代碼)
盡可能編譯調試。能調試的代碼,幾乎沒有看不懂的
了解一些設計模式。這樣看到名字里有proxy,builder,factory之類的,就心領神會了
橫向分層,縱向分塊。代碼都是分模塊的,有的是core,有的是util,parser之類的,要知道看的是哪一層,哪一塊。有的小項目分層不明顯也不必強求
注意:要看的不只是語法上的技巧,更重要的是設計上的思路和原理。知易行難,把養成良好的閱讀源碼習慣提上日程吧!
有長期的技術學習規劃
Java進階之路離不開一個長期學習規劃的指引。你可以制定一個系統的學習路線,幫助你全面提升技術水平。當然,對于每個Java程序員來說,幾乎都有一個成為架構師的夢想。
以前我一直被公司和技術牽著走,并不是自己在選擇技術,而是不自覺地被推到了這個位置上。想想有多少人對于自己將來要從事的職業和技術類型進行過深入思考和比較呢?當我跳出編碼后,我開始思考和程序及程序員職業生涯相關的問題,***發現,影響我們走入今天的困局的竟然是一些我們常常掛在嘴邊的話。
今天,就為大家整理一份目前互聯網公司最主流的技術選型:
一:常見模式與工具
學習Java技術體系,設計模式,流行的框架與組件是必不可少的:
常見的設計模式:編碼必備
Spring5:做應用必不可少的***框架
MyBatis:玩數據庫必不可少的組件
二:工程化與工具
工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊協作效率,是必不可少的:
Maven:項目管理
Jenkins:持續集成
Sonar:代碼質量管理
Git:版本管理
三:分布式架構
高并發,高可用,海量數據,沒有分布式的架構知識肯定是玩不轉的:
分布式架構原理
分布式架構策略
分布式中間件
分布式架構實戰
四:微服務架構
業務越來越復雜,服務分層,微服務架構是架構升級的必由之路,Java技術體系,和微服務相關的技術有哪些呢?
微服務框架
Spring Cloud
Docker與虛擬化
微服務架構
五:性能優化
任何脫離細節的ppt架構師都是耍流氓,向上能運籌帷幄,向下能解決一線性能問題,Java技術體系,需要了解:
性能指標體系
JVM調優
Web調優
DB調優
六:底層知識
從架構設計,到應用層調優,再深入了解底層原理,扎實的Java基本功才能讓自己變為掃地神僧:
內存模型
并發模式
線程模型
鎖細節
如何一起學習,有沒有免費資料?
對Java技術,架構技術感興趣的朋友,歡迎加QQ群:552391552,一起學習,相互討論。
群內已經有小伙伴將知識體系整理好(源碼,筆記,學習視頻),歡迎加群免費取。
掃碼加QQ架構群:552391552,免費領取資料
掃碼加QQ架構群:552391552,免費領取資料
分享給喜歡Java,喜歡編程,有夢想成為架構師的程序員們,希望能夠幫助到你們。