前言
許久不見轻要,最近公眾號多了很多在校的師弟師妹們。有很多同學(xué)都加了我微信問了一些諸如 [如何自學(xué) Java ]的問題垦缅,我都一一解答了冲泥,這是大家對我的信任,我非常感謝壁涎。你們知道我現(xiàn)在的職業(yè)是 java web 開發(fā)凡恍,可你們你們不知道的是我在這個(gè)份職業(yè)之前做的是 Android 開發(fā),一年前通過自學(xué)才轉(zhuǎn)過來 java 崗位怔球。下面就跟你們聊聊我的自學(xué)經(jīng)驗(yàn)以及一些建議嚼酝,希望能幫助到大家。
了解 Java 的前世今生
在學(xué)習(xí)之前竟坛,我相信很多人都是網(wǎng)上直接找教程闽巩,開始學(xué)。但我跟你們不一樣担汤,我會(huì)先去網(wǎng)上找一些 Java 相關(guān)的發(fā)展史來了解一下涎跨,很多人可能疑惑這有什么用呢?那些發(fā)展史又不會(huì)幫你提高你的技術(shù)崭歧。我告訴你們這里的用處可大了隅很,舉個(gè)栗子,不去了解你又怎么會(huì)知道 JDK 11 已經(jīng)出了驾荣,JDK 8 是目前最多人使用的版本外构,而你此時(shí)找到的是 JDK 6 的教程,學(xué)習(xí)一段時(shí)間后播掷,你發(fā)現(xiàn)你的代碼跟別人不一樣审编,殊不知人家用的 JDK 8。那么這中間你就浪費(fèi)了許多時(shí)間了歧匈,所以了解一門語言的前世今生是很有必要的垒酬。
建立學(xué)習(xí)大綱
很多人不知道怎么學(xué),怎么規(guī)劃自己的學(xué)習(xí)路線。對于這種情況我的應(yīng)對方法是建立學(xué)習(xí)大綱勘究,比如 Java 基礎(chǔ)矮湘,那你就得想 Java 基礎(chǔ)有哪些知識(shí)點(diǎn),然后把它羅列下來做成一個(gè)學(xué)習(xí)大綱或者思維導(dǎo)圖口糕。那你在學(xué)習(xí)之前缅阳,你就跟著學(xué)習(xí)大綱按部就班地學(xué)就好了,哪塊沒攻克的就翻相應(yīng)的資料重點(diǎn)學(xué)習(xí)景描。下面是我整理的簡單版的思維導(dǎo)圖十办,給你們做參考,你們的大綱不能像我做的這么簡化超棺,你們要逐項(xiàng)展開向族,比如說 Java 基礎(chǔ),應(yīng)該具體到某一個(gè)知識(shí)點(diǎn)才行棠绘,因?yàn)樵骄唧w件相,你學(xué)得越清晰。
簡單說一下氧苍,上面我整理的學(xué)習(xí)大綱分為四個(gè)階段夜矗,對于應(yīng)屆生來說,把上面四個(gè)階段掌握了候引,找到實(shí)習(xí)工作完全沒問題侯养。但如果想更進(jìn)一步,進(jìn) BAT 等公司澄干,可能還需要學(xué)習(xí)下數(shù)據(jù)結(jié)構(gòu)與算法逛揩。
PS:重中之重的是 Java 基礎(chǔ) 和 算法,大廠非常青睞算法好的應(yīng)屆生
PPS:推薦一款好用的思維導(dǎo)圖軟件:https://mubu.com/inv/929852
不要浪費(fèi)時(shí)間在找資料上
自學(xué) Java 麸俘,我相信很多人一開始都是煞費(fèi)苦心找資料的辩稽,越多越好,越詳細(xì)越好从媚,因?yàn)檫@樣很有滿足感逞泄,心里想著只要我每天堅(jiān)持看幾個(gè)小時(shí)很快看完的。殊不知拜效,不斷保存教程的結(jié)果就是某度云盤里面躺了一大堆教程喷众,就算是每天不睡覺地看還不一定能看完。自制力好的人紧憾,估計(jì)在保存后會(huì)翻出來看兩眼到千,過幾天又忘得一干二凈了。自制力不好的人更衰赴穗,直接讓教程在云盤里面積灰憔四。對于初學(xué)者來說膀息,只要找到囊括了 Java 基礎(chǔ)的資料就可以開始學(xué)了。
切忌眼高手低
有些問題需然看起來很簡單了赵,很弱智潜支,很傻逼。首先柿汛,你動(dòng)手比光看不做敲記憶更牢固冗酿;其次,你敲出來可能會(huì)有各種各樣奇奇怪怪的問題苛茂,而你的水平就是在解決這些問題中提高的已烤。所謂大神都是踩各種各樣的坑才過來的。
善于利用搜索引擎
遇到問題妓羊,第一時(shí)間想到的是網(wǎng)上搜索試試看能不能解決,不能解決再去問人稍计。移動(dòng)互聯(lián)網(wǎng)發(fā)展到今天躁绸,可以毫不夸張的說,你遇到的 99% 的問題都能在網(wǎng)上找到解決辦法臣嚣,剩下的 1% 是因?yàn)槟氵€沒學(xué)會(huì)用關(guān)鍵字來搜索净刮。
多思考
學(xué)會(huì)思考,養(yǎng)成多思考的習(xí)慣硅则。在寫代碼的過程中多想想人家為什么這樣寫淹父。舉個(gè)栗子,為什么 java 類只能單繼承怎虫,而接口卻可以多繼承暑认,稍加思考你就會(huì)知道答案:如果存在多繼承,那個(gè)兩個(gè)父類有兩個(gè)一模一樣的方法怎么辦大审,子類就不知道繼承哪一個(gè)方法蘸际。而接口能多繼承的原因是:接口中的方法都是方法名,沒有函數(shù)體徒扶,具體的實(shí)現(xiàn)需要靠實(shí)現(xiàn)類去實(shí)現(xiàn)粮彤,一旦實(shí)現(xiàn)類實(shí)現(xiàn)了方法,那么就不存在多個(gè)接口有相同的方法名的出現(xiàn)的問題了姜骡,因?yàn)楹瘮?shù)體都是一樣的导坟。
多交流
我做開發(fā)十多年的時(shí)間,如果大家對于學(xué)習(xí)java的學(xué)習(xí)方法圈澈,學(xué)習(xí)路線以及你不知道自己應(yīng)該是自學(xué)還是培訓(xùn)的疑問惫周,都可以隨時(shí)來問我,大家可以加我的java交流學(xué)習(xí)qun:四九四士败,八零一闯两,九三一褥伴,qun內(nèi)有學(xué)習(xí)教程以及開發(fā)工具。
熟能生巧
很多人困惑漾狼,為什么我看視頻的時(shí)候很懂重慢,過兩天就啥都忘了?其實(shí)這是正常的逊躁,因?yàn)槟氵€沒有對知識(shí)進(jìn)行實(shí)踐歸納似踱。在入門 Java 之后,就需要大量的實(shí)戰(zhàn)來鞏固你的基礎(chǔ)稽煤。所以說忘了不要緊核芽,先按大綱按部就班學(xué),之后再通過實(shí)戰(zhàn)來鞏固基礎(chǔ)酵熙。
項(xiàng)目驅(qū)動(dòng)轧简,不要為了學(xué)而學(xué)
相當(dāng)一部分初學(xué)者都堅(jiān)持不下去,因?yàn)樘菰锪素叶S龅竭@種情況哮独,首先你要明確你學(xué)習(xí) Java 的目的是什么?我相信很多人最終目的都是--錢察藐。這太正常了皮璧,沒錢誰愿意做這么費(fèi)腦力的事啊。但是你是需要通過項(xiàng)目來賺錢的分飞。所以我們學(xué)習(xí)是要通過項(xiàng)目來驅(qū)動(dòng)的悴务。你要想你學(xué)完之后希望鼓搗一個(gè)什么東西出來。比如我之前學(xué) Android 譬猫,我就是打算弄一個(gè)天氣預(yù)報(bào)的APP出來讯檐,那有了目標(biāo)之后,你就開始思考删窒,網(wǎng)上查裂垦,這個(gè)東西,需要用到什么技術(shù)肌索。比如蕉拢,我當(dāng)時(shí)就是要先會(huì) Javase 才能學(xué)安卓,學(xué)到了安卓之后又有其他的技術(shù)诚亚,比如 Android 網(wǎng)絡(luò)框架晕换,UI框架等等。以項(xiàng)目來驅(qū)動(dòng)自己學(xué)習(xí)站宗,整個(gè)過程將會(huì)有趣得多闸准。
后語
以上就是我對自學(xué) Java 的幾點(diǎn)建議,如果本文對你哪怕有一丁點(diǎn)幫助梢灭,請幫忙點(diǎn)好看夷家。你的好看是我堅(jiān)持寫作的動(dòng)力蒸其。