通往大師的Java學習路線

banq發表於2019-01-04

這條道路始於每天編寫程式碼,練習和學習一點理論。第一個重要的步驟是練習Java Core。這一步是關鍵,由幾個層次組成(見下文);第二步是學習每個現代軟體開發人員應該知道的不同技術;第三步成為高手。

第一步:Java Core +

零級:Java語法
這就像學習Java的“ABC”一樣,在練習期間,您逐步吸收Java語法。
主題:

  • 什麼是物件
  • 什麼是類
  • 什麼是方法
  • 原始型別
  • 型別字串
  • 基本操作員
  • Java if-else語句
  • 迴圈語句(for,while)
  • 陣列

第1級:OOP
OOP不是世界上最難的話題,但它非常重要。閱讀和實踐OOP原則非常重要。
類繼承,介面實現,資料和行為的抽象,資料和類實現的封裝,多型和虛擬方法都是關鍵主題。練習概念和閱讀書籍(例如,Cay Horstmann,Gary Cornell Core Java, McLaughlin 的物件導向分析和設計)。

第2級:Java集合
可以將一組單個物件稱為一個集合,Java提供了Collection Framework,它定義了幾個類和介面,將一組物件表示為一個單元。透過Java Collections介面(java.util.Collection)和Map介面(java.util.Map)學習資料結構。您可以將它們稱為Java集合類的兩個主要“根”介面。

第3級:Java異常
異常(或異常事件)是在程式執行期間出現的異常情況。這種機制大大簡化了程式中的錯誤捕獲。所有異常類都是類的子型別,java.lang.Exception每個Java學生都應該非常瞭解它。

第4級:輸入/輸出流
Java透過Streams執行輸入和輸出操作。您可以想象一個像連續資料流一樣的流。對於初學者來說,這個主題可能會有問題。作為學習這個主題的獎勵,你會發現System.out.println()真正隱藏的意義。

第5級:演算法和謎題
演算法怎麼樣?關於學習如何編碼排序或搜尋演算法的價值常常存在爭議。在研究集合和資料結構期間,您將瞭解有關排序/搜尋方法的資訊。Java和大多數語言都有庫,其中包含用於排序和搜尋的所有已知演算法的實現。這意味著它們已經編寫供您使用。那麼你(或者不應該)擔心學習如何編碼它們嗎?
我更喜歡的答案是 - 你應該學習它,以便知道如何像軟體工程師一樣更好地思考。建立自己的演算法實現以及理解其複雜性非常有用。特別是對於只在高中學過數學的人。
所有流行的排序和搜尋演算法都在網路上多次描述和解決。因此,您不需要驗證器進行驗證。選擇任何課程,例如普林斯頓大學或CS50或Youtube影片,並嘗試編寫您自己的版本。
謎題或非標準型別的Java任務怎麼樣?它們對任何編碼器都​​非常有幫助,因為你被教導如何解決困難和模糊的問題。

第6級:Java多執行緒
零級之後的每個人都可以編寫一個顯示“Hello World”的程式,但是如果你應該使用Java Thread API這樣做,那麼這個著名的短語是從另一個執行緒列印出來的?如果程式應該從五個不同的執行緒列印“Hello world”五次,而沒有交替的字串。多執行緒即使是最簡單的任務也很困難,並且是一個高階Java主題。

第7級:Java模式​​​​​​​
在這個級別上,你會知道你可以編寫一些程式。它們足夠好嗎?它們看起來像專業程式碼嗎?要像專業人士一樣編寫程式碼,您必須首先學習設計模式。它們代表了有經驗的軟體開發人員使用的最佳實踐 設計模式解決了軟體開發人員在開發過程中遇到的許 選擇這些模式是許多軟體開發人員在相當長一段時間內反覆試驗的結果。

第8級:單元測試
對於將單元測試編寫到自己的程式碼中的任何程式設計師來說,這是一項重要技能。當您弄清楚如何編寫測試時,您應該將此作為習慣應用於您的所有專案。單元測試比使用控制檯輸出進行檢查更有用。單元測試也是公司通常信任新開發人員編寫的第一件事。

第9級:lambdas
Java 8中支援lambda表示式,但並非所有程式設計師都採用它們。然而,今天“Java J基礎任務”的概念包括使用lambda表示式的操作,所以我建議也學習它們。

第10級:JSON,RMI,HttpUrlConnection,socket中的序列化​​​​​​​
這些主題適用於更多中級和高階Java開發人員。他們需要更深入的知識,並作為他們自己的專案,實習和工作的橋樑。


第二步:附加元件
Java開發人員不僅使用Java,還使用許多不同的技術。其中一些成為每個IT人員的標準。但是,這並不意味著您必須將這些技術深入瞭解Java Core。稍微瞭解一下,其中一些你會在工作或實習期間找到更好的。
Git是最廣泛使用的版本控制系統,用於跟蹤計算機檔案中的更改並協調多個人之間的這些檔案的工作。因此,如果您想成為一名專業程式設計師,那麼理解Git是一項要求。幾乎每家軟體公司都使用它。
JavaScript是一種跨平臺,物件導向的指令碼語言可以在任何Web瀏覽器中找到。JavaScript可以連線到其環境的物件,以提供對它們的程式設計控制。所以JavaScript無處不在,即使你不想作為前端開發人員工作,“JavaScript”這個詞對你的簡歷也是一個很好的補充。
SQL在維基百科定義為“結構化查詢語言是一種特定於域的語言,用於程式設計,用於管理關聯式資料庫管理系統(RDBMS)中的資料,或用於關係資料流管理系統(RDSMS)中的流處理。”它是在初學者級別上很容易學習它。幾乎每個程式設計師都在某個時候使用過SQL。

第三步:成為高手
大多數Java開發人員在兩個領域工作,即移動技術或企業專案。在獲得前兩個步驟的核心知識後,我們分成兩個不同的分支。我們不會詳細討論它們,但每個分支都應該有一篇特別的文章。簡而言之:

移動技術:
Java知識為您開啟了Android開發世界。開始學習Android程式設計的好地方:Google Developers Training

企業技術:
這包括一堆難以自學的技術。找到課程或實習會好得多。瞭解Spring是有益的,它是最流行的Java框架,Hibernate是一個物件關係對映工具以及其它相關技術。

​​​​​​​

 

相關文章