1. 学习 Java 性能调优

很多人并不缺乏Java语法知识,最缺乏的是对 JVM 内部过程、GC行为和 Java 性能调优的知识与理解。

一个Java程序员随着经验的不断增长,常常需要了解 Java 基础的大局和小细节。

如果无法分析应用程序,或者无法弄清楚为什么它变慢或如何使它变快,那么我们应该阅读一本关于 JVM性能调优的好书,英文不错的同学可以阅读 Scott Oaks 的畅销书 《Java Performance the Definitive Guide》。

如果没有充足的时间看书,可以学习B站上的理解 Java 虚拟机系列课程,其中解释了内存管理、类加载、安全性和反射。

2. Docker 和 Kubernetes

大家都听说过 Docker 和 Kubernetes 对 DevOps 团队的影响。在我没用过这个技术前,我第一次想到的是,“啊,又是一项我需要学习的新技术”,但在我看来 Docker 不仅仅是另一种技术,更是真正的游戏规则改变者。

Docker 与 Kubernetes 一起使用,可以称为一个Java开发工程师最重要的工具之一,并将在整个职业生涯中陪伴。

如今,几乎每个开发团队都在使用 Docker 和 Kubernetes,无论是大型企业还是小型初创公司。可以肯定地说,如果现在进入劳动力市场,很可能会在某个时候遇到 Docker。

3. DevOps

随着越来越多的大公司转向 DevOps 并采用持续集成和部署, 很多开发人员看到了这个领域的重要性。

DevOps 非常庞大,需要学习很多工具和原理,这让很多Java开发者感到不知所措。

如果能够熟悉Devops,name你已经是一位经验丰富的 Java 程序员,并且对管理环境、自动化和改进整体结构充满热情,那么您就可以成为 DevOps 工程师。

4. 每天码2小时

随着一个人经验的增长,你将时间花在协调、回复电子邮件、成为催化剂、故障排除、指导别人上,类似一个项目经理这种角色。

我们做的事情是编码,这是程序员最重要的技能。
如果你觉得你没有做足够的编码,那就下定决心每天编码。至少,写一些东西,无论是在你的项目、开源框架、库还是实用程序中。
但是万事开头难,任何时候感到阻力时,我们就要开始阅读和重构代码,并以获得乐趣。

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

我们至少每月一次看一下自己写过的 Java 代码,进行Clean code,并花大量时间理解和分析结果。
比如我们可以获取 Java 进程的堆转储,如果最近发生了崩溃,则获取该堆转储并找出哪个对象占用了大部分内存。
常识思考如下问题:
排查 Java 应用程序中是否存在内存泄漏?原因是什么?如果其他 10 万个新客户端访问您的应用程序会发生什么?如果我们能轻松地回答所有这些问题,那么说明我们目前的代码质量有保障。

6. 参与编码挑战

互联网上有许多网站提供编程挑战并让您有机会测试您的技能,我认为Leetcode是最好的。

7. 学习 Java 网络编程

Java 开发需要学习TCP编程和网络基础知识。

8. 做好单元测试

想在 2021 年成为一名更好的开发人员,那么我们应该努力提高自己的单元测试技能。
不仅仅是单元测试,还有一般的自动化测试。这也包括集成测试。
我们还可以学习JUnit 5和其他高级单元测试库,如 Mockito、PowerMock、Cucumber 和 Robot Framework,将单元测试技能提升到一个新的水平。