java路線圖


在網上看到很多關於java入門的問題和指導。不過大多都是基於編程角度或者是僅僅為了編程。對於有志於程序員職業的愛好者來說,完整的全局觀還是比較重要的。下面翻譯了外網一位長期java工作者的文章,希望對大家Java學習有幫助。
我從許多讀者那里收到的要求之一就是創建Java開發人員路線圖。由於Java是我的專長,因此創建Java開發人員路線圖不是問題,但是由於時間有限,我花了更長的時間來創建一個Java開發人員路線圖。無論如何,我終於准備好與您分享我的Java開發人員RoadMap。該路線圖包含了我多年的經驗以及成為Java專家的通暢路線。它回答了許多緊迫的問題,例如Java開發人員應該學習哪些技術? 哪些工具使您成為更好的Java開發人員?而且,Java開發人員必須絕對學習哪種框架

我嘗試使用此路線圖的一件事是,為了使曝光時間盡可能短,避免提及許多替代方法,尤其是在涉及庫和工具時,並堅持使用行業標准的工具和庫。
我將其簡化以使大多數人都可以遵循它,並且只包含必要的內容,但是如果有足夠的願望,我正在考慮發布Java開發者RoadMap 2.0,以添加一些高級的東西,例如JVM內部結構,性能分析, Java 9模塊,Cloud Native Java,不同的雲平台(例如AWS,GCP或Azure)以及更高級的工具(例如Chef for DevOps)等等。


任何Java開發人員的必備技能
1. Git&Github
最受歡迎的版本控制系統之一。沒有Git就不可能再生活了。您可以上查看 《 Git教程》。
2. Linux
不僅僅是Web開發人員,對於任何程序員而言,Linux命令行都非常非常重要,我強烈建議您花一些時間來學習它們。您可以使用這些免費的Linux課程 來開始學習Linux。
3.數據結構和算法
這些是任何程序的組成部分,對算法和數據結構的充分了解對於您的下一份工作或在當前情況下表現出色至關重要。
您至少應該熟悉基本的數據結構,例如數組,鏈表,哈希表,二叉樹,隊列,堆棧和圖。
如果您知道Trie,B-Tree,AVL樹之類的高級數據結構,那就好了。但是,如果您不知道,那么我建議您參加一門綜合課程,例如“ 數據結構和算法:使用Java深入學習”,該課程將教您所有這些基礎知識。
4. HTTP / HTTPS
HTTP協議是Web的基礎,並且Web開發人員必須具備HTTP和HTTPS的良好知識。7
5計算機科學基礎
如果創建的全球應用程序以世界上許多不同的語言顯示信息,那么您應該對字符編碼有所了解。它基本上告訴您的瀏覽器如何顯示數據。
6.設計模式
毫無疑問,每個程序員都應該了解Git和Github,因為它們是版本控制和代碼存儲庫的標准。如果您想了解和掌握Git和Github上,你可以檢查這個列表的書籍和課程學習設計模式。


完整的Java開發人員路線圖
現在,讓我們一起探索這個Java開發人員路線圖,並找出可以學習哪些工具,框架,庫,API。

現在,讓我們一起探索這個Java開發人員路線圖,並找出可以學習哪些工具,框架,庫,API。

1.工具

工具部分分為不同的部分。首先,您的IDE是您的主要工具,它幾乎可以完成您所要求的一切,例如編譯,運行,調試,分析,測試,比較文件和代碼,重構等等。
第二部分是構建工具,您需要它來構建和部署Maven和Gradle之類的項目。任何人都足夠了。我剛剛列出了ANT,但這是針對舊項目的。對於所有新的Java項目,更喜歡Maven或Gradle。
而且,最重要的第三部分包括Docker和Kubernetes等容器 ,Jenkins和TeamCity等CI / CD工具以及Ansible等基礎設施自動化工具。
如果您有興趣學習這些工具,這里有一些有用的課程來學習構建工具和IDE。

· 面向Java開發人員的5門學習Apache Maven的課程

· 5門學習IntelliJIDEA的課程

· 5門免費課程,學習Eclipse IDE

· 學習Docker和Kubernetes的5大課程

· 學習Jenkins CI / CD的前5門課程

· 學習Ansible服務器自動化的5大熱門課程

2. JDK API

下一個要學習的重要事情是JDK API,這對於任何Java開發人員來說都非常非常重要。這是一個很大的部分,這就是為什么將其划分為諸如Java Collections框架,Java Concurrency,Java IO和Java 8 API之類的核心領域的原因,讓我們對其進行探索

2.1 Java集合框架

這是每個Java開發人員都應該學習的最重要的Java API之一。該API在類似Java的鏈表,集合,堆棧,隊列,哈希表,優先級隊列等中提供了標准數據結構的實現。
至少您應該了解所有日常對象,例如ArrayList,HashMap,HashSet, LinkedHashSet,TreeSet等。它們每個都有其不同的屬性,例如ArrayList是可以增長的動態數組,HashMap是哈希表的標准實現,並且可以用於存儲鍵值對。
同樣,HashSet是一個設置實現,不允許重復的元素。我強烈建議您查看 Java基礎知識:集合 Richard Warburton在Pluralsight上開設的課程,以深入學習Java Collection Framework。

 

 

