2020 年 Java 程序員應該學習什么?


大家好,我相信大家在新的一年都有一個良好的開端,並准備好制定一個提升自我技術的目標。作為 Java 開發人員,我還制定了一些目標,希望在今年成為一名更好的 Java 開發人員。

如果你尚未制定目標,這將幫助你制定 2020 年的目標。作為一名程序員,我們面臨的最大挑戰是使自己保持不斷學習的狀態。技術變化非常快,每兩年你就會看到新版本的編程語言和框架。

今年也有很多的變化,每 6 個月更新一次 Java 新版本、Spring 5、Spring Security 5 和 Spring Boot 2,對於 Java 開發人員而言,這可能是最繁忙的一年。

2019 年的時候,我以為 Java 11 是新的,在我無法完全學習 Java 11 之前,Java 12 和 Java 13 已經為我們准備好了。自 JDK 9 以來,所有這些 Java 版本都具有許多令人興奮的功能,例如文本塊(多行字符串),switch 表達式,局部變量的 var,API 增強,GC 改進,線程本地握手(機制優化)等,我真的很高興能在 2020 年學到這些內容。

Spring framework 和 Spring Security 也是如此的,我還不知道 Spring 4.0 和 Spring Security 4.0 上的所有更改,我的項目仍在使用 Spring Security 3.1,然而現在已經有了 Spring 和 Spring Security 的 5.0 版本。

在過去的幾年中,我的學習速度有所下降,還沒有掌握最新的技術,比如容器-Docker 和 Kubernetes,AWS、GCP 和 Azure 等雲平台,單元和集成測試空間的最新變化以及簡化結構的新版本,如 Spring、Spring Security 和 Spring Boot。

因此,2020 年將是讓我自己了解技術方面最重要的事情,探索 DevOps 和雲計算領域,特別是 Docker、Kubernetes 和 AWS 的 Jenkins。

分享一張后端路線圖(國外的一位大佬總結的),可以去圖中的網站下載,或者在【武培軒】微信公眾號回復【路線圖】獲取。

后端路線圖

2020 年 Java 開發人員可以學習什么?

這是我認為 Java 開發人員應該在 2020 年學習的東西,很可能你已經了解了其中的大多數,但是更好地學習它們並進行深入研究不會對你有害處的。

1.容器(Docker 和 Kubernetes)

Kubernetes

你可能已經聽說過 Docker 和 Kubernetes 等容器技術,以及它對 DevOps 團隊的影響。Kubernetes 是你可以學習的最重要的工具之一,並且將陪伴你的整個職業生涯。

如今,無論是大型企業還是小型創業公司,幾乎每個開發團隊都使用 Docker 和 Kubernetes。可以肯定地說,如果你現在開始學習,很有可能在工作中的某個時候用到 Docker 或 Kubernetes。

簡而言之,無論你是初級 Java 開發人員還是經驗豐富的資深人士,擁有 Docker 和 Kubernetes 知識對於你的職業發展和工作變動都是至關重要的。

2.雲平台(AWS 、GCP 或 Azure)

雲平台

除了容器,雲是我認為每一位軟件開發人員都應該在 2020 年學習的另一件事。各種規模和領域的公司現在都在將其環境遷移到雲中,以節省成本和更好的可擴展性,這意味着你遲早要需要使用雲原生應用程序。

它們對於數據科學,機器學習和人工智能領域中的迅猛發展是緊密相連的,因為只有雲才能提供那些資源匱乏的模型所需的計算能力。

像 Amazon Web Service(AWS),Google Cloud Platform(GCP)或 Microsoft Azure 這樣的學習型雲平台不僅在你當前的工作上。你不需要學習所有這些知識,實際上,學習一種知識意味着你將對其他事物有一個公平的想法。

如果你要學習雲平台相關的知識,那么我首先建議你學習 AWS,因為它是最流行和最成熟的雲平台。

3. Git

Git

Git 和 Github 已經使用有一段時間了,雖然我過去在 IDEA 中使用過 Git,但是在命令行上我對 Git 還不是很熟悉。

為什么到目前為止我還沒有掌握 Git?只是因為我還不需要它,我偶爾會從 Github 下載項目並從 IDEA 運行,但是我仍然是 Git 新手。

從現在開始,大多數公司都將其項目從 SVN,CVS 遷移到 Git,這也是學習和掌握 Git 的重要時機。

4.單元測試(JUnit 和 Mockito)

單元測試

我想在來年改進的另一個領域,Java 程序員可以使用許多新的框架和工具進行單元測試,並對其應用程序進行集成測試,例如用於模擬對象的 Mockito 和 PowerMock,用於自動集成測試的 Robot Framework 和Cucumber,當然還包括新的 JUnit 5 庫。

