Java学习路线以及方法推荐
大一的時候,我僅僅接觸過 C 語言,對 C 語言的掌握程度僅僅是可以完成老師布置的課后習題。那時候我的主要的精力都放在了參加各種課外活動,跟著一個很不錯的社團嘗試了很多我之前從未嘗試過的事情:露營、戶外燒烤、公交車演講、環跑古城墻、徒步旅行、異地求生、圣誕節賣蘋果等等。
到了大二我才接觸到 HTML、CSS、JS、Java、Linux、PHP 這些名詞。最開始接觸 Java 的時候因為工作的需要我選擇的安卓方向,我自己是在學習了大概 3 個月的安卓方向的知識后才轉向 Java 后臺方向的。最開始自己學習的時候,走了一些彎路,但是總體路線相對來說還是沒問題的。我讀的第一本 Java Web 方向的書籍是《Java Web 整合開發王者歸來》,這本書我現在已經不推薦別人看了,一是內容太冗雜,二是年代比較久遠導致很多東西在現在都不適用了。
很多人在學完 Java 基礎之后,不知道后面該如何進行下一步地進行學習,或者不知道如何去學習。如何系統地學習 Java 一直是困擾著很多新手或者期待在 Java 方向進階的小伙伴的一個問題。我也在知乎上回答了好幾個類似的問題,我覺得既然很多人都需要這方面的指導,那我就寫一篇自己對于如何系統學習 Java 后端的看法。剛好很多朋友都是學 Java 不太久的,希望這篇文章對學習 Java 的朋友能有一點啟示作用。
由于我個人能力有限,下面的學習路線以及方法推薦一定還有很多欠缺的地方。歡迎有想法的朋友在評論區說一下自己的看法。本文適合剛入門或者剛入門不久的朋友,比較基礎。
學習路線以及方法推薦
下面的學習路線以及方法是筆主根據個人學習經歷總結改進后得出,我相信照著這條學習路線來你的學習效率會非常高。?建議使用 Intellij IDEA 進行編碼,可以單獨抽時間學習 Intellij IDEA 的使用。
step 1:Java 基礎
《Java 核心技術卷 1/2》?和?《Head First Java》?這兩本書在我看來都是入門 Java 的很不錯的書籍 (《Java 核心技術卷 1/2》?知識點更全,我更推薦這本書),我倒是覺得《Java 編程思想》有點屬于新手勸退書的意思,慎看,建議有點基礎后再看。你也可以邊看視頻邊看書學習(尚學堂(推薦高淇300集)、黑馬、尚硅谷、慕課網的視頻都還行)。對于 Java8 新特性的東西,我建議你基礎學好之后可以看一下,暫時看不太明白也沒關系,后面抽時間再回過頭來看。
看完之后,你可以用自己學的東西實現一個簡單的 Java 程序,也可以嘗試用 Java 解決一些編程問題,以此來將自己學到的東西付諸于實踐。
記得多總結!打好基礎!把自己重要的東西都記錄下來。?API 文檔放在自己可以看到的地方,以備自己可以隨時查閱。為了能讓自己寫出更優秀的代碼,《Effective Java》、《重構》?這兩本書沒事也可以看看。
step 2:多線程的簡單使用
多線程這部分內容可能會比較難以理解和上手,前期可以先簡單地了解一下基礎,到了后面有精力和能力后再回來仔細看。推薦《Java 并發編程之美》?或者?《實戰 Java 高并發程序設計》?這兩本書。
Java 多線程知識基礎:
Java 多線程知識進階:
step 3(可選):操作系統與計算機網絡
操作系統這方面我覺得掌握操作系統的基礎知識和 Linux 的常用命令就行以及一些重要概念就行了。
對于 Linux 我們要掌握基本的使用就需要對一些常用命令非常熟悉比如:目錄切換命令、目錄操作命令、文件的操作命令、壓縮或者解壓文件的命令等等。
計算機網絡方面的學習,我覺得掌握基本的知識就行了,不需要太深究,一般面試對這方面要求也不高,畢竟不是專門做網絡的。推薦?《網絡是怎樣連接的》?、《圖解 HTTP》?這兩本書來看,這兩本書都屬于比較有趣易懂的類型,也適合沒有基礎的人來看。
step 4(可選):數據結構與算法
如果你想進入大廠的話,我推薦你在學習完 Java 基礎或者多線程之后,就開始每天抽出一點時間來學習算法和數據結構。為了提高自己的編程能力,你也可以堅持刷?Leetcode。就目前國內外的大廠面試來說,刷 Leetcode 可以說已經成了不得不走的一條路。
對于想要入門算法和數據結構的朋友,建議看這兩本書?《算法圖解》?和?《大話數據結構》,這兩本書雖然算不上很經典的書籍,但是比較有趣,對于剛入門算法和數據結構的朋友非常友好。《算法導論》?非常經典,但是對于剛入門的就不那么友好了。
另外,還有一本非常贊的算法書推薦給各位,這本書的名字就叫《算法》,書中的代碼都是用 Java 語言編寫。這本書的優點太多太多比如它的講解基礎而全面、對閱讀者比較友好等等。我覺得這本書唯一的缺點就是太厚了 (小聲 BB,可能和作者講解某些知識點的時候優點啰嗦有關)。除了這本書之外,《劍指 offer》?、《編程珠璣》?、《編程之美》?這三本書都被很多大佬推薦過了,對于算法面試非常有幫助?!端惴ㄖ馈?這本書也非常不錯,非常適合閑暇的時候看。
算法(第4版)作者:[美] Robert Sedgewick,[美]Kevin Wayne
step 5:前端知識
這一步主要是學習前端基礎 (HTML、CSS、JavaScript),當然 BootStrap、VUE 等等前端框架你也可以了解一下。網上有很多這方面資源,推薦先把 HTML、CSS、JS 的基礎知識過一遍,然后通過一個實際的前端項目來鞏固。
step 5:MySQL
學習 MySQL 的基本使用,基本的增刪改查,SQL 命令,索引、存儲過程這些都學一下吧!推薦書籍?《SQL 基礎教程(第 2 版)》(入門級)、《高性能 MySQL : 第 3 版》(進階)、《MySQL 必知必會》。
step 6:Maven
建議學習常用框架之前可以提前花半天時間學習一下Maven的使用。(到處找 Jar 包,下載 Jar 包是真的麻煩費事,使用 Maven 可以為你省很多事情)
step 7:常用框架
學習 Struts2(可不用學)、Spring、SpringMVC、Hibernate、Mybatis、shiro?等框架的使用, (可選) 熟悉?Spring 原理(大廠面試必備),然后很有必要學習一下?SpringBoot。我也遇到很多公司對于應屆生直接上手SpringBoot,不過我還是推薦你把?Spring、SpringMVC?好好學一下。
Spring 真的很重要!?一定要搞懂 AOP 和 IOC 這兩個概念。Spring 中 bean 的作用域與生命周期、SpringMVC 工作原理詳解等等知識點都是非常重要的,一定要搞懂。
推薦看文檔+視頻結合的方式,中途配合實戰來學習。
step 8:高性能網站架構
學習?Dubbo、Zookeeper、常見的消息隊列(比如ActiveMq、RabbitMQ)、Redis、Elasticsearch?的使用(這些東西可以通過視頻最后一個分布式項目來學,邊看視頻,邊自己做,查閱網上博客,效果更好)。
一定要學會拓展知識,養成自主學習的意識。
step 9:其他
可以再回來看一下多線程方面的知識,還可以利用業余時間學習一下?NIO?和?Netty?,這樣簡歷上也可以多點東西。如果想去大廠,JVM?的一些知識也是必學的(Java 內存區域、虛擬機垃圾算法、虛擬垃圾收集器、JVM 內存管理)推薦《深入理解 Java 虛擬機:JVM 高級特性與最佳實踐(最新第二版》和《實戰Java虛擬機》,如果嫌看書麻煩的話,你也可以看我整理的文檔:。
另外,現在微服務特別火,很多公司在面試也明確要求需要微服務方面的知識。如果有精力的話可以去學一下SpringCloud生態系統以及其他微服務常用框架。
總結
我上面主要概括一下每一步要學習的內容,對學習規劃有一個建議。知道要學什么之后,如何去學呢?我覺得學習每個知識點可以考慮這樣去入手:官網(大概率是英文,不推薦初學者看)、書籍(知識更加系統完全,推薦)、視頻(比較容易理解,推薦,特別是初學的時候)、網上博客(解決某一知識點的問題的時候可以看看)。
這里給各位一個建議,看視頻的過程中最好跟著一起練,要做筆記!!!?最好可以邊看視頻邊找一本書籍看,看視頻沒弄懂的知識點一定要盡快解決,如何解決?首先百度/Google,通過搜索引擎解決不了的話就找身邊的朋友或者認識的一些人。另外,一定要進行項目實戰!很多人這時候就會問沒有實際項目讓我做怎么辦?我覺得可以通過下面這幾種方式:
做項目不光要做,還要改進,改善。另外,如果你的老師有相關 Java 后臺項目的話,你也可以主動申請參與進來。
一定要學會分配自己時間,要學的東西很多,真的很多,搞清楚哪些東西是重點,哪些東西僅僅了解就夠了。一定不要把精力都花在了學各種框架上,算法和數據結構真的很重要!
轉載于:https://www.cnblogs.com/tqtz777/p/10905345.html
總結
以上是生活随笔為你收集整理的Java学习路线以及方法推荐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英文参考文献的正确引用格式详解
- 下一篇: Java实现OPC UA Client直