2.2 Java並發

在Java Collections之后,Java中下一個最關鍵的API是關於多線程和並發的,我堅信,如果您想成為一名合格的Java開發人員,必須對Java Concurrency API有扎實的理解和掌握。
您不僅應該對諸如線程,可運行,對象鎖定和同步之類的基本概念有深入的了解,而且還應該熟悉諸如死鎖,活動鎖,爭用條件以及如何處理它們的概念。
您還應該了解高級Java概念,例如在Java 5及其后續版本中添加的同步器,我的意思是CyclicBarrier,CountDownLatch,Phaser和CompleteableFuture等,以及Futures,以及如何在Java中執行異步操作。
我知道,這是很多東西,這就是為什么我建議您加入深入的課程,例如Heinz Kabutz的Java Concurrency in Practice捆綁包,Java Champion,以及有關並發和設計模式的權威。這門課程有點貴,但是您將深入學習更多的概念,這完全值得您花費時間和金錢。

 

 

2.3 Java IO

我采訪了100多個Java程序員,並且注意到一種模式。與Java Collections和Java Multithreading API相比,他們對Java IO和NIO API的了解很少。我可以理解,很多人花費大量時間來學習這兩個API,但是您不能忘記這個關鍵的API。
如果必須編寫真實的核心Java應用程序,則需要使用包中的File,InputStream,OutputStream,Reader和Writer之類的類,這是Java IO API的核心。同樣,您還需要從java.nio了解ByteBuffer,FileChannel,Selector和其他關鍵類。API,如果要編寫基於套接字的應用程序。
不幸的是,關於教授Java IO和Java NIO API的資源並不多,但是Complete Java Masterclass 是掌握此API的絕佳資源。在本課程中,您將從此API中找到很多基本概念。

 

 

2.4 Java 8功能

現在,下一個也是另一個必需的API(Java程序員)應該學習的是Java 8功能,它已經完全改變了如今Java的編碼和編程方式。要在2020年成為Java開發人員,您必須知道如何使用Lambda表達式,Stream API,Optional類和新的Date and Time API。
如果不了解這些API,那么在2020年編寫Java應用程序將非常困難。現在,大多數庫也停止支持低於Java 8的版本,這意味着您必須現在就學習Java 8功能。自Java 8發布以來已經有5年了,所以您幾乎沒有任何借口。
在學習Java 8功能時,市場上有許多出色的資源。不過,如果您已經了解Java,建議您選擇只關注Java 8功能的資源,例如Pluralsight 上Java 8 的新功能課程。這樣,您可以立即學習Java 8。

 

 

盡管Java 8功能對於Core Java開發人員是必不可少的,但如果可以的話,請學習從Java 9到Java 13引入的所有其他新功能,例如模塊,用於局部變量的var,用於集合的靜態工廠方法,文本塊,Switch中的String以及許多更多。如果您需要資源,可以查看此課程列表以了解 2020年所有新的Java功能。

3.框架

關於Java的最好的事情是它擁有一個充滿活力的生態系統,這意味着幾乎所有東西都有很多框架和庫。通常,我不建議Java開發人員在需要在項目中使用它之前就學習一個框架。仍然有一些框架和庫,我相信每個Java開發人員都應該知道,例如Spring,Spring Boot,Hibernate,Log4j,JUnit等。

3. 1個Spring框架

如果您想在2020年成為Java開發人員,強烈建議您先學習Spring Framework。這是最流行的Java框架之一,從字面上看,過去五年來我工作的幾乎每個Java應用程序都使用此框架。
Spring Framework鼓勵編寫簡潔的代碼,通過為您提供諸如依賴注入和控制反轉之類的功能,易於測試和維護。它還具有用於大多數日常任務的豐富API,這就是每個Java開發人員都應該學習Spring框架的原因。
而且,如果您想學習Spring框架,沒有比Spring Framework 5:Beginner to Guru更好的課程了。它涵蓋了Spring 5,這是Spring 5的最新版本,並且以比其他任何課程都更加動手的方式教授Spring。

 

 

3.2休眠

我建議每個Java開發人員都學習的第二個框架是Hibernate,它基於JPA(Java持久性API)。准確地說,Hibernate早於JPA,但是由於JPA是用於在Java中實現持久層的標准API,因此Hibernate會實現它。
現在,為什么要學習休眠?好吧,因為您將使用的大多數Java應用程序都將與數據庫進行交互,並且使用JDBC且沒有像Hibernate這樣的適當框架來處理Java中的數據庫是一件非常痛苦的事情。
它提供了一些諸如開箱即用的緩存和事務之類的基本功能,這意味着您有更多的時間專注於應用程序邏輯,然后在應用程序中實現緩存。這嚴重提高了Java應用程序的性能,這是迄今為止使用Hibernate的最重要的理由。
現在,在學習Hibernate時,市場上有很多可用的資源,但是我更喜歡Spring&Hibernate初學者課程,因為您可以用一塊石頭殺死兩只鳥,您可以在一堂課中同時學習Spring和Hibernate。而不是為他們參加單獨的課程。

