Java 學習路線之四個階段

dotzhang發表於2018-05-18

給想要學習Java的同學一些參考

寫這篇總結,主要是記錄下自己的學習經歷,算是自己對知識的一個回顧。也給想要學習 Java 的提供一些參考,對於一些想要學習Java,又不知道從哪裡下手,以及現在有哪些主流的 Java 技術。想必大家學習一門技術,前期都很想看到一些結果或成就,這樣就比較容易激勵自己學習下去,最好的辦法就是實踐,實踐,實踐!先說明一下我的情況,我是從大二才開始接觸 Java,然後自己摸索,期間真是摸打滾爬過來的。選的是計算機專業,大一的時候還沒有自己的筆記本,所以都是聽課過來的,瞭解了一些概念性的東西,課上老師也有演示過一些程式,懂得思考之後,發現計算機有很多有趣的地方,比如想知道這個東西是如何實現的,為什麼會出現這些東西。真不是知道當初天天打遊戲的時候,為什麼沒有發現,要是發現的話,現在說不定早就那啥那啥了。到了大二的時候自己有了筆記本之後,就開始自己摸索,很好奇自己當初拿到筆記本竟然沒有去打遊戲,而是用來學習。下面開始說正事。

選語言

開始學習的時候,經過自己搜尋之後,發現有很多種語言,自己完全處於懵逼狀態,不知道選哪個,也不知道每種語言都可以用來幹什麼,後來經過學長的指點還有身邊的人都說 Java 好,自己慢慢的就入坑了。在選擇要學習一門語言的時候,一定要選自己感興趣的,而且要有自己的目標,不然的話,後期很難堅持下來,除非你有很強的自律性。每個人前進都是有自己的驅動力,所以找到屬於自己的驅動力,才能保證你不斷的進步。

Java第一階段

剛接觸 Java 的時候,想必大家都是從環境配置開始的,這個裡面的坑想必大家都踩過。對於還沒有開始的同學,也有可能會經歷這個階段,說可能是因為現在的 Java1.6 之後安裝預設是加到環境變數裡面的,但是在安裝過程中有可能會出現一些意外情況,導致不能加入成功,這是就需要我們手動加入了。在這裡特說明下,在大學期間一定要把一些基礎的課程學好,比如:計算機系統、演算法、編譯原理等,這個對後期的學習會有很大的影響,最簡單的就是你在新增環境變數的時候,為什麼要把路徑新增到 Path 下面,而不是新增到其它下面,計算機是如何去識別訪問這些東西。

我一開始學習 Java 的時候,是學長分享的視訊,這個視訊的好處就是在學習 Java 基礎的時候,完全脫離一些整合的工具,就是用編輯器(notepad++)寫好程式,手動通過命令列去編譯,再執行,讓你能夠了解其中的原理,以及鍛鍊自己的動手能力。如果一上來就上你用 Eclipse 或者其它工具,把一些底層的東西遮蔽掉,開始學習的時候大家可能連 class 檔案都沒有見過,只是知道寫了這行程式碼,執行之後它會出來什麼結果。

這裡給出我當初學習的視訊,有點老但是基礎知識都是一樣的。學習 Java 基礎知識的時候,應該多動手,多思考,很多時候,你想當然的事情,等你寫出來執行一下,你就會發現不是這麼一回事,不信你就試試。在學習視訊的時候,有兩種學習方法建議:方法一先把視訊過一篇,在看視訊的時候,記下知識點,看完視訊之後,自己對著知識點,自己敲程式碼實現,實在想不出來的,回過頭來在看視訊。方法二邊看視訊邊跟著敲程式碼,這樣會比第一種方法相對容易一些,但是如果是這種方法學習的話,要記得回頭多複習,不然很容易忘記。兩種方法各有好處,第一種方法一開始學習比較慢,但是後面基礎有了之後,就會上手很快,而且記得很牢固。第二種方法比第一種方法花的時間要相對的少一些,所以需要我們反覆的去回顧。學習完以上內容之後,你應該對 Java 有了一定的瞭解,你可以使用 Java 語言寫出來一些簡單的程式,並且是使用最簡單的編輯器。這個時候,可以不用著急進入下個階段,給自己一兩天的時間,對學習過的知識進行下總結。

在學習的過程中,你應該注重下面這些知識點,由於是自己總結的,有可能會有不對的地方,若有不對之處,還請指出。

知識點梳理:

概念:物件導向的三大基本特徵五大基本原則(當初讓學長考我的時候第一個問的就是這個)、物件導向、程式導向、什麼是多型、什麼是繼承、什麼是封裝。

集合:Collection 集合、List 集合、Set 集合、Map 集合

異常:Java 中異常處理機制和應用,自定義異常

IO:File 類,字元流、位元組流、轉換流、緩衝流、遞迴

網路程式設計:Socket

執行緒:執行緒的生命週期,Java 執行緒池,執行緒同步問題,執行緒死鎖問題

繼承和介面:Class,Interface

反射:動態代理

Mysql 和 JDBC 開發:Mysql 資料庫,JDBC,DBUtils,DBCP連線池

書籍推薦:Head First Java, Java核心技術

視訊獲取:後臺回覆「javaweb學習資料」包含後面三個階段。

Java 第二階段

