前言
1.了解JVM内部和Java性能调优
如果您真的想成为优秀的Java Developer,那么您必须首先花时间学习JVM内部,例如JVM的不同部分,它们如何工作,JIT,JVM选项,垃圾收集和收集器等。
如果您非常了解JVM,则可以编写健壮且高性能的Java应用程序,这就是Rockstar Java开发人员所做的。
作为此过程的一部分,您还应该学习如何配置Java应用程序,如何发现性能瓶颈,例如哪些对象占用了您的大部分内存,并且消耗了CPU。
对于结构化学习,我推荐周志明撰写的《 JVM高级特性与最佳实战》,这是我近几年读过的一本好书。
2.学习微服务和云
架构在不断变化,许多公司正在从单一应用程序迁移到微服务。
现在是Java开发人员学习微服务体系结构以及如何利用Java创建微服务以利用这一最新浪潮的时候了。
幸运的是,Spring框架提供了Spring Cloud和Spring Boot,它们大大简化了Java中的微服务开发。
如果您正在寻找一门课程,那么《Master Microservices with Spring Boot and Spring Cloud》是一个很好的起点。
3.学习Spring Framework(Spring Boot)
如今,Java开发人员必须学习Spring框架,因为大多数公司更喜欢使用Spring框架(如Spring MVC,Spring Boot和Spring Cloud)进行开发,以开发Web应用程序,REST API和Microservices。
它还促进了依赖注入等最佳实践,并使您的应用程序更具可测试性,这是现代软件的关键要求。
如果您是一名新的Java开发人员,那么我建议您从Java和Spring教程开始,以学习该强大框架的基础知识;如果您已经熟悉Spring,则应该探索Spring Boot和Spring Cloud以开发下一代Java应用程序。
4.学习Java API和库
如果您与优秀的Java开发人员一起工作,您可能已经注意到他们对Java生态系统的全面了解,而API是其中的主要部分。
Java是世界上最流行和最成熟的编程语言,并且有大量的库和API可以用于几乎所有可能的事情。
当然,您不应该全部了解它们,但是您应该熟悉一些关键的API,例如JSON处理API(例如Jackson和Gson),XML处理API(例如JAXB和Xerces),单元测试库(例如Mockito和JUnit)等。
如果您不了解它们,则可以学习或至少获得它们的概述。首先,您可以查看我每个Java开发人员都应该知道的20个Java库的列表,其中涵盖了关键领域的库,例如解析,字节码操作,并发,集合等。
5.学习Java 8+(Java 13)
对于Java开发人员而言,这是最重要的事情。已有4年的历史了,甚至6个月后Java 13才发布,人们都在谈论Java 10功能,我知道许多程序员还没有使用Java 8功能(如lambda和Stream API)编写任何代码。
不幸的是,他们中的大多数都是经验丰富的Java开发人员。我了解您的职业学习有时会变慢,但是如果您现在不采取行动,您将被抛在后面。
现在,几乎所有Java开发工作都需要Java 8技能,如果您没有这些技能,那么在Java面试中很难做好并表现出色。
现在,如果您决定学习Java 8,但又担心从哪里开始,我建议您查看Udemy上的Complete Java MasterClass,它将教您Java 8功能的所有基础知识。
6.学习设计模式和编码最佳实践
如果你是从头开始编写Java应用程序,然后大部分的时间你正在编写面向对象的代码和设计模式是久经考验的常见问题的解决方案。
通过了解它们并将它们合并到您的代码中,可以使您的应用程序更灵活,将来更容易更改。
因为其他Java开发人员也熟悉设计模式,并且他们将很快地了解您的解决方案,所以它还改善了整体代码质量和文档。
但是,不要只专注于代码部分,理解精神并发挥创造力。使用lambda和Streams之类的Java 8功能重写诸如Strategy模式之类的模式。
7.学习开发工具和IDE
更好的Java开发人员的最重要特征之一就是他们在工具方面非常出色。他们不仅比普通开发人员了解更多的工具,而且对工具的了解也很高。
由于Eclipse,NetBeans和IntelliJ IDEA之类的IDE是Java程序员最重要的工具,因此花一些时间来学习更好是很有意义的。
您可以了解一些使您的任务变得容易的插件,或一些有助于您更好地导航的键盘快捷键。
即使是一些小技巧也可以帮上大忙,因为您使用的技巧比您想像的要多得多。
8.学习DevOps
对于现代Java开发人员,DevOps的知识至关重要。他至少应该熟悉持续集成和持续部署以及Jenkins如何帮助实现这一目标。
对于高级Java开发人员来说,这一点变得尤为重要,他们通常负责设置编码最佳实践,创建环境,构建脚本和准则。
我还建议您花时间,从总体上了解DevOps以及Docker,Ansible,Kubernetes等工具以及Maven和Jenkins的更多信息。
如果您需要一些资源,那么在Udemy中使用Pipelines和Docker与Jenkins一起学习DevOps:CI / CD可能是最好的入门课程。您不仅会深入了解CI和CD,而且还将深入了解Maven和Jenkins。
我想特别推荐一门课程,特别是针对Docker和Kubernetes的是Stephen Grider的Docker和Kubernetes:完整指南,您将在一门课程中学习这两个重要工具。
9.学习单元测试
如果有一个普通的事情将优秀的Java开发人员与普通的Java开发人员区分开,那么这一定是他的单元测试技能。
一个优秀且专业的Java开发人员几乎总是为他的代码编写单元测试。
现在,测试已经有了很长的路要走,Java开发人员可以使用多种工具进行单元测试,集成测试和自动化测试。
您可以花费大量时间来磨练Java的测试技能,但是对于Java世界和单元测试的新手来说,JUnit是最好的入门库。最新版本的JUnit 5既强大又灵活,每个Java开发人员都应该知道这一点。
如果您还不了解它们,那么可以先学习诸如学习Java 8和Learning Spring Framework等更重要的内容,但是如果您擅长于这些,则可以选择其他主题,例如单元测试,JVM内部和DevOps。