3.3 spring boot

這是我建議每個Java開發人員在2020年及以后學習的另一個框架。Spring Boot繼承了Spring的簡化哲學,並使其易於使用Spring本身。就像Spring使創建Java應用程序更容易一樣,Spring Boot使創建基於Spring的Java應用程序變得更加容易。
自動配置等功能消除了與配置Spring應用程序相關的大部分麻煩。同樣,入門POM功能將常用的依賴項分組為簡單的可重用POM。
現在,如果您想學習Spring Boot,我強烈建議您學習100 Steps課程中的Learn Spring Boot課程。它是最好,最新的工具之一,還提供了Spring Boot開發人員需要了解的日常操作的分步指南。

 

 

3.4 MicroProfile,Micronaut和Quarkus

雖然學習Spring Boot和Spring Cloud足以用Java開發微服務,但是您可以探索幾個更高級的框架,例如Eclipse Microprofile,Micronaut和Quarkus。
3.4.1 Eclipse Microprofile
這是一項旨在針對微服務架構優化Enterprise Java的計划。它由Eclipse驅動,Eclipse是Java的領先組織之一,並且是流行的Eclipse IDE背后的公司。Eclipse of MicroProfile的目標是定義用於構建微服務的標准API,並在多個MicroProfile運行時之間提供可移植的應用程序。Eclipse的Microprofile的當前版本的3.2,這是一個有用的Java框架,以學習在2020年
3.4.3 Micronaut
這是您可以在2020年學習的另一個Java框架。Micronaut是基於JVM的現代全棧框架,用於構建模塊化,易於測試的微服務和無服務器應用程序。它是一個多語言框架,允許您使用Java,Kotlin或Groovy創建應用程序。Micronaut的一些關鍵要點是減少啟動時間,超快的吞吐量和最小的內存占用。
3.4.3 Quarkus
Quarkus是為OpenJDK HotSpot和GraalVM量身定制的Kubernetes本機Java堆棧,它是從最佳Java庫和標准中精制而成的。Quarkus為GraalVM和HotSpot量身定制您的應用程序,從而獲得了驚人的快速啟動時間和極低的RSS內存(不僅僅是堆大小!)。
它還使用稱為編譯時啟動的技術在容器編排平台(如Kubernetes)中提供即時可伸縮性和高密度內存利用率。在為Quarkus開發應用程序時,也可以同時使用熟悉的命令式代碼和非阻塞式反應式。
簡而言之,這是Java開發人員創建應用程序的最佳平台之一,值得在2020年學習。

 

 

4.測試

測試是任何Java開發人員的一項基本技能,尤其是單元測試,集成測試和自動化測試。至少,每個Java開發人員都應該熟悉JUnit和Mockito,這兩個是最受歡迎的單元測試和Mock庫。
如果您知道這兩個並知道如何使用它們來有效地創建單元測試,那么與沒有它們相比,您將是一個更好的Java開發人員。
還存在更高級的庫,例如用於業務驅動的測試的Cucumber,用於集成測試的Robot Framework,但沒有JUnit的替代品,您將始終需要它。
當涉及到一個模擬庫時,您有兩個選擇,例如PowerMock,Mockito和EasyMock。盡管如此,我還是強烈建議您學習Mockito,因為它是一個龐大的庫,並且許多Java開發人員和公司也在這樣做。它正逐漸成為在Java中創建模擬對象的標准庫。
如果您想學習JUnit和Mockito,我已經分享了很多資源,例如書籍和課程,您可以檢查這些資源以了解更多信息。

5.實用程序庫

Java的真正功能在於其充滿活力的開源庫生態系統。您會發現從Java日志到機器學習,從發送HTTP請求到解析JSON等等,庫幾乎可以完成Java的所有工作。
除此之外,Java還幸運地擁有實用程序庫,例如Apache Commons和Google Guava,這兩個庫有效地補充了JDK庫。我還為Java開發人員共享了20個Java API和庫的列表。
我建議您仔細檢查一下清單,很可能您已經是清單的一半,但是如果您不學習它們,它們將非常非常有用,可以幫助您編寫更好的Java程序並更快地交付。
這就是有關2020 Java開發人員路線圖的全部內容 。

這是在2020年學習Java並成為更好的Java開發人員的絕佳資源。我將其簡化以使大多數人都可以遵循它,並且只包含重要的內容,但是如果有足夠的願望,我正在考慮發布Java Developer RoadMap 2.0以添加一些高級的東西,例如JVM內部結構,性能分析,模塊,Cloud Native Java,容器等。

 

原文獲取可關注公眾號 “程序員開發入門” ,輸入“java路線圖”

 

Java開發人員路線圖​www.maiyewang.com

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM