1. 程式人生 > >如何快速打好Java基礎?

如何快速打好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 基礎了。如果你在學習的過程中遇到問題,也歡迎隨時和我交流。切記,要堅持,三天打魚兩天晒網只會打不到魚還會弄破了網。

怎麼樣?這篇文章絕對值得點贊和收藏吧?趕緊行動起來!