掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
大家好,我是bigsai 好久不見(jiàn),甚是想念,文章同時(shí)收錄在回車(chē)課堂(文底閱讀原文可達(dá))。

創(chuàng)新互聯(lián)主營(yíng)銅仁網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā),銅仁h5微信小程序定制開(kāi)發(fā)搭建,銅仁網(wǎng)站營(yíng)銷(xiāo)推廣歡迎銅仁等地區(qū)企業(yè)咨詢(xún)
無(wú)論你是大學(xué)生還是在職人員,想學(xué)Java時(shí),都會(huì)面臨兩個(gè)選擇,自學(xué)或者報(bào)班。報(bào)班通常太費(fèi)錢(qián),時(shí)間又不自由;自學(xué)又不知道如何下手,擔(dān)心自己堅(jiān)持不下來(lái)。怎么辦呢?
本文將解答你自學(xué)Java的N種問(wèn)題:
你適不適合自學(xué)Java呢?
如何自學(xué)Java呢?
有沒(méi)有靠譜的Java自學(xué)資料推薦?
怎樣讓自己看到進(jìn)步,堅(jiān)持下來(lái)?
……
以上問(wèn)題,課程中我都會(huì)嘔心給你梳理答案,趕快開(kāi)始學(xué)習(xí)吧。
在自學(xué)前你可能會(huì)因?yàn)樽陨淼臈l件有很多困惑和疑慮,不清楚自己是否適合自學(xué)Java。下面我們來(lái)做個(gè)測(cè)驗(yàn),來(lái)檢測(cè)一下你是否適合自學(xué)Java。
最低分0分,最高分5分,你給自己打幾分?
對(duì)學(xué)習(xí)Java抱有堅(jiān)定的信念是學(xué)習(xí)Java的必備條件,如果你給自己的打分小于等于2.5分,建議你直接放棄學(xué)習(xí)Java吧。如果你給自己的打分大于2.5分(越高越好),恭喜你,第一關(guān)的考驗(yàn)過(guò)了!
如果你學(xué)習(xí)Java只是興趣提升,那么你無(wú)論是自學(xué)或者報(bào)班怎么學(xué)都是適合的,因?yàn)槟悴徊顣r(shí)間。那么后面的考驗(yàn)題你也可以直接跳過(guò),看后面的干貨。
但如果你是為了就業(yè)而學(xué)習(xí)Java,那對(duì)學(xué)習(xí)Java效果和時(shí)間都有一定要求,還要滿(mǎn)足社會(huì)崗位要求。建議你好好考慮報(bào)班還是自學(xué)。
如果你大于30歲的話,我已經(jīng)不推薦你學(xué)習(xí)Java了,一方面30歲后學(xué)習(xí)能力和精力堪憂(yōu),另一方面30歲的Java初級(jí)小白幾乎找不到工作。
但如果你小于30歲的話,那你的客觀條件還是可以學(xué)習(xí)Java的。剩下的就要考驗(yàn)?zāi)愕淖钥亓鸵懔α恕?/p>
如果你的打分小于3分,我建議你報(bào)班學(xué)習(xí)Java,自學(xué)不適合你。(如果你不能確定自己的自控力水平,你也可以去網(wǎng)上找一些自控力測(cè)試的問(wèn)卷。)
但如果你自控力較強(qiáng)、個(gè)人時(shí)間較多、熱愛(ài)獨(dú)立思考鉆研的話,那么恭喜你,我認(rèn)為你是非常適合自學(xué)的。如果你也選擇自學(xué),那么本課程的內(nèi)容你可以好好學(xué)習(xí)借鑒,相信你一定可以找到一條適合自己的道路!
最后你也許會(huì)問(wèn),性別、英語(yǔ)水平、數(shù)學(xué)水平、是否為科班等是否影響自學(xué)Java,如果你上面的測(cè)試都通過(guò)了,這些其實(shí)都是一些非關(guān)鍵性的影響因素。
我們用一張圖總結(jié)一下以上的所有問(wèn)題:
選擇圖
雖然性別、英語(yǔ)水平、數(shù)學(xué)水平、是否為計(jì)算機(jī)專(zhuān)業(yè)都等不是關(guān)鍵因素,但當(dāng)你是女孩子,英語(yǔ)、數(shù)學(xué)水平較差,非計(jì)算機(jī)專(zhuān)業(yè)相對(duì)于男孩子,英語(yǔ)、數(shù)學(xué)水平較好的計(jì)算機(jī)專(zhuān)業(yè)還是會(huì)有一些影響,為了達(dá)到同樣的結(jié)果可能需要付出更多的努力。
我們這里拿計(jì)算機(jī)專(zhuān)業(yè)和非計(jì)算機(jī)專(zhuān)業(yè)比較一下。
雖然說(shuō)計(jì)算機(jī)主要靠自學(xué),但是計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生相比非計(jì)算機(jī)還是有很大優(yōu)勢(shì)的,大部分計(jì)算機(jī)專(zhuān)業(yè)是有開(kāi)設(shè)Java這門(mén)課程的,可以讓這些學(xué)生在學(xué)習(xí)Java的道路上快速度過(guò)"冷啟動(dòng)";還有一些重要的基礎(chǔ)課,例如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、計(jì)算機(jī)網(wǎng)絡(luò)等課程能夠幫助學(xué)生更深入地了解計(jì)算機(jī),學(xué)習(xí)起Java語(yǔ)言也能有更深層次地理解。
而非計(jì)算機(jī)專(zhuān)業(yè)在自學(xué)Java時(shí),會(huì)因?yàn)橛性瓕?zhuān)業(yè)課程、作業(yè)的限制,學(xué)習(xí)時(shí)間相比計(jì)算機(jī)專(zhuān)業(yè)學(xué)生少了不少,但這些問(wèn)題是可以被克服解決的,可以多花一些課余時(shí)間、周末時(shí)間,學(xué)習(xí)練習(xí)Java,也可蹭一蹭計(jì)算機(jī)專(zhuān)業(yè)開(kāi)設(shè)的Java課程,多與計(jì)算機(jī)相關(guān)專(zhuān)業(yè)同學(xué)交流碰撞。自學(xué)Java的心態(tài)也很重要,不要因?yàn)楸槐緦?zhuān)業(yè)課程拖累而埋怨,要樂(lè)觀地去面對(duì)學(xué)習(xí)上的困難,有長(zhǎng)遠(yuǎn)的眼光,陽(yáng)光總在風(fēng)雨后!
總的來(lái)說(shuō),計(jì)算機(jī)專(zhuān)業(yè)自學(xué)Java資源、時(shí)間更多,更需注重自學(xué)的方法和內(nèi)容;而非計(jì)算機(jī)條件較難,除注重方法和內(nèi)容之外,重要的是要堅(jiān)持在百忙之中擠出很多時(shí)間留給Java,這對(duì)毅力是非常大的考驗(yàn)。
當(dāng)你適合自學(xué)的時(shí)候,那么你就要尋求好的方法提高自學(xué)Java的效率,如何做呢?看看下面內(nèi)容吧~
這里我總結(jié)了三大點(diǎn),分別從認(rèn)識(shí)、方法、反饋角度來(lái)寫(xiě),其中一定有適合你的方案!
自學(xué)Java前,要對(duì)Java和Java體系知識(shí)有一定認(rèn)識(shí),心中有個(gè)大概的輪廓去學(xué)習(xí),方能更踏實(shí)。通過(guò)幾個(gè)問(wèn)題了解Java。
Java是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用程序的、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。簡(jiǎn)單說(shuō),Java就是一種語(yǔ)言,不過(guò)是一種跑在JVM上的語(yǔ)言,Java編譯后是字節(jié)碼,而JVM會(huì)把這些字節(jié)碼解釋成機(jī)器碼,然后做出相應(yīng)的動(dòng)作。
Java當(dāng)前用的較多的就是做后端開(kāi)發(fā)、大數(shù)據(jù)開(kāi)發(fā)、安卓開(kāi)發(fā),這是當(dāng)前Java技術(shù)棧較為熱門(mén)的三種崗位,其中以Java后端的市場(chǎng)需求最大。Java也可以做桌面應(yīng)用開(kāi)發(fā)、游戲開(kāi)發(fā),但需求相對(duì)較少。
國(guó)內(nèi)大廠,像阿里巴巴、美團(tuán)、京東、拼多多等,使用的主要語(yǔ)言都是Java,大部分中小企業(yè)為了成熟穩(wěn)定也選擇Java作為后端開(kāi)發(fā)語(yǔ)言。此外,很多著名的中間件是由Java編寫(xiě)的,例如:Elasticsearch、RocketMQ、Hadoop等。
當(dāng)然,上面只是羅列了大部分知識(shí)點(diǎn),還有很多知識(shí)比如日志分析監(jiān)控(ELK)、持續(xù)集成、分庫(kù)分表等也都是熱門(mén)技術(shù),Java后端技術(shù)體系龐大。這些內(nèi)容可以根據(jù)你的工作或者興趣,選擇性深入學(xué)習(xí)。
自學(xué)Java一般有書(shū)籍、視頻、博客等學(xué)習(xí)資料,這里主要講解三者在自學(xué)Java中的異同點(diǎn)。
看書(shū)是最為傳統(tǒng)的學(xué)習(xí)方式,我們從小到大大部分的自學(xué)知識(shí)是通過(guò)看書(shū)來(lái)獲得的,所以可能很多人都喜歡和適應(yīng)這種方式。書(shū)籍具有嚴(yán)謹(jǐn)、體系完整等特點(diǎn),并且紙質(zhì)的內(nèi)容來(lái)回翻閱在回顧的時(shí)候也更便捷。
但看書(shū)也有一些缺點(diǎn):可能分不清主次,在學(xué)習(xí)Java的時(shí)候其實(shí)是有側(cè)重點(diǎn)的,而書(shū)上可能在這方面并不會(huì)有太多的介紹和標(biāo)注,并且一些冷門(mén)淘汰知識(shí)可以不用學(xué)習(xí)(例如Java Swing部分);有些內(nèi)容即使作者寫(xiě)得很棒了,但可能會(huì)因?yàn)榘咐?、解釋較少不能完全理解(尤其是小白)。
比起書(shū)籍,更多人愿意看視頻自學(xué)Java,因?yàn)榭磿?shū)時(shí)大部分人會(huì)覺(jué)得比較枯燥。但是視頻就不一樣了,視頻中老師們通常會(huì)邊敲邊講解,更易于知識(shí)點(diǎn)的理解,并且人是感性動(dòng)物,看視頻就如同與老師交流,好的老師會(huì)讓學(xué)習(xí)效率直接翻倍。
看視頻當(dāng)然也會(huì)有些缺點(diǎn),視頻時(shí)間較長(zhǎng)較多,很難快速回顧學(xué)過(guò)的知識(shí)或者快速瀏覽章節(jié)內(nèi)容,所以有可能會(huì)浪費(fèi)一點(diǎn)學(xué)習(xí)的時(shí)間。
博客是程序員必不可少的學(xué)習(xí)資源,近些年高質(zhì)量博客、文章也越來(lái)越多。這種博客文章閱讀比較方便,內(nèi)容選擇也比較豐富,好的博客圖文并茂生動(dòng)形象非常有助于理解記憶,并且博客在代碼拷貝學(xué)習(xí)方面更占優(yōu)勢(shì)。
看博客也有一些缺點(diǎn):比如博客比較碎片化,體系不太完整。還有博客質(zhì)量參差不齊差距較大,甚至有的博客還出現(xiàn)較大的錯(cuò)誤,所以挑選好的博客是一大挑戰(zhàn)。
總的來(lái)說(shuō),系統(tǒng)自學(xué)Java主力軍還是 看視頻和看書(shū) ,可以以看視頻為主,看書(shū)為輔,遇到疑難點(diǎn)不理解的可以通過(guò)搜索相關(guān)博客多看文章進(jìn)行學(xué)習(xí)吸收。
為了方便你的學(xué)習(xí),我貼心為你搜集了一波優(yōu)秀的視頻、書(shū)籍、播客,以及刷題網(wǎng)站和社區(qū)的列表清單,你可以慢慢“享用”。
菜鳥(niǎo)教程:https://www.runoob.com/java/java-tutorial.html 教程免費(fèi),適合基礎(chǔ)入門(mén)
W3Cschool:https://www.w3cschool.cn/ 教程免費(fèi),適合基礎(chǔ)入門(mén)
易百教程:https://www.yiibai.com/ 教程免費(fèi),適合基礎(chǔ)入門(mén)
How2j: https://how2j.cn/ Java基礎(chǔ)到高級(jí),還有各種框架、中間件教程
回車(chē)課堂:https://ke.boxuegu.com/ 以關(guān)卡形式教學(xué),從基礎(chǔ)到高級(jí),文章內(nèi)容質(zhì)量比較高
書(shū)棧網(wǎng):https://www.bookstack.cn/ 免費(fèi)的在線電子書(shū)、筆記、文檔網(wǎng)站
還有其他免費(fèi)圖文教程、個(gè)人站點(diǎn)的例如importNew ,我要自學(xué)網(wǎng)等也可看看。
動(dòng)力節(jié)點(diǎn):http://www.bjpowernode.com/javavideo.html 有很多免費(fèi)不錯(cuò)的課程
慕課網(wǎng):https://www.imooc.com/ 有免費(fèi)有付費(fèi)
B站:https://www.bilibili.com/ 有"B站大學(xué)"美稱(chēng)
對(duì)于視頻類(lèi)教程網(wǎng)站,首推B站,很多培訓(xùn)機(jī)構(gòu)會(huì)將部分高質(zhì)量視頻放到B站吸引用戶(hù),這些免費(fèi)資源可以利用好,并且B站是個(gè)開(kāi)放的平臺(tái),有很多up主會(huì)自己錄一些視頻講解也是相當(dāng)不錯(cuò)的。還有一些培訓(xùn)機(jī)構(gòu)例如傳智播客、尚硅谷、達(dá)內(nèi)等可以到官網(wǎng)獲取一些免費(fèi)知識(shí),還有一些課程網(wǎng)站例如騰訊課堂、潭州教育、拉勾、極客時(shí)間、藍(lán)橋云課、開(kāi)課吧等很多課程在剛開(kāi)始推廣期特別便宜可以入手一波學(xué)習(xí)。
當(dāng)然,獲取視頻教程還有一個(gè)途徑就是向別人要,很多公眾號(hào)號(hào)主將資源分享在公眾號(hào)后臺(tái)可以免費(fèi)獲得,還有一些資源可以通過(guò)淘寶和咸魚(yú)低價(jià)獲取網(wǎng)盤(pán)資源,還是很值得。
力扣:https://leetcode-cn.com/problemset/all/
??停篽ttps://www.nowcoder.com/
適用ACM選手的一些刷題網(wǎng)站:杭電oj、 Codeforce、 Vjudge 、Atcoder
Java開(kāi)發(fā)也要刷題嗎?那是肯定的,找工作無(wú)論大廠小廠(尤其大廠)避免不了筆試題,力扣和??蜕隙加袆χ竜ffer,建議刷2-3遍,力扣hot100一定要刷一下,如果沖擊大廠那一定要刷200道以上才行。
csdn:https://blog.csdn.net/ 最大中文博客網(wǎng)站,結(jié)合搜索使用
博客園:https://www.cnblogs.com/ 老牌社區(qū),依然有很多用戶(hù)
知乎: https://www.zhihu.com/ 有很多高質(zhì)量問(wèn)答、文章、專(zhuān)欄
掘金:https://juejin.cn/ 社區(qū)較新,前端用戶(hù)較多,內(nèi)容質(zhì)量相對(duì)較高
思否:https://segmentfault.com/ 文章內(nèi)容質(zhì)量不錯(cuò),問(wèn)答質(zhì)量較高
github:https://github.com/ 全球最大開(kāi)源社區(qū),有非常多的開(kāi)源項(xiàng)目
Stack Overflow: https://stackoverflow.com/ 全球最大技術(shù)咨詢(xún)交流平臺(tái)
V2EX :https://www.v2ex.com/ 高質(zhì)量交流社區(qū)
至于、Infoq、開(kāi)源中國(guó)等社區(qū)內(nèi)容質(zhì)量也很高,但用戶(hù)相對(duì)較少。這些學(xué)習(xí)網(wǎng)站和資源不向前兩項(xiàng)介紹的知識(shí)成體系化,這些平臺(tái)相對(duì)都是流動(dòng)交互性很大,所以你需要找到適合自己的資源,要利用好搜索的功能,此外各平臺(tái)你也可以關(guān)注覺(jué)得不錯(cuò)的博主閱讀他的專(zhuān)欄文章,收益也是很大的。
自學(xué)Java我推薦的書(shū)籍為《Java從入門(mén)到精通》,有案例、代碼跟著學(xué)很容易懂。
當(dāng)然被業(yè)界稱(chēng)為為四大名著書(shū)籍質(zhì)量也不錯(cuò):
《JAVA語(yǔ)言程序設(shè)計(jì)》----初級(jí)
《JAVA核心技術(shù)》卷I----初級(jí)、《JAVA核心技術(shù)》卷II----中級(jí)
《JAVA編程思想》----初級(jí)~中級(jí)
《Effective Java》----中級(jí)
在跟著書(shū)籍學(xué)習(xí)的時(shí)候,有困難的內(nèi)容也可以先放一放,還有Java Swing等窗口應(yīng)用部分也可跳過(guò)。這些書(shū)不需要全買(mǎi),有一本工具書(shū)就足夠了。
學(xué)習(xí)很容易遺忘,因此要時(shí)?;仡?。不推薦視頻作為長(zhǎng)期回顧的方法,更推薦博客、紙質(zhì)書(shū)回顧,因?yàn)樗鼈兛梢钥焖俣ㄎ唬芏鄡?nèi)容看一遍就想起來(lái)了。
除了回顧以外,交流可能是另一種鎖住知識(shí)的好方法了,通過(guò)交流傾聽(tīng)別人的意見(jiàn),能深入思考,加深對(duì)知識(shí)的理解。交流的方式和途徑有很多
和身邊人交流:最方便和高效的交流方式就是和身邊同學(xué)、舍友、一起學(xué)習(xí)的人進(jìn)行交流,一起學(xué)習(xí)進(jìn)步共享學(xué)習(xí)的心得;
社群論壇交流:最大眾化的就是添加一些QQ、微信的技術(shù)交流群或者在一些問(wèn)答論壇交流,群中或者論壇中會(huì)有不少大神或者志同道合的人能夠幫到你。作為技術(shù)人加幾個(gè)技術(shù)社群、多逛技術(shù)論壇還是很有必要的。
當(dāng)然還有一種方式并不一定適合所有人,就是和"自己"交流,將自己的學(xué)習(xí)內(nèi)容重難點(diǎn)以筆記、文章形式輸出出來(lái),雖然這會(huì)耗費(fèi)大量精力和時(shí)間,但這不斷思考、優(yōu)化、寫(xiě)的過(guò)程會(huì)使你對(duì)知識(shí)印象更深刻。
上面已經(jīng)介紹了高效自學(xué)Java的關(guān)鍵點(diǎn),下面來(lái)推薦實(shí)用的Java自學(xué)路徑。
這個(gè)路徑是我為你嘔血整理而成,它結(jié)合我個(gè)人的自學(xué)經(jīng)歷與大牛的學(xué)習(xí)建議,避免了學(xué)習(xí)的坑。路徑分為四部分:
學(xué)到第三階段,就達(dá)到初級(jí)程序員的水平,可以找工作了。第四階段——自我提升階段——里的知識(shí)是Java高級(jí)和框架兩部分里的需要深入學(xué)習(xí)的知識(shí),你可以一邊工作一邊提升,其他內(nèi)容是。
這里我推薦的自學(xué)路徑,以視頻為主。因?yàn)镴ava路徑中的各個(gè)階段相對(duì)獨(dú)立,不必追求一家視頻,但同一階段建議看一家視頻。
該階段對(duì)應(yīng)Java知識(shí)體系中的Java基礎(chǔ),方法為學(xué)習(xí)+刷題,每天學(xué)習(xí)8小時(shí),推薦總時(shí)間控制在60天左右,推薦以視頻為主,工具書(shū)為輔。
本階段的學(xué)習(xí)推薦視頻為回車(chē)課堂的《Java入門(mén)教程》(總時(shí)長(zhǎng)約30小時(shí))(https://ke.boxuegu.com/sceneDetails?sceneId=10)。看視頻的時(shí)候1.5倍數(shù)看(看不懂可以倒回來(lái)多看幾遍,最好不要原倍速看),遇到案例就暫停,自己動(dòng)手跟著敲一下(劃重點(diǎn),跟著敲非常重要,看懂不等于真懂)。
看完視頻,再看書(shū)上內(nèi)容,推薦《Java從入門(mén)到精通》或《Java核心卷 Ⅰ》。如果對(duì)應(yīng)的內(nèi)容很容易懂那就說(shuō)明學(xué)習(xí)的效果不錯(cuò),如果不懂的話就多看書(shū)研究一下或者再找一些博客文章學(xué)習(xí)一下。書(shū)上的案例也要跟著敲寫(xiě)。
學(xué)完后,你還要檢驗(yàn)自己學(xué)的怎么樣,可以通過(guò)刷一些簡(jiǎn)單題來(lái)鞏固。我建議到杭電第11頁(yè)(http://acm.hdu.edu.cn/listproblem.php?vol=11)或者C語(yǔ)言網(wǎng)(https://www.dotcpp.com/oj/problemset.html)去刷一些簡(jiǎn)單題檢驗(yàn)自己,成功完成一道道題會(huì)讓自己獲得成就感,有繼續(xù)學(xué)習(xí)的動(dòng)力。
在這個(gè)階段,你可能學(xué)習(xí)了大量集合框架的使用,但是不了解為什么,比如很難理解為什么ArrayList查詢(xún)快,LinkedList插入更快,這是因?yàn)槟銢](méi)有數(shù)據(jù)結(jié)構(gòu)與算法的儲(chǔ)備,所以在這一階段的最后,你要補(bǔ)一補(bǔ)數(shù)據(jù)結(jié)構(gòu)與算法的內(nèi)容(第一遍學(xué)習(xí)以看和理解為主,不需要自己實(shí)現(xiàn)),這里我推薦王道考研數(shù)據(jù)結(jié)構(gòu)視頻和B站青島大學(xué)王卓老師的數(shù)據(jù)結(jié)構(gòu)與算法專(zhuān)欄(https://www.bilibili.com/read/cv3285768),雖然這兩個(gè)都是以C語(yǔ)言角度講的,但是不妨礙你理解,如果有興趣要?jiǎng)邮謱?shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)與算法,可以到博客上查找實(shí)現(xiàn)方式。
在這個(gè)期間當(dāng)然也要刷題了,但不推薦在杭電和C語(yǔ)言網(wǎng)刷題了,此時(shí)建議刷“劍指offer”上的題,劍指offer共計(jì)67題都是高頻筆試面試題,并且有很多都和數(shù)據(jù)結(jié)構(gòu)有關(guān)系。也許剛開(kāi)始刷的時(shí)候會(huì)比較吃力,力扣和??凸倬W(wǎng)對(duì)應(yīng)題目討論區(qū)有很多優(yōu)質(zhì)講解可以學(xué)習(xí)。
JavaWeb部分,每天學(xué)習(xí)8小時(shí),建議控制時(shí)間在30天左右,推薦學(xué)習(xí)方式以視頻為主,教程網(wǎng)站為輔。這部分內(nèi)容雖然相對(duì)簡(jiǎn)單,但涉及到很多新的技術(shù)和概念需要時(shí)間吸收理解(例如HTML,JavaScript,CSS,JQuery,MVC,Ajax等)。學(xué)習(xí)JavaWeb推薦B站狂神JavaWeb入門(mén)到實(shí)戰(zhàn)視頻(https://www.bilibili.com/video/BV12J411M7Sj?from=search&seid=5650664425103872007),大概25小時(shí)左右,同樣也要倍速看。在學(xué)習(xí)JavaWeb的時(shí)候,會(huì)涉及一些其他領(lǐng)域的東西比如Html,JavaScript,CSS,MySQL等你不需要學(xué)的很深,先會(huì)一些基本的就可以。另外看視頻的時(shí)候JSP部分可簡(jiǎn)略看,尤其是標(biāo)簽、EL表達(dá)式那塊應(yīng)用已經(jīng)很少很少了,快速瀏覽即可。
JavaWeb部分,如果遇到一些錯(cuò)誤很難解決跳過(guò),可到Github找一些可運(yùn)行的項(xiàng)目進(jìn)行跑。有些東西不一定非要死扣,資源教程很多能跑出來(lái)對(duì)于初期才是最關(guān)鍵的。
學(xué)習(xí)JavaWeb除了跟視頻外,也可以跟著教程網(wǎng)站或者博客專(zhuān)欄進(jìn)行學(xué)習(xí)(例如菜鳥(niǎo)教程的Servlet(https://www.runoob.com/servlet/servlet-tutorial.html)),因?yàn)楦坛叹W(wǎng)站在代碼學(xué)習(xí)上效率較高,當(dāng)然在學(xué)習(xí)別人代碼的時(shí)候要有自己的創(chuàng)新。
學(xué)習(xí)JavaWeb 中Servlet/Jsp這部分內(nèi)容的時(shí)候,除了要跟著教程的案例一個(gè)一個(gè)敲代碼,最后一定要?jiǎng)邮智靡粋€(gè)小網(wǎng)站,網(wǎng)站內(nèi)容囊括 Servlet、jsp、Session、Cookie、JDBC、Ajax等相關(guān)技術(shù),包含具體登錄注冊(cè)功能、文件上傳下載功能、頁(yè)面訪問(wèn)計(jì)數(shù)等功能,可以從網(wǎng)絡(luò)上獲取一些前端頁(yè)面模板或者UI框架(推薦Layui或者EasyUI)進(jìn)行修改。
框架學(xué)習(xí)+項(xiàng)目實(shí)戰(zhàn),每天學(xué)習(xí)8小時(shí),建議控制時(shí)間在60天,推薦學(xué)習(xí)方式是視頻+文檔資料學(xué)習(xí)。
JavaWeb中Servlet/Jsp很少在企業(yè)直接使用,學(xué)習(xí)企業(yè)級(jí)開(kāi)發(fā)框架才是重中之重,框架類(lèi)如果單純?yōu)榱藢W(xué)習(xí)應(yīng)用的話不要買(mǎi)書(shū),因?yàn)橹髁骺蚣芗夹g(shù)更新迭代較快,大部分書(shū)籍跟不上技術(shù)的發(fā)展;如果為了深入理解框架設(shè)計(jì)、原理可以買(mǎi)對(duì)應(yīng)框架的源碼分析類(lèi)書(shū)籍(要注意框架版本)。在尋找視頻或者博客教程的時(shí)候要留意文章或者視頻的發(fā)布日期,如果太早的話不建議觀看。
在框架中,重中之重的是Spring、SpringMVC、Mybatis、SSM、SpringBoot等。學(xué)習(xí)順序的話建議從Mybatis到Spring到SpringMVC,三個(gè)框架單獨(dú)學(xué)完之后再進(jìn)行整合SSM框架,利用SSM寫(xiě)一些小案例。之后學(xué)習(xí)SpringBoot,再利用SpringBoot完成實(shí)戰(zhàn)項(xiàng)目鞏固學(xué)習(xí)。
推薦狂神系列視頻:
從學(xué)習(xí)框架開(kāi)始,你就要學(xué)會(huì)閱讀官方文檔啦,因?yàn)橐粋€(gè)開(kāi)源框架之所以流行成功,和它的文檔資料等都是密不可分的,官方文檔是第一手高質(zhì)量資料??赡苡胁糠止俜轿臋n沒(méi)有中文版本,因此需要你有一定英語(yǔ)水平或者使用翻譯。這里提供一些優(yōu)質(zhì)的專(zhuān)欄、博客分享給大家:
除了以上框架,還要學(xué)習(xí)Java后端必學(xué)的安全框架(Shiro或者Spring Security,可以學(xué)習(xí)其一);Redis緩存,消息隊(duì)列(選一種消息隊(duì)列學(xué)習(xí)),后面有時(shí)間再學(xué)習(xí)其他中間件。
框架學(xué)習(xí)完,一定要多動(dòng)手才能熟練掌握,如果你是學(xué)生可以根據(jù)課堂的任務(wù)或者學(xué)校的本創(chuàng)、大創(chuàng)寫(xiě)項(xiàng)目來(lái)提高熟練度并且不斷拓展學(xué)習(xí),如果你是非學(xué)生、非計(jì)算機(jī)專(zhuān)業(yè)沒(méi)有項(xiàng)目條件,那你可以跟著項(xiàng)目實(shí)戰(zhàn)教學(xué)視頻去寫(xiě)項(xiàng)目鞏固學(xué)習(xí)內(nèi)容。
前面的內(nèi)容學(xué)起來(lái)相對(duì)簡(jiǎn)單,是自學(xué)的核心內(nèi)容,但是度過(guò)初期要學(xué)什么也要有個(gè)大概的了解,這里簡(jiǎn)單介紹一下并推薦部分書(shū)籍。
這部分的學(xué)習(xí)可能比起前面會(huì)枯燥一些,但想要變強(qiáng)突破初級(jí)的瓶頸就得沉得住氣,靜下心來(lái)學(xué)習(xí)。
在自學(xué)Java前或者自學(xué)中你會(huì)不會(huì)有這樣的疑惑:
自學(xué)Java,學(xué)多久可以找到工作?
進(jìn)大廠和進(jìn)中小公司自學(xué)Java的側(cè)重點(diǎn)有區(qū)別嗎?
為什么學(xué)了那么久還只會(huì)“Hello World” ?
編程能力從什么時(shí)候開(kāi)始突飛猛進(jìn)?
以上選項(xiàng)無(wú)關(guān)對(duì)錯(cuò),讓我慢慢給你嘮~
如果是小白的話,每天保證8小時(shí)以上的學(xué)習(xí)時(shí)間,達(dá)到Java初級(jí)程序員的水平最快也要6個(gè)月。前5個(gè)月正常學(xué)習(xí)Java技術(shù),最后一個(gè)月準(zhǔn)備簡(jiǎn)歷以及面試。Java面試非常重要,要找一些面經(jīng)將面試??嫉膯?wèn)題搞明白。可以到??蜕峡纯磩e人的面試經(jīng)驗(yàn)也可到Github上找一下面經(jīng)(這里推薦JavaGuide(https://github.com/Snailclimb/JavaGuide))。
大廠更重基礎(chǔ),需要你對(duì)學(xué)習(xí)的Java內(nèi)容有透徹地理解,以及學(xué)習(xí)和理解數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、設(shè)計(jì)模式。而小廠更重項(xiàng)目和框架的使用。因此不同的定位,決定了在學(xué)習(xí)和面試準(zhǔn)備的時(shí)候要有不同的側(cè)重點(diǎn)。
還要提一點(diǎn),大廠都注重編程能力,會(huì)筆試算法題,對(duì)應(yīng)屆生的要求更高,所以如果有條件的話一定要把劍指offer刷2-3遍,力扣最好能刷100題以上(學(xué)生的話刷200題以上)。
學(xué)那么久只會(huì)"Hello World"就是因?yàn)橹豢床痪毣蛘呔毶倭?。很多人在學(xué)習(xí)時(shí)眼高手低,不去敲代碼或者只是copy一下執(zhí)行,到后面碰到有難度的代碼,就發(fā)現(xiàn)自己啥都不會(huì)。
解決這個(gè)問(wèn)題一方面是學(xué)習(xí)途中遇到的案例都要?jiǎng)邮智?另一方面就是要刷題鞏固,因?yàn)楦咐?,邏輯上還是有所依賴(lài),但刷題時(shí)必須要自己充分思考才能通過(guò)。
所以自學(xué)Java,要一步一個(gè)腳印,每部分的案例都要?jiǎng)邮秩?shí)現(xiàn),并在實(shí)現(xiàn)的基礎(chǔ)上去鞏固和創(chuàng)新。
編程能力的進(jìn)步靠練習(xí),一般突飛猛進(jìn)會(huì)有兩個(gè)階段。
第一個(gè)突飛猛進(jìn)就是學(xué)完Java基礎(chǔ)部分。刷了100題左右,這時(shí)候遇到簡(jiǎn)單邏輯題都可以輕松解決,自己的邏輯能力、編程能力都有不錯(cuò)的提升,你會(huì)覺(jué)得自學(xué)Java這么久,努力沒(méi)白費(fèi)。
第二個(gè)突飛猛進(jìn)的體會(huì)就是獨(dú)立完成一兩個(gè)項(xiàng)目的后端模塊時(shí)。從搭建項(xiàng)目、到MVC分層編寫(xiě)業(yè)務(wù)邏輯代碼會(huì)讓學(xué)到的知識(shí)真正應(yīng)用起來(lái),自己會(huì)有點(diǎn)竊喜:哇,我自己也能寫(xiě)項(xiàng)目啦!這時(shí)候就是編程能力的第二次突飛猛進(jìn)。
當(dāng)然,后面可能也會(huì)因?yàn)橐恍┢渌蜃屪约涸俅瓮伙w猛進(jìn),但總的來(lái)說(shuō),想要突飛猛進(jìn),就要在短期內(nèi)高強(qiáng)度學(xué)習(xí)、高強(qiáng)度敲代碼。
通過(guò)上面自學(xué)Java的介紹,我想你對(duì)Java的學(xué)習(xí)方法和路線已經(jīng)有所認(rèn)識(shí)和掌握,通過(guò)一張表來(lái)復(fù)習(xí)一下。
如果你覺(jué)得自己適合自學(xué)Java,必須要鼓足干勁一鼓作氣!自學(xué)前先了解Java知識(shí)體系,掌握一些學(xué)習(xí)資源和方法,學(xué)習(xí)過(guò)程一定要多敲代碼、多回顧交流。
IT界經(jīng)常流傳這么一句話:"talk is easy,show me the code"。自學(xué)Java,就是學(xué)會(huì)寫(xiě)代碼,多多練習(xí)是非常非常重要的。之后的錦上添花是懂原理,但深入理解原理是一個(gè)任重而道遠(yuǎn)的過(guò)程。
加油吧后浪!
網(wǎng)站標(biāo)題:Java自學(xué)方法和路線,我萬(wàn)字推薦你這樣學(xué)
分享URL:http://uogjgqi.cn/article/cdehcoh.html

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流