Java程序員2021年應該學習的11項技能


image.png

作為一名Java開發人員和一個Java博客的作者,我經常收到來自世界各地的Java程序員的請求,詢問他們如何提高自己。

過去,我分享了我成為一名更好的程序員的10條建議,這篇文章中的每一條建議仍然適用,但是考慮到這是新的一年,我決定為Java程序員記下新的技巧,以提高自己,增強他們對Java編程的了解,並增加他們對未來職業發展的價值。

因此,不要再浪費時間了,讓我們看看2019年我對Java程序員的九個想法。你可以從這些想法中獲得靈感來創造你自己的目標。
順便說一下,各位,在這篇文章中,你不僅會找到要學的東西,還會找到要學的地方,因為我的許多讀者經常回到我身邊,告訴我他們如何提高某些技能,從哪里開始,等等。

1.學習Java性能優化

在過去的幾年里,我參加了50多次高級Java開發人員的面試,我清楚地看到缺乏的一項技能是對JVM內部、GC行為的知識和理解,和Java性能調整。

image.png
隨着您的Java經驗的增長,您成為擁有5 -- 6年以上經驗的高級Java開發人員,希望你能了解Java基礎知識的大局和小細節。

如果你不能描述一個應用程序,或者不知道它為什么慢或者如何讓它快,那么你應該讀一本關於JVM內部和性能調整的好書,例如斯考特·奧克斯的暢銷書《Java Performance the Definitive Guide.》。

我已經讀了很多年了,只要有時間,我仍然會參考它。我的目標是今年再讀一遍。

如果你更喜歡在線課程而不是書籍,那么我建議你看看了解關於Pluarlsight的java虛擬機系列課程,它解釋了內存管理、類加載、安全性和反思。

2. Docker and Kubernetes

您可能已經聽到了有關Docker和Kubernetes的嗡嗡聲,以及它對DevOps團隊的影響。你可能一開始就想到,“啊,還有一項我需要學習的新技術”,但我會說Docker不僅僅是另一項技術,而且它確實是一個游戲改變者。
與Kubernetes一起,它是您可以學習的最重要的工具之一,並將在您的整個職業生涯中一直伴隨着您。
如今,無論是大型企業還是小型初創企業,幾乎每個開發團隊都在使用Docker和Kubernetes。可以肯定地說,如果你現在進入勞動力市場,你很可能會在某個時候重溫Docker。
簡而言之,無論您是初級Java開發人員還是具有多年經驗的資深人員,擁有Docker和Kubernetes知識對於您的職業發展和工作變動至關重要。如果您已經意識到Kubernetes的重要性,並希望在2021年之前學習Kubernetes,那么Docker和Kubernetes: 史蒂文Grider關於Udemy的完整指南是一個很好的入門課程。

image.png

如果您喜歡免費資源,例如免費在線課程,那么您還可以查看此免費Docker和Kubernetes課程列表,供Java開發人員開始您的旅程。

3. DevOps (Jenkins)

去年,隨着越來越多的公司進入DevOps並采用持續集成和部署,這是我看到很大吸引力的另一個領域。
DevOps非常龐大,您需要學習許多工具和原則,這讓許多開發人員不堪重負,但您不必擔心。我分享了一個DevOps路線圖,您可以按照該路線圖以自己的速度學習和掌握DevOps,尤其是Jenkins。
這意味着,如果您是一位經驗豐富的Java程序員,並且熱衷於管理環境、自動化和改進整體結構,那么您可以成為一名DevOps工程師。
如果你正在尋找一些優秀的資源,那么詹金斯,從零到英雄: 成為一名DevOps詹金斯大師是一個很好的開始,特別是對Java開發人員來說。

image.png

4. 每天編碼2小時

去年我注意到的另一件事是,隨着你經驗的增長,你會把時間花在協調、回復電子郵件、成為催化劑、故障排除、指導上,通常是項目經理。

image.png

你留下的是編碼,這是程序員最重要的技能。

如果你覺得你沒有做足夠的編碼,那么就制定一個每天編碼的決議。至少,寫一些東西,無論是在你的項目、開源框架、庫還是實用程序上。
既然開始是最困難的事情,我建議任何時候你感到阻力,開始閱讀和重構代碼以獲得樂趣。你會喜歡的,在這個過程中,你也會寫代碼。

你也可以解決破解編碼面試中給出的問題,189個編程問題。這不僅可以確保你為面試做好准備,還可以提高你對數據結構、算法和編程邏輯的了解。

