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