Java 基礎學習完之後,我是開始學習 Javaweb,在一開始的幾天比較迷茫,因為感覺自己寫的東西沒有用處,比如寫個計算器什麼的,生活中沒有什麼用,可能是太過於看結果導致的。這個時候應該去做一些有趣的事情,學習新的知識,開發新的大陸,這就是我們的 Web 開發了,主要包括前端頁面(HTML/CSS/JS),Servlet/JSP,以及 Mysql 相關的知識。這些視訊在上面分享的視訊裡面已經包括了。

關於頁面,這些內容對於 Java 後端來說,不是特別重要,但是你應該儘自己的最大能力讓它漂亮,最起碼可以入眼,這樣的話,頁面就不是什麼問題了。接下來,就是學習的重頭戲了,學習 Servlet/JSP 部分,這也是 Java 後端開發必須非常精通的部分,在學習 Web 這三部分的時候,這個部分是最花時間的。這個階段學習的時候,要學會使用開發工具,比如 Eclipse 或者 IDEA 來學習。最後一部分,你就要學會使用資料庫,Mysql 資料庫是不錯的入門選擇,而且 Java 領域主流的關係型資料就是 Mysql,這部分其實你在學習 JDBC 的時候,就會接觸到,因為 JDBC 也是屬於資料庫的一部分。不僅要學會使用 JDBC 操縱資料庫,而且還要學會使用資料庫客戶端工具,比如 sqlyog,navicat 等。

知識點梳理:

前端技術:HTML、CSS、JS、JQuery、Bootstrap

JavaWeb 核心內容:Servlet、JSP、XML、HTTP、Ajax、過濾器、攔截器等

Mysql 和 JDBC:複習

推薦書籍:相關的 Web 書籍都可以,可以順帶著看 Java 程式設計思想

Java 第三階段

這個階段是在你掌握第二階段之後開始,如果學習了第二個階段之後想找工作的話,還需要在學習一些主流的框架知識。目前比較主流的框架是 SSM 框架,既 Spring,SpringMVC,Mybatis。要學會這些框架的搭建,以及用它們作出一個簡單的 WEB 專案,包括增刪改查的功能。在這裡一開始,你可以不用太去關心那些配置檔案,以及為什麼會這樣配置,這個可以留到後面慢慢了解,開始的時候先讓自己有個體驗,激勵自己學習的動力。

搭建這三個框架的時候,一定要記錄自己搭建的過程,這個在你工作之後肯定會用到的。在搭建的過程,我們通過網上查詢資料或是跟著視訊學習,都會接觸到 Maven 這個工具,這個工具在你工作之後,也一定會用到的,可以順帶著瞭解,你不一定要去完全掌握,只要學會使用,知道基本原理就可以。學會使用之後,自己要跟著老師或者從網上去理解更多的東西,比如那些配置檔案等。

知識點梳理:

Spring 框架:配置檔案、IoC 思想、DI 依賴注入、面向切面程式設計、事務等。

SpringMVC:框架原理、互動、攔截器等。

Maven:安裝使用、基本操作。

Mybatis:框架原理、Mybatis 開發 DAO 方式、與其它框架的整合。

推薦書籍:Spring 實戰,Effective Java,Java 程式設計思想

Java 第四階段

這個時候相信你已經能夠完成獨立開發,並且也工作了,對付工作上面的時候,你的技術一定是可以的。但是這個時候不要對自己進行鬆懈,你要繼續學習,而不是工作只是為了應對工作,你應該提升自己的價值。這個時候可以去看一些比較底層的書籍,比如《深入理解Java虛擬機器》,這本書就是全面幫助你瞭解 Java 虛擬機器,這個時候想必你一定知道 Java 是執行在 JVM 上的,你沒有任何理由不去了解 JVM。另外,關於併發這方面,推薦《Java併發程式設計實戰》,這本書啃完之後,對併發的理解應該有一定的體會了。

這個階段要做的遠不止這些,我們要去思考我們之前使用的那些框架是怎麼回事,以及閱讀 Java 經典的一些原始碼,看懂原始碼的前提,就是你已經有了一定的基礎,當然有基礎也不一定一下子就能看懂,看不懂就要去思考,在看原始碼的過程中,你可能有各種各樣的疑問,有疑問就是對的,問自己最多的應該是這裡問什麼會這樣寫,而不是那樣寫吧。這個階段需要自己對自己有很強的自律去學習,不要看了一半就放棄了。學會看原始碼之後,自己可以嘗試著模仿別人寫的比較好的開源專案,造屬於自己的輪子,雖說不一定有用,但是對提升自己有一定的好處。

如果你想成為優秀的人,你就要「能別人不能」,也就是說你要找到屬於自己的一個領域研究下去,以期在將來,你能夠成為這個領域的專家,建立起你的差異性。

最後,請記住,從你入行那一刻起,你就要比別人努力,就要不停的學習。每個人在學習的過程中都有自己的一種方式,在學習的過程中,要學會自己去判斷。其實生活中也是一樣的,你身邊的人形形色色,有的人你喜歡,有的人你討厭,但是你喜歡的人身上也有缺點,你討厭的人身上也有其優點,這個時候你要學會從他們身上學習他們的優點,讓自己變的更優秀。

PS:如果覺得文章不錯的話,還請大家點贊分享下,算是對我的最大支援。 enter image description here

相關文章