2018年Java程序员应该学习的9件事

2018-09-14 16:02:20 浏览数 (1)

作为Java开发人员,我经常收到来自世界各地的Java程序员的邮件,询问他们应该如何提升自己。

在过去,我分享过关于如何成为一个更好的程序员的10条建议。现在,我决定为Java程序员制定新的解决方案,以提高他们对Java编程的知识,并提高他们对未来职业发展的价值。

1. 学习Java性能调优

在过去的几年里,我花了很多的时间与高级Java开发人员进行了50次访谈,我发现我明显缺乏的一项技能是对有关JVM内部、GC行为和Java性能调优的知识和理解。

随着你的Java经验的增长,你将成为一名拥有超过5-6年经验的高级Java开发人员,你应该了解Java基础的总体情况以及各种细节。

如果你不能分析一个应用程序,或者找不出它为什么变慢或者如何使它提速,那么你应该读一本关于JVM内部和性能调优的好书,比如ScottOaks的畅销书《Java性能最终指南》。

我已经读了好几年了,只要有时间,我还是会把它看一遍。我的目标是今年再读一遍。

如果你更喜欢在线课程,那么我建议你看看关于Pluarlsight的系列课程,它解释了内存管理、类加载、安全性和反射。

2. 每天编码2小时

我还注意到另一件事,随着经验的增长,你会花很多时间在协调、回复电子邮件、故障排除、指导,就像一个项目经理一样。然而,事实上,编码才是对于程序员来说最重要的一项技能。

如果你觉得你没有做足够的编码工作。至少,可以在项目、开源框架、库或实用程序上写一些东西。你还可以破解编码150个编程面试问题。这将提高你对数据结构、算法和编程逻辑的了解。

3. 每月对Java应用程序进行一次分析 仅仅阅读书本是不够的。你必须在实际项目中应用该知识。我建议你每月至少一次分析Java应用程序,并且花大量的时间了解和分析结果。

你还可以获取Java进程的堆转储,或者如果最近发生了崩溃,则可以获取该堆转储并找出占用了大部分内存的对象。“你的Java应用程序中是否存在内存泄漏?原因是什么?如果其他100000个新客户端访问你的应用程序,会发生什么情况?”如果你能回答所有这些问题,那么你的程度就很不错了。如果你需要一些关于解决内存和CPU问题的指导,我建议你看看Richard Warburton的《理解和解决Java内存问题》。

4. 参与编码挑战

有时候,你在你的实际项目中没有足够的机会去编码。如果你渴望有挑战性的代码,那么没有什么比参与编程和编码挑战来说更好的了。

在互联网上有许多网站存在编程上的挑战,给你机会来测试你的技能,TopCoder就是不错的选择。

5. 用Java学习网络编程

我从采访人员中学到的另一件事就是Java开发人员需要改进他们的套接字编程和网络基础。我从我的Java网络编程问题列表中提出了许多问题,但大多数开发人员都未能回答大部分问题。他们中的一些人甚至很难概述TCP和UDP之间的关键差异,我认为这对于任何具有2-5年经验的Java开发人员来说都太基础了。

如果你觉得自己没有足够的机会学习Java编程中的套接字编程或者你是使用JSP,Servlet和JSF的Java Web开发人员而不需要学习,那么我建议你至少阅读一本关于 Java网络, NIO, 和套接字编程的好书。我强烈推荐的一本书是《JTCP/IP Sockets in Java, Second Edition, Practical Guide for Programmers》。它易于阅读,是学习套接字编程基础知识的好方法。

6. Java 9

2017年发布了几个重要版本,其中之一是JDK 9。如果你想学习Java 9的新特性,例如Jigaw、反应性流、API增强等,那么Java9 MasterClass是一门很好的课程。

7. Spring 5.0

2017年Java世界的另一个重要版本是SpringFramework5.0。有许多特性,例如反应式编程模型和Java 8和9的采用,Spring5.0的采用将在2018年加速,这就是每个Java开发人员都应该学习它的原因。如果你需要学习, 《Spring 5.0: Beginner to Guru》是一门很好的课程。

8. Spring Security 5.0

SpringSecurity5.0是一个主要的版本,该版本重写了几个模块并修复了数百个bug。最有趣的部分是OAuth2.0模块。不幸的是,目前学习SpringSecurity5.0的资源不多,但谢天谢地,Eugen为了涵盖5.0版更新了他的Learn Spring Security,并在OAuth2.0上添加了一个新模块。

9. 单元测试

如果你想在2018年成为一名更好的开发人员,那么你应该提高你的单元测试技能。不仅仅是单元测试,还有一般的自动化测试,包括集成测试。你可以学习JUnit 5和其他高级单元测试库,如Mockito、PowerMock、Cucumber和机器人,从而将你的单元测试技能提升到更高一个级别。Mockito非常强大,它允许你通过模拟依赖项和关注被测试对象来为复杂类编写单元测试。如果你是单元测试的初学者,那么JUnit和Mockito对你来说就是一个很好的起点。

摘要

这是我的建议:如果你是一个有两年经验的Java程序员,你可以从这篇文章中获得灵感来设定你的目标。你目前还可以提升自己的方法是学习安卓,Docker和Spark,因为这些对于任何Java程序员来说都是必不可少的。

原文标题《9 Things Java Programmers Should Learn in 2018 》

作者:Javin Paul

译者:lemon

不代表云加社区观点,更多详情请查看原文链接

0 人点赞