大家好,我是陌溪
關注我的粉絲里,有不少還是在校的學生,或者是準備轉行的小伙伴,今天給大家?guī)淼氖且黄狫ava自學方法,希望對大家有所幫助~
無論你是大學生還是在職人員,想學Java時,都會面臨兩個選擇,自學或者報班。報班通常太費錢,時間又不自由;自學又不知道如何下手,擔心自己堅持不下來。怎么辦呢?
本文將解答你自學Java的N種問題:
你適不適合自學Java呢?
如何自學Java呢?
有沒有靠譜的Java自學資料推薦?
怎樣讓自己看到進步,堅持下來?
……
以上問題,課程中我都會嘔心給你梳理答案,趕快開始學習吧。
在自學前你可能會因為自身的條件有很多困惑和疑慮,不清楚自己是否適合自學Java。下面我們來做個測驗,來檢測一下你是否適合自學Java。
第一道題:你對學習Java的信念有多強?
最低分0分,最高分5分,你給自己打幾分?
對學習Java抱有堅定的信念是學習Java的必備條件,如果你給自己的打分小于等于2.5分,建議你直接放棄學習Java吧。如果你給自己的打分大于2.5分(越高越好),恭喜你,第一關的考驗過了!
第二道題:你學Java的目的是興趣提升 or 就業(yè)?
如果你學習Java只是興趣提升,那么你無論是自學或者報班怎么學都是適合的,因為你不差時間。那么后面的考驗題你也可以直接跳過,看后面的干貨。
但如果你是為了就業(yè)而學習Java,那對學習Java效果和時間都有一定要求,還要滿足社會崗位要求。建議你好好考慮報班還是自學。
如果你大于30歲的話,我已經不推薦你學習Java了,一方面30歲后學習能力和精力堪憂,另一方面30歲的Java初級小白幾乎找不到工作。
但如果你小于30歲的話,那你的客觀條件還是可以學習Java的。剩下的就要考驗你的自控力和毅力了。
第三道題:最低分0分,最高分5分,你給自己的自控力和毅力打幾分?
如果你的打分小于3分,我建議你報班學習Java,自學不適合你。(如果你不能確定自己的自控力水平,你也可以去網上找一些自控力測試的問卷。)
但如果你自控力較強、個人時間較多、熱愛獨立思考鉆研的話,那么恭喜你,我認為你是非常適合自學的。如果你也選擇自學,那么本課程的內容你可以好好學習借鑒,相信你一定可以找到一條適合自己的道路!
最后你也許會問,性別、英語水平、數學水平、是否為科班等是否影響自學Java,如果你上面的測試都通過了,這些其實都是一些非關鍵性的影響因素。
我們用一張圖總結一下以上的所有問題:
雖然性別、英語水平、數學水平、是否為計算機專業(yè)都等不是關鍵因素,但當你是女孩子,英語、數學水平較差,非計算機專業(yè)相對于男孩子,英語、數學水平較好的計算機專業(yè)還是會有一些影響,為了達到同樣的結果可能需要付出更多的努力。
我們這里拿計算機專業(yè)和非計算機專業(yè)比較一下。
計算機專業(yè)和非計算機專業(yè)自學Java的區(qū)別?
雖然說計算機主要靠自學,但是計算機專業(yè)的學生相比非計算機還是有很大優(yōu)勢的,大部分計算機專業(yè)是有開設Java這門課程的,可以讓這些學生在學習Java的道路上快速度過'冷啟動';還有一些重要的基礎課,例如數據結構、操作系統(tǒng)、數據庫、計算機網絡等課程能夠幫助學生更深入地了解計算機,學習起Java語言也能有更深層次地理解。
而非計算機專業(yè)在自學Java時,會因為有原專業(yè)課程、作業(yè)的限制,學習時間相比計算機專業(yè)學生少了不少,但這些問題是可以被克服解決的,可以多花一些課余時間、周末時間,學習練習Java,也可蹭一蹭計算機專業(yè)開設的Java課程,多與計算機相關專業(yè)同學交流碰撞。自學Java的心態(tài)也很重要,不要因為被本專業(yè)課程拖累而埋怨,要樂觀地去面對學習上的困難,有長遠的眼光,陽光總在風雨后!
總的來說,計算機專業(yè)自學Java資源、時間更多,更需注重自學的方法和內容;而非計算機條件較難,除注重方法和內容之外,重要的是要堅持在百忙之中擠出很多時間留給Java,這對毅力是非常大的考驗。
當你適合自學的時候,那么你就要尋求好的方法提高自學Java的效率,如何做呢?看看下面內容吧~
這里我總結了三大點,分別從認識、方法、反饋角度來寫,其中一定有適合你的方案!
自學Java前,要對Java和Java體系知識有一定認識,心中有個大概的輪廓去學習,方能更踏實。通過幾個問題了解Java。
什么是Java?
Java是一種可以撰寫跨平臺應用程序的、面向對象的程序設計語言。簡單說,Java就是一種語言,不過是一種跑在JVM上的語言,Java編譯后是字節(jié)碼,而JVM會把這些字節(jié)碼解釋成機器碼,然后做出相應的動作。
Java能干什么?
Java當前用的較多的就是做后端開發(fā)、大數據開發(fā)、安卓開發(fā),這是當前Java技術棧較為熱門的三種崗位,其中以Java后端的市場需求最大。Java也可以做桌面應用開發(fā)、游戲開發(fā),但需求相對較少。
國內大廠,像阿里巴巴、美團、京東、拼多多等,使用的主要語言都是Java,大部分中小企業(yè)為了成熟穩(wěn)定也選擇Java作為后端開發(fā)語言。此外,很多著名的中間件是由Java編寫的,例如:Elasticsearch、RocketMQ、Hadoop等。
Java入門部分:
JDK、IDEA安裝,第一個HelloWorld
基礎內容:輸入輸出、命名規(guī)范、注釋
數據類型:基礎數據類型(及其包裝類)、引用類型
修飾符:訪問修飾符、非訪問修飾符
運算符:賦值、算數、自增自減、比較、邏輯、位、三元運算符及其優(yōu)先級
控制流程:條件判斷、循環(huán)語句
數組、字符型
類與對象
面向對象三大特征:繼承、封裝、多態(tài)
日期、正則、大數運算(簡單了解)
Java進階部分:
IO常見文件操作
集合框架:ArrayList、LinkedList、HashMap、HashSet、ArrayDeque等
異常處理
泛型
JDBC
網絡編程
Java8新特性(Lambda)
反射、注解(有點難)
多線程、高并發(fā)
23種設計模式
樹、紅黑樹、B樹、散列、堆、圖等
算法:十大排序、二分查找、分治、貪心算法、位運算、回溯、動態(tài)規(guī)劃、搜索算法(bfs、dfs)、最短路徑(Dijkstra、Floyd)、最小生成樹(Prim、Kruskal)、并查集、KMP等算法
HTML、JavaScript、CSS
XML、JSON
Tomcat
Servlet/JSP(以Servlet為主)
JQuery、Ajax
MVC
Cookie、Session
過濾器、監(jiān)聽器
文件上傳下載(Servlet3.0)
Linux
ORM框架:Mybatis
Spring全家桶:Spring、SpringMVC、SpringBoot
安全框架:Shiro、Spring Security(可選一種先學)
其他框架:Swagger(在線接口)、Log4j2(日志)、Quartz(定時)等
微服務:SpringCloud、Dubbo等
版本控制:Git、SVN
包管理:Maven、Gradle
關系型數據庫:MySQL、Oracle等
非關系型數據庫:Redis(緩存)、Memcached(緩存)、MongoDB(文檔型)等
搜索引擎:Elasticsearch、Solr等
消息隊列:RocketMQ、ActiveMQ、RabbitMQ、Kafka等
Web服務器:Apache、 Nginx
容器:Docker、K8S
大數據:Hadoop、Spark、Strom、Flink等
當然,上面只是羅列了大部分知識點,還有很多知識比如日志分析監(jiān)控(ELK)、持續(xù)集成、分庫分表等也都是熱門技術,Java后端技術體系龐大。這些內容可以根據你的工作或者興趣,選擇性深入學習。
自學Java一般有書籍、視頻、博客等學習資料,這里主要講解三者在自學Java中的異同點。
看書是最為傳統(tǒng)的學習方式,我們從小到大大部分的自學知識是通過看書來獲得的,所以可能很多人都喜歡和適應這種方式。書籍具有嚴謹、體系完整等特點,并且紙質的內容來回翻閱在回顧的時候也更便捷。
但看書也有一些缺點:可能分不清主次,在學習Java的時候其實是有側重點的,而書上可能在這方面并不會有太多的介紹和標注,并且一些冷門淘汰知識可以不用學習(例如Java Swing部分);有些內容即使作者寫得很棒了,但可能會因為案例、解釋較少不能完全理解(尤其是小白)。
比起書籍,更多人愿意看視頻自學Java,因為看書時大部分人會覺得比較枯燥。但是視頻就不一樣了,視頻中老師們通常會邊敲邊講解,更易于知識點的理解,并且人是感性動物,看視頻就如同與老師交流,好的老師會讓學習效率直接翻倍。
看視頻當然也會有些缺點,視頻時間較長較多,很難快速回顧學過的知識或者快速瀏覽章節(jié)內容,所以有可能會浪費一點學習的時間。
博客是程序員必不可少的學習資源,近些年高質量博客、文章也越來越多。這種博客文章閱讀比較方便,內容選擇也比較豐富,好的博客圖文并茂生動形象非常有助于理解記憶,并且博客在代碼拷貝學習方面更占優(yōu)勢。
看博客也有一些缺點:比如博客比較碎片化,體系不太完整。還有博客質量參差不齊差距較大,甚至有的博客還出現較大的錯誤,所以挑選好的博客是一大挑戰(zhàn)。
總的來說,系統(tǒng)自學Java主力軍還是 看視頻和看書 ,可以以看視頻為主,看書為輔,遇到疑難點不理解的可以通過搜索相關博客多看文章進行學習吸收。
為了方便你的學習,我貼心為你搜集了一波優(yōu)秀的視頻、書籍、播客,以及刷題網站和社區(qū)的列表清單,你可以慢慢“享用”。
圖文類的教程網站:
菜鳥教程:https://www.runoob.com/java/java-tutorial.html 教程免費,適合基礎入門
W3Cschool:https://www.w3cschool.cn/ 教程免費,適合基礎入門
易百教程:https://www.yiibai.com/ 教程免費,適合基礎入門
How2j: https://how2j.cn/ Java基礎到高級,還有各種框架、中間件教程
回車課堂:https://ke.boxuegu.com/ 以關卡形式教學,從基礎到高級,文章內容質量比較高
書棧網:https://www.bookstack.cn/ 免費的在線電子書、筆記、文檔網站
還有其他免費圖文教程、個人站點的例如importNew ,我要自學網等也可看看。
視頻網課網站:
動力節(jié)點:http://www.bjpowernode.com/javavideo.html 有很多免費不錯的課程
慕課網:https://www.imooc.com/ 有免費有付費
B站:https://www.bilibili.com/ 有'B站大學'美稱
對于視頻類教程網站,首推B站,很多培訓機構會將部分高質量視頻放到B站吸引用戶,這些免費資源可以利用好,并且B站是個開放的平臺,有很多up主會自己錄一些視頻講解也是相當不錯的。還有一些培訓機構例如傳智播客、尚硅谷、達內等可以到官網獲取一些免費知識,還有一些課程網站例如騰訊課堂、潭州教育、拉勾、極客時間、藍橋云課、開課吧等很多課程在剛開始推廣期特別便宜可以入手一波學習。
當然,獲取視頻教程還有一個途徑就是向別人要,很多公眾號號主將資源分享在公眾號后臺可以免費獲得,還有一些資源可以通過淘寶和咸魚低價獲取網盤資源,還是很值得。
刷題網站
力扣:https://leetcode-cn.com/problemset/all/
??停?span>https://www.nowcoder.com/
適用ACM選手的一些刷題網站:杭電oj、 Codeforce、 Vjudge 、Atcoder
Java開發(fā)也要刷題嗎?那是肯定的,找工作無論大廠小廠(尤其大廠)避免不了筆試題,力扣和??蜕隙加袆χ竜ffer,建議刷2-3遍,力扣hot100一定要刷一下,如果沖擊大廠那一定要刷200道以上才行。
其他學習網站
csdn:https://blog.csdn.net/ 最大中文博客網站,結合搜索使用
博客園:https://www.cnblogs.com/ 老牌社區(qū),依然有很多用戶
知乎: https://www.zhihu.com/ 有很多高質量問答、文章、專欄
掘金:https://juejin.cn/ 社區(qū)較新,前端用戶較多,內容質量相對較高
思否:https://segmentfault.com/ 文章內容質量不錯,問答質量較高
github:https://github.com/ 全球最大開源社區(qū),有非常多的開源項目
Stack Overflow: https://stackoverflow.com/ 全球最大技術咨詢交流平臺
V2EX :https://www.v2ex.com/ 高質量交流社區(qū)
至于51CTO、Infoq、開源中國等社區(qū)內容質量也很高,但用戶相對較少。這些學習網站和資源不向前兩項介紹的知識成體系化,這些平臺相對都是流動交互性很大,所以你需要找到適合自己的資源,要利用好搜索的功能,此外各平臺你也可以關注覺得不錯的博主閱讀他的專欄文章,收益也是很大的。
推薦書籍
自學Java我推薦的書籍為《Java從入門到精通》,有案例、代碼跟著學很容易懂。
當然被業(yè)界稱為為四大名著書籍質量也不錯:
《JAVA語言程序設計》----初級
《JAVA核心技術》卷I----初級、《JAVA核心技術》卷II----中級
《JAVA編程思想》----初級~中級
《Effective Java》----中級
在跟著書籍學習的時候,有困難的內容也可以先放一放,還有Java Swing等窗口應用部分也可跳過。這些書不需要全買,有一本工具書就足夠了。
學習很容易遺忘,因此要時?;仡櫋2煌扑]視頻作為長期回顧的方法,更推薦博客、紙質書回顧,因為它們可以快速定位,很多內容看一遍就想起來了。
除了回顧以外,交流可能是另一種鎖住知識的好方法了,通過交流傾聽別人的意見,能深入思考,加深對知識的理解。交流的方式和途徑有很多
和身邊人交流:最方便和高效的交流方式就是和身邊同學、舍友、一起學習的人進行交流,一起學習進步共享學習的心得;
社群論壇交流:最大眾化的就是添加一些QQ、微信的技術交流群或者在一些問答論壇交流,群中或者論壇中會有不少大神或者志同道合的人能夠幫到你。作為技術人加幾個技術社群、多逛技術論壇還是很有必要的。
當然還有一種方式并不一定適合所有人,就是和'自己'交流,將自己的學習內容重難點以筆記、文章形式輸出出來,雖然這會耗費大量精力和時間,但這不斷思考、優(yōu)化、寫的過程會使你對知識印象更深刻。
上面已經介紹了高效自學Java的關鍵點,下面來推薦實用的Java自學路徑。
這個路徑是我為你嘔血整理而成,它結合我個人的自學經歷與大牛的學習建議,避免了學習的坑。路徑分為四部分:
Java基礎學習階段
JavaWeb學習階段
框架學習階段
自我提升階段
學到第三階段,就達到初級程序員的水平,可以找工作了。第四階段——自我提升階段——里的知識是Java高級和框架兩部分里的需要深入學習的知識,你可以一邊工作一邊提升,其他內容是。
這里我推薦的自學路徑,以視頻為主。因為Java路徑中的各個階段相對獨立,不必追求一家視頻,但同一階段建議看一家視頻。
該階段對應Java知識體系中的Java基礎,方法為學習+刷題,每天學習8小時,推薦總時間控制在60天左右,推薦以視頻為主,工具書為輔。
本階段的學習推薦視頻為回車課堂的《Java入門教程》(總時長約30小時)(https://ke.boxuegu.com/sceneDetails?sceneId=10)。看視頻的時候1.5倍數看(看不懂可以倒回來多看幾遍,最好不要原倍速看),遇到案例就暫停,自己動手跟著敲一下(劃重點,跟著敲非常重要,看懂不等于真懂)。
看完視頻,再看書上內容,推薦《Java從入門到精通》或《Java核心卷 Ⅰ》。如果對應的內容很容易懂那就說明學習的效果不錯,如果不懂的話就多看書研究一下或者再找一些博客文章學習一下。書上的案例也要跟著敲寫。
學完后,你還要檢驗自己學的怎么樣,可以通過刷一些簡單題來鞏固。我建議到杭電第11頁(http://acm.hdu.edu.cn/listproblem.php?vol=11)或者C語言網(https://www.dotcpp.com/oj/problemset.html)去刷一些簡單題檢驗自己,成功完成一道道題會讓自己獲得成就感,有繼續(xù)學習的動力。
在這個階段,你可能學習了大量集合框架的使用,但是不了解為什么,比如很難理解為什么ArrayList查詢快,LinkedList插入更快,這是因為你沒有數據結構與算法的儲備,所以在這一階段的最后,你要補一補數據結構與算法的內容(第一遍學習以看和理解為主,不需要自己實現),這里我推薦王道考研數據結構視頻和B站青島大學王卓老師的數據結構與算法專欄(https://www.bilibili.com/read/cv3285768),雖然這兩個都是以C語言角度講的,但是不妨礙你理解,如果有興趣要動手實現各種數據結構與算法,可以到博客上查找實現方式。
在這個期間當然也要刷題了,但不推薦在杭電和C語言網刷題了,此時建議刷“劍指offer”上的題,劍指offer共計67題都是高頻筆試面試題,并且有很多都和數據結構有關系。也許剛開始刷的時候會比較吃力,力扣和牛客官網對應題目討論區(qū)有很多優(yōu)質講解可以學習。
JavaWeb部分,每天學習8小時,建議控制時間在30天左右,推薦學習方式以視頻為主,教程網站為輔。這部分內容雖然相對簡單,但涉及到很多新的技術和概念需要時間吸收理解(例如HTML,JavaScript,CSS,JQuery,MVC,Ajax等)。學習JavaWeb推薦B站狂神JavaWeb入門到實戰(zhàn)視頻(https://www.bilibili.com/video/BV12J411M7Sj?from=search&seid=5650664425103872007),大概25小時左右,同樣也要倍速看。在學習JavaWeb的時候,會涉及一些其他領域的東西比如Html,JavaScript,CSS,MySQL等你不需要學的很深,先會一些基本的就可以。另外看視頻的時候JSP部分可簡略看,尤其是標簽、EL表達式那塊應用已經很少很少了,快速瀏覽即可。
JavaWeb部分,如果遇到一些錯誤很難解決跳過,可到Github找一些可運行的項目進行跑。有些東西不一定非要死扣,資源教程很多能跑出來對于初期才是最關鍵的。
學習JavaWeb除了跟視頻外,也可以跟著教程網站或者博客專欄進行學習(例如菜鳥教程的Servlet(https://www.runoob.com/servlet/servlet-tutorial.html)),因為跟著教程網站在代碼學習上效率較高,當然在學習別人代碼的時候要有自己的創(chuàng)新。
學習JavaWeb 中Servlet/Jsp這部分內容的時候,除了要跟著教程的案例一個一個敲代碼,最后一定要動手敲一個小網站,網站內容囊括 Servlet、jsp、Session、Cookie、JDBC、Ajax等相關技術,包含具體登錄注冊功能、文件上傳下載功能、頁面訪問計數等功能,可以從網絡上獲取一些前端頁面模板或者UI框架(推薦Layui或者EasyUI)進行修改。
框架學習+項目實戰(zhàn),每天學習8小時,建議控制時間在60天,推薦學習方式是視頻+文檔資料學習。
JavaWeb中Servlet/Jsp很少在企業(yè)直接使用,學習企業(yè)級開發(fā)框架才是重中之重,框架類如果單純?yōu)榱藢W習應用的話不要買書,因為主流框架技術更新迭代較快,大部分書籍跟不上技術的發(fā)展;如果為了深入理解框架設計、原理可以買對應框架的源碼分析類書籍(要注意框架版本)。在尋找視頻或者博客教程的時候要留意文章或者視頻的發(fā)布日期,如果太早的話不建議觀看。
在框架中,重中之重的是Spring、SpringMVC、Mybatis、SSM、SpringBoot等。學習順序的話建議從Mybatis到Spring到SpringMVC,三個框架單獨學完之后再進行整合SSM框架,利用SSM寫一些小案例。之后學習SpringBoot,再利用SpringBoot完成實戰(zhàn)項目鞏固學習。
推薦狂神系列視頻:
狂神Mybatis教程:(https://www.bilibili.com/video/BV1NE411Q7Nx) 視頻長11小時左右
狂神Spring教程:(https://www.bilibili.com/video/BV1WE411d7Dv) 視頻長8小時左右
狂神SpringMVC教程:(https://www.bilibili.com/video/BV1aE41167Tu) 視頻長10小時左右
狂神SSM整合教程:(https://www.bilibili.com/video/BV1RE41127rv) 視頻長3小時左右
狂神SpringBoot教程:(https://www.bilibili.com/video/BV1PE411i7CV) 視頻長19小時左右
狂神SpringBoot開發(fā)網站 (https://www.bilibili.com/video/BV19E411v7Ty) 視頻長5小時左右
從學習框架開始,你就要學會閱讀官方文檔啦,因為一個開源框架之所以流行成功,和它的文檔資料等都是密不可分的,官方文檔是第一手高質量資料??赡苡胁糠止俜轿臋n沒有中文版本,因此需要你有一定英語水平或者使用翻譯。這里提供一些優(yōu)質的專欄、博客分享給大家:
Spring 官方社區(qū)(https://spring.io/projects/spring-boot)
Mybatis官網文檔 (https://mybatis.org/mybatis-3/zh/index.html)
Mybatis-Spring文檔介紹 (http://mybatis.org/spring/zh/index.html)
Mybatis中文社區(qū)(非官方) (http://www.mybatis.cn/)
SpringBoot中文社區(qū)(非官方)(https://springboot.io/)
方志明的個人博客(SpringBoot,SpringCloud教程) https://www.fangzhipeng.com/
程序員DD的個人博客(SpringBoot,SpringCloud) (https://blog.didispace.com/categories/Spring-Boot/)
孤傲蒼狼的Mybatis專欄:(https://www.cnblogs.com/xdp-gacl/category/655890.html)
純潔的微信SpringBoot Github倉庫:(https://github.com/ityouknow/spring-boot-examples)
除了以上框架,還要學習Java后端必學的安全框架(Shiro或者Spring Security,可以學習其一);Redis緩存,消息隊列(選一種消息隊列學習),后面有時間再學習其他中間件。
框架學習完,一定要多動手才能熟練掌握,如果你是學生可以根據課堂的任務或者學校的本創(chuàng)、大創(chuàng)寫項目來提高熟練度并且不斷拓展學習,如果你是非學生、非計算機專業(yè)沒有項目條件,那你可以跟著項目實戰(zhàn)教學視頻去寫項目鞏固學習內容。
前面的內容學起來相對簡單,是自學的核心內容,但是度過初期要學什么也要有個大概的了解,這里簡單介紹一下并推薦部分書籍。
Java并發(fā)編程:《Java并發(fā)編程實戰(zhàn)》
JVM:《深入理解JVM虛擬機》
MySQL:《MySQL技術內幕》
23種設計模式:《大話設計模式》
數據結構與算法:《數據結構與算法分析Java語言描述》(機械出版社黑皮書),堅持刷力扣
操作系統(tǒng)、計算機網絡
JDK源碼、框架源碼
Redis、MQ等主流中間件
大數據、分布式、微服務、容器等部分
這部分的學習可能比起前面會枯燥一些,但想要變強突破初級的瓶頸就得沉得住氣,靜下心來學習。
在自學Java前或者自學中你會不會有這樣的疑惑:
自學Java,學多久可以找到工作?
進大廠和進中小公司自學Java的側重點有區(qū)別嗎?
為什么學了那么久還只會“Hello World” ?
編程能力從什么時候開始突飛猛進?
以上選項無關對錯,讓我慢慢給你嘮~
1 自學Java,學多久可以找到工作?
如果是小白的話,每天保證8小時以上的學習時間,達到Java初級程序員的水平最快也要6個月。前5個月正常學習Java技術,最后一個月準備簡歷以及面試。Java面試非常重要,要找一些面經將面試??嫉膯栴}搞明白??梢缘脚?蜕峡纯磩e人的面試經驗也可到Github上找一下面經(這里推薦JavaGuide(https://github.com/Snailclimb/JavaGuide))。
2 進大廠和進中小公司自學Java的側重點有區(qū)別嗎?
大廠更重基礎,需要你對學習的Java內容有透徹地理解,以及學習和理解數據結構與算法、操作系統(tǒng)、計算機網絡、設計模式。而小廠更重項目和框架的使用。因此不同的定位,決定了在學習和面試準備的時候要有不同的側重點。
還要提一點,大廠都注重編程能力,會筆試算法題,對應屆生的要求更高,所以如果有條件的話一定要把劍指offer刷2-3遍,力扣最好能刷100題以上(學生的話刷200題以上)。
3 為什么學了那么久還只會“Hello World” ?
學那么久只會'Hello World'就是因為只看不練或者練少了。很多人在學習時眼高手低,不去敲代碼或者只是copy一下執(zhí)行,到后面碰到有難度的代碼,就發(fā)現自己啥都不會。
解決這個問題一方面是學習途中遇到的案例都要動手敲;另一方面就是要刷題鞏固,因為跟著案例,邏輯上還是有所依賴,但刷題時必須要自己充分思考才能通過。
所以自學Java,要一步一個腳印,每部分的案例都要動手去實現,并在實現的基礎上去鞏固和創(chuàng)新。
4 編程能力從什么時候開始突飛猛進?
編程能力的進步靠練習,一般突飛猛進會有兩個階段。
第一個突飛猛進就是學完Java基礎部分。刷了100題左右,這時候遇到簡單邏輯題都可以輕松解決,自己的邏輯能力、編程能力都有不錯的提升,你會覺得自學Java這么久,努力沒白費。
第二個突飛猛進的體會就是獨立完成一兩個項目的后端模塊時。從搭建項目、到MVC分層編寫業(yè)務邏輯代碼會讓學到的知識真正應用起來,自己會有點竊喜:哇,我自己也能寫項目啦!這時候就是編程能力的第二次突飛猛進。
當然,后面可能也會因為一些其他原因讓自己再次突飛猛進,但總的來說,想要突飛猛進,就要在短期內高強度學習、高強度敲代碼。
通過上面自學Java的介紹,我想你對Java的學習方法和路線已經有所認識和掌握,通過一張表來復習一下。
學習路徑 | 主要工作學習資源 | 建議學習方式 | 建議學習時間 |
---|---|---|---|
Java基礎學習階段 | 1. 回車課堂的Java入門教程(鏈接) 2.王道考研數據結構視頻和B站青島大學王卓老師的數據結構與算法專欄 | 視頻為主,工具書為輔+刷題 | 60天左右 |
JavaWeb學習階段 | B站[狂神JavaWeb入門到實戰(zhàn)視頻] | 視頻為主,教程網站為輔 | 30天左右 |
框架學習階段 | 狂神系列視頻+官網文檔+項目視頻 | 視頻+文檔資料學習 | 60天左右 |
自我提升階段 | 并發(fā)編程+JVM+MySQL+設計模式等書籍 | 書籍 | —— |
如果你覺得自己適合自學Java,必須要鼓足干勁一鼓作氣!自學前先了解Java知識體系,掌握一些學習資源和方法,學習過程一定要多敲代碼、多回顧交流。
IT界經常流傳這么一句話:'talk is easy,show me the code'。自學Java,就是學會寫代碼,多多練習是非常非常重要的。之后的錦上添花是懂原理,但深入理解原理是一個任重而道遠的過程。
加油吧后浪!
聯系客服