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