如何快速打好Java基礎?
二哥,我是一名大學生,專業是電力工程,但想自學 Java,如何快速打好基礎呢?
微信上 tison 向我提出了這個問題。我想我是有資格來回答的,從北京奧運會那年開始學 Java,到現在已經有 10 多個年頭了,真的是從一名程式設計白痴一步步走到現在的。
我在各大技術網站上分享了不少 Java 方面的原創文章,不知道影響了多少初學者,反正文章的留言中經常能看到他們由衷的感謝。現在每天仍然有不少同學(tison 是其中之一)加我微信,問我怎麼一路過來的,希望能夠把寶貴的經驗分享出來,讓他們少走一些彎路。 借這個機會,就統一回答下。
既然要快速,咱就沒法面面俱到,必須挑重點、講實用。下面就根據我的實戰經驗,談一談具體的學習過程。
01、準備
學習之路是一項很逆人性的差事,並不是每個人都能夠堅持下來,尤其是打基礎的階段,過於強求的話可能就會適得其反,沒入門先放棄了。
1)對 Java 感興趣,對網際網路的高薪感興趣,對“程式設計師禿頂”的段子視若無睹,只有這樣,你才能真正地堅持下去。
2)富有堅韌不拔的學習能力,別總遇到一點點困難,就自暴自棄。
3)設定一個目標就死磕,如果你經常拿不到最終結果,需要反思是不是從來沒有成功做成過一件困難的事情,沒成功過所以不知道“堅持”可以大大提高成功的概率。
4)擁有解決問題的勇氣,學習的過程中註定會遇到許許多多的坑,要敢於跳進去,然後再爬出來,並且是在不尋求他人幫助的前提下。我見過太多的同學,遇到點屁大的問題就直接扔在群裡等大牛解答,殊不知搜尋引擎是第一步。
02、書籍
高爾基曾說過:“書籍是人類進步的階梯。”這是至理名言,打 Java 基礎的過程中必須要耐著性子去讀完兩本書:《Head First Java》和《Java 核心技術卷一》。
上大學那會,老師要求我們讀的入門書是《Java 程式設計思想》,這本書確實值得讀。但是很可惜,那時候我實在是看不懂,硬著頭皮上也看不懂,感覺在看甲骨文一樣。10 多年過去了,如果讓我來推薦 Java 入門書的話,我不會推薦這本。
《Head First Java》是一本非常有趣的書,作者挑選的插圖可以說張張經典,真正實現了“圖文並茂”的需求,搞得你感覺有點不好意思,彷彿不是在讀一本技術書,而是在讀《知音》。
不只是圖片,還有遊戲、拼圖、解謎題以及你意想不到的內容。真的是一點都不“正經”,正因為如此,閱讀起來才會感覺興趣盎然嘛。
《Java核心技術卷一》雖然沒有《Head First Java》那麼趣味化,但廣度和深度都恰到好處。這兩本書雖然都比較厚,但讀起來並不會覺得頭大,因為都算是通俗易懂的入門書。我建議你把書中的例項都在電腦上跑一遍。有些內容看不懂的話,就先跳過,不要鑽牛角尖。這樣下來,粗略的估計,需要 2 個月的時間。
最好的話,每讀完一章,接寫一篇筆記出來,所謂好記性不如爛筆頭,在寫作的過程中,為了能夠把一個知識點說明白,你不會不自覺的學習到更多擴充套件的內容,理解也會隨之加深。這些筆記就好像你在學習過程中的榮譽勳章,以後再回看的時候,也會覺得學習的日子過得很充實。
02、視訊
可能你更喜歡看視訊教學,那麼我也為你精心準備了一些。這些視訊我已經分門別類了,需要的話可以關注我的公眾號【沉默王二】,按照下面的口令清單回覆即可獲取。
Java 基礎視訊名稱 | 口令 |
---|---|
Java 基礎語法 | javaboy4096 |
Java 面向物件 | javaboy6148 |
深入面向物件和陣列 | javaboy8200 |
Java 常用類詳解 | javaboy4105 |
Java 集合與資料結構 | javaboy2062 |
Java 資料結構和演算法 | javaboy6184 |
Java IO 流全解析 | javaboy8209 |
Java 網路程式設計 | javaboy6166 |
Java 異常機制解析 | javaboy6157 |
深入理解 Java 多執行緒 | javaboy4114 |
手動開發一個 Web 伺服器 | javaboy2071 |
獨立開發 SORM 框架 | javaboy8227 |
深入理解 Java 註解+反射 | javaboy8218 |
Java 23 種設計模式 | javaboy4123 |
學會 Java 正則表示式 | javaboy6175 |
JDBC 詳解 | javaboy2080 |
深入理解 Java 虛擬機器 | javaboy2089 |
Java 解析XML檔案 | javaboy8236 |
IntelliJIDEA 視訊教程 | javaboy4285 |
Java 程式設計規範 | javaboy4222 |
除此之外,我再推薦一門免費的公開課《老九零基礎學程式設計系列之 Java 入門》,網易雲課堂上可以直接觀看。主講人徐嵩的授課風格非常風趣,聽起來很過癮,我最近沒事的時候就看一集,回味一下當初學 Java 時沒有視訊資料的苦澀。
看視訊和看書的體驗完全不同,在我看來,通過視訊學習的好處主要有兩點:
視訊中講的東西比較形象,有一種身臨其境的感覺。
視訊有一種你看不到的魔力,可以提高你學習的自主性。
03、Spring
Spring 目前在 Java 開發中佔據了重要的一環,可以說是密不可分。毫不誇張的說,不會 Spring,絕對算不上一名合格的 Java 開發人員。Spring 的核心概念是 IOC(控制反轉)和 AOP(面向切面程式設計),這兩個概念掌握了,再學習 Spring 的其他衍生專案就會容易許多。
學習 Spring 的入門書,我推薦《Spring 實戰》,這本書學起來很快,並且書中提供的案例都很容易上手,順著敲一遍。Spring MVC、Spring Boot、Spring Cloud 是工作當中最常用的三塊內容,幾乎每一個成熟的正式專案都會用到其中之一,所以很有必要再花 2 個月的時間去入門一下。
04、其他知識
要想學好 Java,還有一些知識需要掌握,比如說 MySQL、MyBaits,只有和資料庫打通,才算是打通了任督二脈。學習 MySQL 的話,推薦《高效能 MySQL》,很經典的一本書;學習 MyBaits 的話,直接看官方文件就夠了。算下來的話,還需要再花 1 個月的時間入門。
05、實戰演練
花了 5 個月的時間好不容易入了門,接下來就需要一個實戰專案鞏固下。這裡我推薦好朋友江南一點雨的《微人事》,GitHub 上已經開源,搜尋關鍵字“vhr”即可。這個開源專案很容易上手,文件也很全面,目前標星已經 1 萬多了,非常受歡迎。
這個專案學下來,預計還需要 1 個月的時間,你已經算是一名合格的 Java 程式設計師了。
06、犯錯犯錯再犯錯
一定要敲程式碼,在敲的過程中肯定會出錯。不管你是在看書,或者文章,還是視訊,你覺得作者說得好像挺簡單的,以為看過一遍後自己也理解了。當往往不是這樣的,程式在敲的過程中會發生許許多多意想不到的問題,有時候作者限於篇幅的原因,往往會選擇性地跳過一些細枝末節,但這些對於程式設計的初學者來說,往往很難駕馭。只有經過自己的手敲出來,才能證明真的是會了,懂了。
不是有那句俗話嘛,“當局者迷旁觀者清”,如果你站在讀的角度,就會很容易自欺欺人;但如果自己親自實操的話,就完全不一樣了,不僅印象深刻,還為以後的覆盤做好了備份。在敲的過程中,最好把自己認為經典的案例分門別類,放到 GitHub 上或者碼雲上,等到以後再用的時候,也好找——書到用處方恨少,程式碼也是。
出錯了沒關係,把錯誤解決掉的過程中你能聽到自己成長的聲音,就好像雨後春筍一樣。沒有出錯的同學要麼是天才,要麼就是蠢材(複製貼上)。
07、最後
按照我說的方法,頂多半年時間,就可以打好很堅實的 Java 基礎了。如果你在學習的過程中遇到問題,也歡迎隨時和我交流。切記,要堅持,三天打魚兩天晒網只會打不到魚還會弄破了網。
怎麼樣?這篇文章絕對值得點贊和收藏吧?趕緊行動起來!