一、前言
我是從大二開始學(xué)習(xí)的Java,當(dāng)時(shí)的目標(biāo)是Java Web開發(fā),當(dāng)時(shí)并不想考研,所以當(dāng)時(shí)的學(xué)習(xí)是以就業(yè)為主,現(xiàn)在我大三了,學(xué)習(xí)Java Web開發(fā)已經(jīng)一年了,因?yàn)榉N種原因,決定要考研,所以不得不暫時(shí)終止了Java Web的學(xué)習(xí),博客也可能會(huì)停更很長(zhǎng)一段時(shí)間,雖然只學(xué)習(xí)了一年Java,但是我感覺我對(duì)于學(xué)習(xí)Java開發(fā)還是有一些心得,對(duì)于Java Web的學(xué)習(xí)路線也很清楚,所以,現(xiàn)在把自己學(xué)習(xí)Java的經(jīng)驗(yàn)記錄下來,希望能幫到一些想學(xué)習(xí)Java開發(fā)的人吧。
因?yàn)槲业膶W(xué)習(xí)是邊看視頻邊看書的學(xué)習(xí)方法,在學(xué)習(xí)的前期是以視頻為主,后期以書籍為主,但是大量的練習(xí)是能夠?qū)W好Java的關(guān)鍵,所以無論是視頻還是書籍,我都推薦你把代碼寫一遍(照著寫也比不寫好的多),如果只看書、看視頻而不練習(xí),那么你永遠(yuǎn)也學(xué)不會(huì)編程。
我個(gè)人學(xué)習(xí)Java的路線是:Java SE —— Java Web —— 框架 —— 虛擬機(jī)、高并發(fā)、其他工具
二、Java SE(Java基礎(chǔ))
1、視頻部分:
我看過很多的Java基礎(chǔ)部分的視頻,總結(jié)下來就是Java基礎(chǔ)部分是非常重要的,是Java學(xué)習(xí)的關(guān)鍵,但是基礎(chǔ)部分在初學(xué)時(shí)并不能真正掌握其精髓,看視頻只是為了入門,如果想要提高,需要在學(xué)習(xí)Java Web時(shí),看Java基礎(chǔ)部分的書籍。
這里我非常推薦劉意的Java基礎(chǔ)視頻,給個(gè)鏈接:劉意Java視頻
如果你感覺一個(gè)視頻不夠,也可以參考一下畢向東的視頻:畢向東視頻
我感覺其實(shí)只看一遍就可以入門了,比較Java基礎(chǔ)部分以后還要學(xué)習(xí),所以初始的時(shí)候看一遍入個(gè)門就可以了。
在看完Java基礎(chǔ)部分的視頻后,一定要記得做一個(gè)項(xiàng)目鞏固一下學(xué)習(xí)的內(nèi)容,我推薦的是坦克大戰(zhàn)項(xiàng)目:馬士兵的坦克大戰(zhàn)項(xiàng)目
注意:Java基礎(chǔ)知識(shí)入門只需要看視頻就夠了,但是如果你想做一名合格的程序員,你需要的遠(yuǎn)遠(yuǎn)不止編程的能力,我感覺最重要的其實(shí)是解決問題的能力,在學(xué)習(xí)Java的過程中,不管是基礎(chǔ)部分,但是Web部分,還是框架部分,你都需要學(xué)習(xí)的是善于使用百度、谷歌的技術(shù),遇到問題不能光想著找別人解決,一定要自己嘗試解決,通過搜索引擎,自己找到解決問題的辦法,這樣才能提高,這也是我從學(xué)習(xí)編程開始到現(xiàn)在為止最重要的心得體會(huì)。
2、書籍部分
我只看過兩本Java基礎(chǔ)部分的書籍,一本是《Java編程思想》,一本是《Java核心技術(shù)》,我不管這兩本書別人是如何評(píng)價(jià)的,我只說一下自己的看法,我不喜歡《Java核心技術(shù)》,這本書就像是API文檔一樣,我個(gè)人感覺完全不如看視頻,另一本《Java編程思想》非常好,但是并不適合在基礎(chǔ)部分看,我個(gè)人推薦你在學(xué)習(xí)Java基礎(chǔ)部分的時(shí)候可以囫圇吞棗的看一遍,不懂的地方也不要糾結(jié),等以后學(xué)習(xí)完Java Web后再看一遍,會(huì)有更多的收獲。
二、Java Web部分
因?yàn)镴ava Web部分我只看過視頻,所以這里就只推薦視頻,Java Web部分的內(nèi)容非常雜而且非常多,所以這一部分可能會(huì)花費(fèi)大量的時(shí)間,而且Java Web部分的很多知識(shí)現(xiàn)在都已經(jīng)過時(shí)了,但是我感覺如果不學(xué)習(xí)Java Web部分的內(nèi)容而直接學(xué)習(xí)框架的話基本也學(xué)不下去,所以這一部分還是需要好好的學(xué)習(xí)。這里推薦的視頻是崔西凡的Java Web視頻,下面是鏈接:
其中中和下兩部分是Java Web部分的內(nèi)容,上是一些前端的基礎(chǔ)和XML方面的內(nèi)容,這些都需要學(xué)習(xí)。
Java Web部分雖然內(nèi)容很多,但是學(xué)完這一部分你會(huì)很有成就感,因?yàn)槟憬K于可以自己做一些東西了,比如你自己可以自己寫一個(gè)博客,一個(gè)圖書管理系統(tǒng),運(yùn)用你學(xué)習(xí)的知識(shí),你可以做很多事情了,這里也推薦學(xué)習(xí)完Java Web的知識(shí)后做一個(gè)項(xiàng)目鞏固一下學(xué)習(xí)的知識(shí),這里推薦李興華的微商城項(xiàng)目:李興華 微商城
三、框架部分
如果說對(duì)你將來工作幫助最大的部分,那么一定就是框架部分了,因?yàn)榭蚣芫褪菫榱撕?jiǎn)化開發(fā)過程的工具,你可能已經(jīng)不滿足與Java Web 部分的 JSP/Servlet 技術(shù)很久了,為啥開發(fā)一個(gè)Web項(xiàng)目如此繁瑣,那么你就需要好好的學(xué)習(xí)一下框架,有了框架開發(fā)Web項(xiàng)目的速度會(huì)像開了火箭一樣,而且將來工作中全部都是使用框架開發(fā),所以這一部分非常重要。
Java Web開發(fā)的框架非常多,但是其基本的原理卻總是相差不大,所以你不需要每種框架都學(xué)習(xí)一下,你只需要著重的學(xué)習(xí)一部分框架,并且深入的學(xué)習(xí),對(duì)框架的原理有深刻的認(rèn)識(shí),那么框架部分你就算是學(xué)習(xí)的不錯(cuò)了,以后如果遇到?jīng)]有學(xué)過的框架也可以很快的上手使用。
因?yàn)槲也]有參加過工作,我并不是很清楚現(xiàn)在的框架使用情況,但是根據(jù)我加的一些QQ群中一些工作人員的說明,現(xiàn)在的主流框架應(yīng)該還是:Spring + Mybatis + Spring MVC。
這里最終要的框架就是Spring,目前正在興起的Spring Boot框架就是為了簡(jiǎn)化Spring框架發(fā)明的,如果你想將來的工作順利,那么我感覺你需要把Spring框架學(xué)習(xí)到一定的深度。
對(duì)于框架的學(xué)習(xí),我認(rèn)為視頻只是輔助,起到入門的作用,最主要的還是看書去學(xué)習(xí)框架的原理。
1、視頻推薦
Spring:尚硅谷 Spring
Spring注解版:尚硅谷 Spring注解版
Mybatis:尚硅谷 Mybatis
Spring MVC:尚硅谷 Spring MVC
2、書籍推薦
- 《Spring揭秘》
這里我只推薦了一本《Spring揭秘》,因?yàn)槲抑豢催^這一本書,但是這本書讓我對(duì)Spring有了全新的認(rèn)識(shí),對(duì)于IOC和AOP有了深入的了解,打開了我框架學(xué)習(xí)的新世界。
框架部分的學(xué)習(xí)至關(guān)重要,這里因?yàn)槲易约簺]有更多的經(jīng)歷,所以只是提供了一些很淺薄的經(jīng)驗(yàn),但是還是那句話,真正能夠幫助你的只要你自己解決問題的能力,網(wǎng)上有大量的框架學(xué)習(xí)的經(jīng)驗(yàn)可以借鑒,所以一切還是靠自己。
上面三個(gè)框架學(xué)習(xí)完以后就可以試著用框架開發(fā)Web項(xiàng)目了,這里推薦慕課網(wǎng)上的:慕課商城項(xiàng)目,這個(gè)項(xiàng)目還有一個(gè)二代的版本,以后可以學(xué)習(xí),在學(xué)習(xí)這個(gè)項(xiàng)目的過程中,還要學(xué)習(xí)大量Java Web開發(fā)中需要使用的工具,而這些都需要你自己去學(xué)習(xí)。
四、其他工具
這里其實(shí)對(duì)于一個(gè)初級(jí)的開發(fā)人員,虛擬機(jī)和高并發(fā)并不是必須要學(xué)習(xí)的,但是Web開發(fā)的工具卻非常重要,工欲善其事必先利其器的道理大家都懂,這里我就推薦幾個(gè)主流的工具
- IDEA 集成開發(fā)環(huán)境,我想大家在學(xué)習(xí)上面的課程時(shí)應(yīng)該都用的是Eclipse,但是這里我及其推薦IDEA,好處我就不多說了,你用了自然會(huì)知道,視頻教程:IDEA教程
- Git:版本管理工具,視頻教程:Git教程
- Maven:這個(gè)非常重要,一定要學(xué)習(xí),視頻教程:Maven教程
五、補(bǔ)充
上面的學(xué)習(xí)路線也不是要求你一步一步照著做,每個(gè)人都需要獨(dú)立思考的能力,比如工具的學(xué)習(xí)在任何時(shí)候都可以開始,我想說的是,如果你想成為一個(gè)程序員最重要的還是要會(huì)自己思考,不斷學(xué)習(xí),上面說的技術(shù)可能會(huì)過時(shí),但是你的學(xué)習(xí)能力是永遠(yuǎn)不會(huì)過時(shí)的,在Java開發(fā)的道路上需要學(xué)習(xí)的遠(yuǎn)不止上面的內(nèi)容,可以說上面的內(nèi)容你全部都學(xué)會(huì)了也不過是Web開發(fā)的入門罷了,想要有更好的發(fā)展,你就需要學(xué)習(xí)更多的知識(shí),對(duì)計(jì)算機(jī)底層的原理有一定的了解,對(duì)算法也需要學(xué)習(xí),很遺憾,我暫時(shí)要退出Java開發(fā)的世界了,希望兩年之后的今天我已經(jīng)考到了我想要去的學(xué)校,開始我新的篇章,到那時(shí),我可能仍然會(huì)繼續(xù)學(xué)習(xí)Java,也可能會(huì)學(xué)習(xí)其他的方向,但是只要我一直懷有不滿足的精神,一直有學(xué)習(xí)的動(dòng)力,那么總會(huì)成為大牛。