在這方面有很多東西要學習,如果你可以花一些時間來提高單元測試技能,那么不僅可以提高你的編碼專業知識,而且可以使你成為更專業的開發人員,每家公司都將以此為形式。

5.從 JDK 9 到 13 的新 Java 功能

JDK

正如我過去所說的那樣,我像許多 Java 開發人員一樣仍在努力追趕六個月發布一次的 Java 版本。我今年花了一些時間學習 Java 9、10、11 和 12 的新功能,但是對我來說,直到我使用 LTS 發行版 Java 13 之前,Java 11 仍然是優先事項。

JDK 9 在模塊,拼圖,反應流,Process API,HTTP2 客戶端,JShell 和 API 改進(如集合工廠方法)方面帶來了很多好處,我非常希望能盡早學習它們。

同樣,JDK 10 帶來了var,使你可以進行動態類型化和 GC 改進。然后,在JDK 12 和 JDK 13 的 Switch 表達式、文本塊。

6. Spring Framework 5+

Spring

自從我們看到 Spring 和 Java Ecosystem 進行了許多重大升級以來已經有兩年了,Spring Framework 5.0 就是其中之一。我一直在聽說一些新功能,例如 Spring 5 的反應式編程模型,Java 8 和 9 的采用,某些單元測試的改進等,但是我還沒有嘗試過。

無論如何,我已經開始學習 Spring 5.0.0,並將保持這種勢頭在 2020 年持續下去。如果你使用 Spring,可能是學習 Spring 5.0 的最佳時機。

7. DevOps(Jenkins)

DevOps

去年,隨着越來越多的公司進入DevOps並采用持續的集成和部署,這是另一個吸引我的領域。

DevOps 非常龐大,你需要學習很多工具和原理,這就是讓很多開發人員不知所措的原因,但你不必擔心。下面分享了一個大佬總結的 DevOps 路線圖(公眾號【武培軒】回復【路線圖】獲取),你可以按照自己的速度學習和掌握 DevOps,尤其是 Jenkins。

DevOps路線圖

這意味着,如果你是一位經驗豐富的 Java 程序員,並且熱衷於管理環境,自動化和改善整體結構,那么你可以成為DevOps 工程師。

8. RESTful Web 服務

RESTful

我想在 2020 年繼續改進的另一件事是我對編寫 REST API 以及使用 Spring 使用 Java 實現安全且可擴展的RESTful Web Service 的了解。

這是 Java 世界中非常需要的一項技能,並且很少有人同時了解 Java 和 REST。如果你也一樣,並且想學習如何使用Spring 開發 RESTful Web Service,那么讓我們一起在 2020 學習。

9. Spring Security 5.0(OAuth)

Spring Security

Spring Security 是一個能夠為基於 Spring 的企業應用系統提供聲明式的安全訪問控制解決方案的安全框架。它提供了一組可以在 Spring 應用上下文中配置的 Bean,充分利用了 Spring IoC(控制反轉),DI(依賴注入)和 AOP(面向切面編程)功能,為應用系統提供聲明式的安全訪問控制功能,減少了為企業系統安全控制編寫大量重復代碼的工作。

這是 Spring 生態系統的第三次重大升級,Spring Security 5.0.0 的主要亮點在於它只需要最小化的 JDK 8、反應式安全特性、OAuth 2.0(OIDC)和現代密碼存儲,你絕對不能錯過。

與 Spring 5.0 框架一樣,這是 2020 年我的另一個優先事項。

10. Spring Boot 2 和微服務

Spring Boot 2

Spring Boot 2.0 中引入了眾多令人激動的新特性,包括支持 Java 9、HTTP/2、基於 Spring 5 構建、強力集成 GSON 等等。

那么在時間允許的情況下,你還應該花一些時間學習 Spring Boot 2 和微服務,我相信它會給你帶來不一樣的體驗。

11. Apache Spark 和 Kafka

大數據

我想在 2020 年繼續深入探索的另一件事是大數據,主要是 Apache Spark 和 Apache Kafka 框架。我不確定是否有時間去看其他大數據技術,但是它的好東西和大數據可能是目前最熱門的技術。

總結

這就是 Java 程序員在 2020 年可以學到的一切嗎?就像我說的那樣,技術日新月異,程序員面臨的最大挑戰是使自己保持不斷學習的狀態。除了以上這些技術外,肯定還有很多其他的東西,你可以查找在新的一年就像學習一門新的編程語言如 Kotlin,但對我來說,如果我能在 2020 年實現這些目標,我會更高興。


免責聲明!

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



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