5.每月一次分析您的Java應用程序

本技巧與第一技巧有關,該技巧與如何閱讀有關JVM內部的好書和(或)加入有關Java性能調優的課程有關。 順便說一句,僅閱讀本書或參加課程是不夠的。 您必須將這些知識應用到您的實時項目中。
image.png
我建議您至少每月一次對Java應用程序進行概要分析,並花費大量時間來理解和分析結果。

您還可以對Java進程進行堆轉儲,或者,如果最近發生崩潰,則可以進行該堆轉儲,並找出哪個對象正在占用您的大部分內存。 您的Java應用程序中是否存在內存泄漏?

原因是什么? 如果其他10萬新客戶訪問您的應用程序,將會怎樣? 如果您可以舒適地回答所有這些問題,那么您的知識狀況良好。 如果您需要有關解決內存和CPU問題的指導,建議您看一下Richard Warburton的《了解和解決Java內存問題》。

6. 參與編碼挑戰

image.png

這個目標在某種程度上與我們的第二個解決方案有關-每天編寫2小時的代碼。 讓我們面對現實吧,有時候,您的實時項目中沒有足夠的機會編寫代碼。
如果您渴望挑戰代碼,那么沒有比參加編程和編碼挑戰更好的了。

互聯網上有許多網站面臨編程挑戰,使您有機會測試自己的技能,但是TopCoder絕對是最好的。

如果您正在尋找一些艱巨的編程挑戰,那么您也可以查看我的優秀網站列表,以練習編碼。

7.學習Java網絡編程

從采訪中我了解到的另一件事是Java開發人員需要改善他們的套接字編程和網絡基礎。

我從Java網絡編程問題列表中提出了許多問題,但是大多數開發人員未能回答其中的大多數問題。

他們中的一些人甚至難以勾勒出TCP和UDP之間的關鍵區別,我認為這太基本了,無法要求任何具有2--5年經驗的Java開發人員。

如果您覺得沒有足夠的機會學習Java套接字編程,或者因為您是使用JSP,Servlet和JSF的Java Web開發人員而不需要,那么我建議您至少閱讀一本關於Java的好書。 Java網絡,NIO和套接字編程。

我強烈推薦的一本書是《 Java中的TCP / IP套接字》,第二版,《程序員實用指南》。 它易於閱讀,有趣,並且是學習套接字編程基礎知識的好方法。

8. Java 12 to 15

在過去的幾年中,已經看到了一些重要的發布,其中一個是JDK 12和13。我還沒有從JDK 11開始,請忘記12,但這是我要在2021年研究的第一件事。

9. Spring 5.0

2017年Java世界的另一個重要發行版是Spring Framework 5.0。 具有許多令人興奮的功能,例如 響應式編程模型以及Java 8和9的采用,Spring 5.0的采用將在2019年加速,這就是每個Java開發人員都應該學習它的原因。 如果您需要幫助,那么從Spring 5.0:Guru入門是一個不錯的入門。

image.png

10. Spring Security 5.0

我將在2021年學習的2017年另一個有趣的版本是Spring Security 5.0。 Spring Security 5.0是一個主要版本,他們重寫了幾個模塊並修復了數百個錯誤。
最有趣的部分是OAuth 2.0模塊。

11. Unit Testing

如果您想在2021年成為一名更好的開發人員,那么您應該提高單元測試技能。 不僅是單元測試,還包括一般的自動化測試。 這也包括集成測試。

您可以學習JUnit 5和其他高級單元測試庫,例如Mockito,PowerMock,Cucumber和Robot Framework,以將單元測試技能提高到一個新的水平。

Mockito確實非常強大,它允許您通過模擬依賴關系並只關注被測對象來編寫用於復雜類的單元測試。

如果您是單元測試的初學者並且想在2021年學習它,那么Udemy的JUnit和Mockito崩潰課程將是一個不錯的起點。

概括

這是我的建議! 如果您是具有幾年經驗的Java程序員,那么您也可以從這份清單中汲取靈感來設定目標。 您可以添加到此列表中的其他內容是學習Android,Docker和Spark,因為這些對於任何Java程序員都是必不可少的。

我有目的地保持這一簡單性和可實現性,因為我個人認為小小的成功會帶來大的成功。

設定小目標並實現目標比設定大的,不切實際的目標和在開始之前失敗要好。

那你還在等什么? 寫下您今年的目標並與我們分享。 在今年年底,您可以回到這里,告訴我們您取得了多少成就。


免責聲明!

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



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