Java程序员2021年应该学习的11项技能

Posted 程序员石磊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序员2021年应该学习的11项技能相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

作为一名Java开发人员和一个Java博客的作者,我经常收到来自世界各地的Java程序员的请求,询问他们如何提高自己。

过去,我分享了我成为一名更好的程序员的10条建议,这篇文章中的每一条建议仍然适用,但是考虑到这是新的一年,我决定为Java程序员记下新的技巧,以提高自己,增强他们对Java编程的了解,并增加他们对未来职业发展的价值。

因此,不要再浪费时间了,让我们看看2019年我对Java程序员的九个想法。你可以从这些想法中获得灵感来创造你自己的目标。
顺便说一下,各位,在这篇文章中,你不仅会找到要学的东西,还会找到要学的地方,因为我的许多读者经常回到我身边,告诉我他们如何提高某些技能,从哪里开始,等等。

1.学习Java性能优化

在过去的几年里,我参加了50多次高级Java开发人员的面试,我清楚地看到缺乏的一项技能是对JVM内部、GC行为的知识和理解,和Java性能调整。

在这里插入图片描述

随着您的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的完整指南是一个很好的入门课程。

在这里插入图片描述

如果您喜欢免费资源,例如免费在线课程,那么您还可以查看此免费Docker和Kubernetes课程列表,供Java开发人员开始您的旅程。

3. DevOps (Jenkins)

去年,随着越来越多的公司进入DevOps并采用持续集成和部署,这是我看到很大吸引力的另一个领域。
DevOps非常庞大,您需要学习许多工具和原则,这让许多开发人员不堪重负,但您不必担心。我分享了一个DevOps路线图,您可以按照该路线图以自己的速度学习和掌握DevOps,尤其是Jenkins。
这意味着,如果您是一位经验丰富的Java程序员,并且热衷于管理环境、自动化和改进整体结构,那么您可以成为一名DevOps工程师。
如果你正在寻找一些优秀的资源,那么詹金斯,从零到英雄: 成为一名DevOps詹金斯大师是一个很好的开始,特别是对Java开发人员来说。

在这里插入图片描述

4. 每天编码2小时

去年我注意到的另一件事是,随着你经验的增长,你会把时间花在协调、回复电子邮件、成为催化剂、故障排除、指导上,通常是项目经理。

在这里插入图片描述

你留下的是编码,这是程序员最重要的技能。

如果你觉得你没有做足够的编码,那么就制定一个每天编码的决议。至少,写一些东西,无论是在你的项目、开源框架、库还是实用程序上。
既然开始是最困难的事情,我建议任何时候你感到阻力,开始阅读和重构代码以获得乐趣。你会喜欢的,在这个过程中,你也会写代码。

你也可以解决破解编码面试中给出的问题,189个编程问题。这不仅可以确保你为面试做好准备,还可以提高你对数据结构、算法和编程逻辑的了解。

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

本技巧与第一技巧有关,该技巧与如何阅读有关JVM内部的好书和(或)加入有关Java性能调优的课程有关。 顺便说一句,仅阅读本书或参加课程是不够的。 您必须将这些知识应用到您的实时项目中。
在这里插入图片描述

我建议您至少每月一次对Java应用程序进行概要分析,并花费大量时间来理解和分析结果。

您还可以对Java进程进行堆转储,或者,如果最近发生崩溃,则可以进行该堆转储,并找出哪个对象正在占用您的大部分内存。 您的Java应用程序中是否存在内存泄漏?

原因是什么? 如果其他10万新客户访问您的应用程序,将会怎样? 如果您可以舒适地回答所有这些问题,那么您的知识状况良好。 如果您需要有关解决内存和CPU问题的指导,建议您看一下Richard Warburton的《了解和解决Java内存问题》。

6. 参与编码挑战

在这里插入图片描述

这个目标在某种程度上与我们的第二个解决方案有关-每天编写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入门是一个不错的入门。

在这里插入图片描述

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程序员都是必不可少的。

我有目的地保持这一简单性和可实现性,因为我个人认为小小的成功会带来大的成功。

设定小目标并实现目标比设定大的,不切实际的目标和在开始之前失败要好。

那你还在等什么? 写下您今年的目标并与我们分享。 在今年年底,您可以回到这里,告诉我们您取得了多少成就。

以上是关于Java程序员2021年应该学习的11项技能的主要内容,如果未能解决你的问题,请参考以下文章

Java程序员应该掌握的10项技能

一名3年工作经验的java程序员应该具备的技能

一名拥有一年工作经验的Java程序员应该具备的技能

一名拥有一年工作经验的Java程序员应该具备的技能

吊打面试官-Java中高级面试题,进阶学习

2021年江苏省职业院校技能大赛中职 网络信息安全赛项试卷--web安全渗透测试解析