天天看点

2022 Java 程序员路线图 「更新高阶版」

作者:FennJava

2022 年成为 Java 开发人员的图解指南

2022 Java 程序员路线图 「更新高阶版」

如果您想成为一名专业的 Java 开发人员或想将您的 Java 技能提升到一个新的水平,但不确定您可以学习哪些技术、工具、框架和库,那么您来对地方了。我一直在分享很多路线图,例如Web开发人员 RoadMap、DevOps 工程师 RoadMap和React.js 开发人员 RoadMap。

我从许多读者那里收到的请求之一是创建Java 开发者路线图。由于 Java 是我的专长,因此创建 Java 开发者路线图不是问题,但由于我获得的时间有限,我创建它的时间稍长。

不管怎样,我终于准备好与你分享我的 Java 开发者路线图了。这份路线图包含了我多年的经验以及如何成为 Java 专家的畅通无阻的道路。

您会发现这个 Java 路线图回答了许多紧迫的问题,例如 Java 开发人员应该学习哪些技术? 哪些工具可以让您成为更好的 Java 开发人员?而且,Java 开发人员绝对必须学习哪个框架。

我在此路线图上尝试的一件事是尽可能缩短曝光时间,我避免提及许多替代方案,尤其是在库存和工具方面,并坚持使用行业标准的工具和库。

我保持简单,以便大多数人都可以遵循它并且只包含基本的东西,但是如果有足够的愿望,我正在考虑发布Java Developer RoadMap 2.0来添加一些高级的东西,比如JVM 内部,Profiling, Java 9 模块、云原生 Java 、 AWS、GCP或Azure等不同的云平台,以及用于 DevOps 的 Chef 等更高级的工具。

如果你有兴趣,你可以找到一个更详尽的独立博客馆列表,我在进一步学习部分列出了这些列表。不管怎样,让我们​通过这个Java 开发者路线图来了解如何在 2022 年成为一名 Java 开发者。

顺便说一句,你不需要了解这个路线图上的所有内容,就可以成为一名摇滚明星开发者。事实上,如果你不想,你甚至不需要那么认真地对待它们。相反,请使用这些地图作为起点来帮助指导您的学习。

2022 Java 程序员路线图 「更新高阶版」

任何 Java 开发人员的必备技能

现在,让我们一步一步地浏览这个 Java 开发者路线图,了解如何在 2022 年学习成为 Java 开发者所需的基本技能:

1.Git 和 Github

最流行的版本控制系统之一。没有 Git 就不可能了。作为一名程序员,你应该熟悉 Git 和 Github,基本的 Git 概念,如分支、master、checkout、检查、push 和 pull,以及基本的 git 命令,如 git diff、git commit 等。

2.Linux

不仅是 Web 开发人员,对于任何程序员来说,Linux 命令行都非常非常重要,我强烈建议您花一些时间学习它们。由于大多数 Java 应用程序都是服务器端的,因此您经常会发现它们在 Linux 服务器上运行。

这就是为什么 Java 开发人员必须熟悉与文件、磁盘空间检查、进程管理以及网络命令相关的基本 Linux 概念和命令的原因。

如果您需要资源来提升您的 Linux 技能,我建议您查看Udemy 上的 Linux Mastery: Master the Linux Command Line in 11.5 Hours课程。对于想要从头开始学习 Linux 命令的任何人来说,这都是一门很棒的课程。

精通 Linux:精通 Linux 命令行

TESTIMONIALS ================================ “迄今为止在 Udemy 上的 Linux 上最好的课程,我绝对推荐”

3.数据结构和算法

这些是任何程序的构建块,对算法和数据结构的良好了解对于您的下一份工作或在当前情况下做得好至关重要。

您至少应该熟悉基本的数据结构,如数组、链表、哈希表、二叉树、队列、堆栈和图形,以及动态编程等问题解决技术。

如果您了解高级数据结构,例如 Trie、B-Tree、AVL 树,那就很好。但是,如果你不知道,那么我建议你参加一门综合课程,比如数据结构和算法:使用 Java 进行深度潜水,它将教你所有这些基础知识。

数据结构和算法:深入了解 Java

Tim 从事专业软件开发人员已超过 35 年。在他的职业生涯中,他曾在各大公司工作过……

4.HTTP/HTTPS

HTTP 协议是 Web 的支柱,Web 开发人员必须具备 HTTP 和 HTTPS 的良好知识。至少您应该了解 HTTP 的工作原理以及不同的 HTTP 方法及其用途等。

5.计算机科学基础

如果您正在创建以多种不同语言显示信息的全球应用程序,那么您应该对字符编码有很好的了解。

它基本上告诉您的浏览器如何显示您的数据。如果您想了解有关计算机科学的更多信息,还可以查看 Udemy 上的计算机科学 101:掌握编程背后的理论课程。

计算机科学理论 101:编程背后的理论

我是一位自学成才的多媒体设计师和计算机科学家,他帮助将客户的创意愿景带到了所有人……

6. SQL

这是每个 Java 开发人员都应该学习的另一项常见技术技能,因为它将帮助您解决后端问题。如果您了解 SQL,您可以了解存储过程,查询数据库,并找出问题是在 Java 层还是在数据库层。

我强烈建议每个编程人员,无论是 Java 开发人员还是 Python 开发人员都学习 SQL,这是一种易于学习的技能,并且可以在您作为程序员或开发人员的职业生涯中长期为您服务。

如果您需要资源,我建议您查看完整的 SQL + 数据库训练营: Andrei Negaoie 在 ZTM 学院的从零到精通的课程。

完整的 SQL + 数据库训练营:从零到精通

✓ 成为 SQL 和数据库概念方面的专家 ✓ 将 SQL、PostgreSQL、MySQL、Redis、数据库管理/设计添加到您的……

7.设计模式

毫无疑问,每个程序员都应该了解 Git 和 Github,因为它们是版本控制和代码存储库方面的标准。如果您想学习和掌握设计模式,尤其是 OOP 设计模式,那么我建议您参加Dmitri Nestruk 在 Udemy 上的 Java 设计模式课程。这是学习 Java 中经典设计模式的现代实现的一门很棒的课程。

面向工程师、设计师和架构师的 Java 设计模式

本课程从实用的角度全面概述了 Java 中的设计模式。

如果您需要更多资源,还可以查看我之前关于最佳设计模式书籍和课程的文章,以深入学习面向对象设计模式。

2022 年 Java 开发者路线图

现在,让我们一起探索这个 Java 开发者路线图,找出在 2022 年你可以学习哪些工具、框架、库、API、工具和技能,成为一名专业的 Java 开发者。

1. 工具

工具部分分为不同的部分。首先,您的 IDE,它是您的主要工具,几乎可以完成您要求的所有操作,例如编译、运行、调试、配置文件、测试、比较文件和代码、重构等等。

1.1 IDE

对于 Java 开发人员,有两个主要的 IDES,Eclipse和IntelliJIDEA,您可以选择其中任何一个,因为我一生中使用 Eclipse 最多,但我目前在 IntelliJIDEA 工作,所以我喜欢这两个,但大多数 Java 开发人员我知道他们在 IDEA 工作。

我建议您掌握 IDEA 快捷方式、视图和它提供的所有其他功能,以成为真正的 Java 大师,如果您需要资源,我认为IntelliJ IDEA Tricks to Boost Productivity for Java Devs是一个很好的起点。

IntelliJ IDEA 技巧提高 Java 开发人员的工作效率

如果你想成为一名真正的专业 Java 程序员,你需要掌握你的键盘和 IntelliJ IDEA。你需要…

1.2 构建工具

第二部分是构建工具,您需要使用它来构建和部署Maven和Gradle等项目。这些中的任何一个都足够了。我刚刚列出了 ANT,但那是针对遗留项目的。对于所有新的 Java 项目,首选 Gradle,它比 Maven 简洁得多。

如果你想同时学习 Maven 和 Gradle,可用的资源并不多。如果你问我,我推荐Apache Maven: Udemy 上 John Thompson 的 Guru 初学者。

Apache Maven:Java 和 Spring Boot 应用程序的初学者到 Guru

Apache Maven 是最流行的 Java 构建工具。世界各地的公司和开源社区,考虑...

而且,如果您热衷于学习 Gradle,我建议您查看另一位优秀的 UDemy 讲师 Bharat Thippireddy 的Gradle for Java Developers。

面向 Java 开发人员的 Gradle

示例评论:课程当然内容丰富,并且通过真实世界的示例很好地解释了基础知识……

1.3 容器和 DevOps 工具

第三个也是最关键的部分包括像Docker 和 Kubernetes这样的容器,像Jenkins和 TeamCity这样的 CI/CD 工具,以及像Ansible这样的基础设施自动化工具。

其中 Docker 是最重要的,因为它可以轻松设置您的开发环境,并且还可以更轻松地部署 Java 微服务。

Kubernetes 是一个下一级工具,并不是所有 JAva 开发人员都真正需要的,特别是如果您不从事 DevOps 并管理诸如扩展和部署之类的事情,但从知识的角度了解它是很好的。

我建议对 Java 开发人员有良好的 Docker 知识和 Kubernetes 基础知识,如果你需要资源,我推荐 Maximillian SchwaurzMuller 的Docker & Kubernetes: Udemy 实用指南课程。您可以在一门课程中学习这两种工具。

Docker & Kubernetes:实用指南

从 13 岁开始,我从未停止学习新的编程技能和语言。我很早就开始创作……

如果您有兴趣了解这些工具,这里有一些有用的课程来学习构建工具和 IDE

2.Java API

下一个要学习的重要内容是 JDK API,这对任何 Java 开发人员来说都非常非常重要。这是一个相当大的部分,这就是为什么它分为Java 集合框架、Java 并发、Java IO 和 Java 8 API 等核心领域,让我们逐个探索

2.1 Java 集合框架

这是每个 Java 开发人员都应该学习的最基本的 Java API 之一。该 API 在类 Java 的链表、集合、堆栈、队列、哈希表、优先级队列等中提供标准数据结构的实现。

至少您应该了解所有日常对象,例如ArrayList, HashMap, HashSet, LinkedHashSet,TreeSet等。每个对象都有其不同的属性,例如 ArrayList 是一个可以增长的动态数组,HashMap 是哈希表的标准实现,可用于存储键-值对。

同样,HashSet 是一个不允许重复元素的集合实现。我强烈建议您查看Richard Warburton 在 Pluralsight 上的Java Fundamentals: Collections 课程,以深入学习 Java Collection Framework。

2022 Java 程序员路线图 「更新高阶版」

2.2 Java并发

在 Java Collections 之后,Java 中接下来最关键的 API 是多线程和并发,我坚信如果你想成为一名称职的 Java 开发人员,你必须对 Java Concurrency API 有扎实的理解和掌握。

您不仅应该深入了解诸如Thread、、Runnable对象锁定和同步等基本概念,还应该熟悉死锁、活锁、竞争条件等概念以及如何处理它们。

您还应该了解高级 Java 概念,例如 Java 5 和后续版本中添加的同步器,我的意思是CyclicBarrier、CountDownLatch、Phaser和CompleteableFuture等,以及 Futures 以及如何在 Java 中执行异步操作。

我知道,它有很多东西,这就是为什么我建议你参加一个深入的课程,比如Heinz Kabutz 的Java Concurrency in Practice 捆绑包,他是 Java 冠军,也是并发和设计模式方面的权威。这门课程有点贵,但您将深入学习更多概念,这完全值得您花时间和金钱。

2022 Java 程序员路线图 「更新高阶版」

另一方面,如果价格是个问题,你也可以查看这个 Udemy 课程——Java 中的并发、多线程和并行计算,如果你在每月发生的 Udemy 闪购中获得它,花费不会超过 10 美元. 这也是在Java中学习Java并发和多线程的一门极好的课程。

Java中的并发、多线程和并行计算

本课程是关于多线程和并发编程的基础知识以及一些并行概念。在 21 日…

2.3 Java IO

我采访了 100 多位 Java 程序员,我注意到一种模式;与 Java 集合和 Java 多线程 API 相比,他们都对 Java IO 和 NIO API 知之甚少。我可以理解很多人花费大量时间学习这两个 API,但你不能离开这些关键的 API。

如果您必须编写真实世界的核心 Java 应用程序,则需要使用包中的、、、等类File,这是 Java IO API 的核心。同样,如果您想编写基于套接字的应用程序,您还需要了解API 中的、、和其他关键类。InputStreamOutputStreamReaderWriter java.ioByteBufferFileChannelSelectorjava.nio

不幸的是,没有多少专门的资源来教授 Java IO 和 Java NIO API,但是The Complete Java Masterclass 是掌握这个 API 的一个很好的资源。在本课程中,您将从该 API 中找到许多基本概念。

2022 Java 程序员路线图 「更新高阶版」

2.4 Java 8 特性

现在,Java 程序员应该学习的下一个也是另一个必要的 API 是 Java 8 特性,它彻底改变了当今 Java 的编码和编程方式。要在 2022 年成为 Java 开发人员,您必须知道如何使用Lambda 表达式、Stream API、可选类以及新的日期和时间 API。

在不了解这些 API 的情况下,在 2022 年编写 Java 应用程序将非常困难。大多数库现在也停止支持低于 Java 8 的版本,这意味着您必须现在学习 Java 8 的特性。Java 8 发布已经 5 年了,所以你真的没有任何借口了。

在学习 Java 8 特性方面,市场上有很多优秀的资源可供使用。不过,如果您已经了解 Java,我建议您选择只关注 Java 8 功能的资源,例如面向经验丰富的开发人员的 Java 8:Lambdas、Stream API 和 Beyond教育课程。这样,您可以立即学习 Java 8。

2022 Java 程序员路线图 「更新高阶版」

虽然 Java 8 特性对于核心 Java 开发人员来说是必不可少的,但如果可以的话,请学习从 Java 9 到 Java 13 引入的所有其他新特性,例如模块、var 局部变量、集合的静态工厂方法、文本块、Switch 中的字符串等等更多的。如果您需要更多资源,可以查看此课程列表以了解 2022 年的所有新 Java 功能。

3. 框架

Java 最好的一点是它有一个充满活力的生态系统,这意味着几乎所有东西都有很多框架和库。通常,我不建议 Java 开发人员在需要在项目中使用框架之前学习它。尽管如此,还是有一些框架和库,我相信每个 Java 开发人员都应该知道,例如Spring、Spring Boot、Hibernate、Log4j、JUnit等。

3. 1 Spring框架

如果你想在 2022 年成为一名 Java 开发人员,我强烈建议你先学习 Spring Framework。这是最流行的 Java 框架之一,从字面上看,我在过去 5 年中开发的几乎每个 Java 应用程序都使用了这个框架。

Spring Framework 鼓励编写干净的代码,通过为您提供依赖注入和控制反转等功能,更易于测试和维护。它还为大多数日常任务提供了丰富的 API,这就是每个 Java 开发人员都应该学习 Spring 框架的原因。

而且,如果你想学习 Spring 框架,没有比Spring Framework 5: Beginner to Guru更好的课程了。它涵盖了 Spring 5,即 Spring 5 的最新版本,并以比任何其他课程都更实际的方式教授 Spring。

3.2 休眠

我推荐每个 Java 开发人员学习的第二个框架是 Hibernate,它基于 JPA(Java Persistence API)。准确地说,Hibernate 出现在 JPA 之前,但是因为JPA是 Java 中实现持久层的标准 API,所以 Hibernate 实现了它。

现在,为什么要学习 Hibernate?好吧,因为您将使用的大多数 Java 应用程序都将与数据库交互,并且在没有像Hibernate这样的适当框架的情况下使用JDBC处理 Java 中的数据库是非常痛苦的。

它提供了一些基本功能,例如开箱即用的缓存和事务,这意味着您有更多时间专注于应用程序逻辑,而不是在应用程序中实现缓存。这极大地提高了 Java 应用程序的性能,也是迄今为止我使用 Hibernate 的最重要原因。

现在,当谈到学习 Hibernate 时,市场上有很多很好的资源,但是Spring & Hibernate for Beginners课程是我的首选,因为你可以一块石头杀死两只鸟,你可以在一节课中学习 Spring 和 Hibernate而不是为他们参加单独的课程。

2022 Java 程序员路线图 「更新高阶版」

顺便说一句,如果您真的想掌握 Hibernate 或寻找高级 Hibernate 课程,那么 Vlad Mihalcea 的High-Performance Java Persistence一书和该课程是任何人的最佳资源。

高性能 Java 持久性 - Mach 1 - 下载版

Vlad Mihalcea 是 Java Champion 和顶级 Hibernate ORM 项目提交者之一。他创造了Hypersistence…

3.3 春季启动

这是我推荐每个 Java 开发人员在 2022 年和未来学习的另一个框架。Spring Boot采用了 Spring 的简化理念,使与 Spring 本身的工作变得容易。就像 Spring 使创建 Java 应用程序变得更容易一样,Spring Boot 使创建基于 Spring 的 Java 应用程序变得更容易。

自动配置等功能消除了与配置 Spring 应用程序相关的大部分痛苦。同样,starter POM 功能将常用的依赖项分组为简单的可重用 POM。

3.4 Java 微服务框架——MicroProfile、Micronaut 和 Quarkus

虽然学习 Spring Boot 和 Spring Cloud 足以使用 Java 开发微服务,但您可以探索一些更高级的框架,例如 Eclipse 的 Microprofile、Micronaut 和 Quarkus。

3.4.1夸库斯

Quarkus 是 Java 开发人员很有前途的框架之一。它是为 OpenJDK HotSpot 和 GraalVM 量身定制的 Kubernetes 原生 Java 堆栈,采用同类最佳的 Java 库和标准制作而成。Quarkus 为 GraalVM 和 HotSpot 定制您的应用程序,以获得极快的启动时间和极低的 RSS 内存(不仅仅是堆大小!)。

它还使用称为编译时引导的技术在 Kubernetes 等容器编排平台中提供即时可扩展性和高密度内存利用率。在为 Quarkus 开发应用程序时,您还可以使用熟悉的命令式代码和非阻塞响应式样式。

简而言之,它是 Java 开发人员创建应用程序的最佳平台之一,也是 2022 年值得学习的东西,如果你想学习 Quarkus 并需要资源,那么使用 Java 和 GraalVM 进行 Quarkus 后端开发是一个很好的开始。

3.4.2Eclipse 微配置文件

这是一项旨在为微服务架构优化企业 Java 的计划。它由 Eclipse 驱动,Eclipse 是 Java 的领先组织之一,也是流行的 Eclipse IDE 背后的公司。

MicroProfile 的 Eclipse 的目标是定义用于构建微服务的标准 API,并跨多个 MicroProfile 运行时交付可移植的应用程序。Eclipse Microprofile 的当前版本是 3.2,它是 2022 年学习的有用 Java 框架。

3.4.3微航海

这是您可以在 2022 年学习的另一个 Java 框架。Micronaut 是一个现代的、基于 JVM 的全栈框架,用于构建模块化、易于测试的微服务和无服务器应用程序。

它是一个多语言框架,允许您使用 Java、Kotlin 或 Groovy 创建应用程序。Micronaut 的一些关键话题是缩短启动时间、极快的吞吐量和最小的内存占用。

如果您想了解有关 MicroNaut 的更多信息,还可以查看学习 Micronaut — Udemy 上的使用 Java 的云原生微服务课程。课程不多,但这一门和 MicroNaut 文档足以开始使用 MicroNaut 开发应用程序。

4. 测试

测试是任何 Java 开发人员的基本技能,尤其是单元测试、集成测试和自动化测试。至少,每个 Java 开发人员都应该熟悉JUnit和Mockito,这两个最流行的单元测试和 Mock 库。

如果您知道这两个并且知道如何使用它们来有效地创建单元测试,那么您将成为一个比没有它们更好的 Java 开发人员。

还有更高级的库,例如用于业务驱动测试的 Cucumber、用于集成测试的Robot Framework,但 JUnit 无可替代,您将始终需要它。

对于模拟库,您有几个选择,例如 PowerMock、Mockito 和 EasyMock。尽管如此,我还是强烈建议您学习 Mockito,因为它是一个庞大的库,而且许多 Java 开发人员和公司也在这样做。它正在慢慢成为在 Java 中创建模拟对象的标准库。

如果您想从头开始学习 JUnit 和 Mockito,那么我还建议您加入In28Minutes 在Udemy 上的 30 步课程中使用 Junit 和 Mockito 学习 Java 单元测试。这是开始使用这两个库的实用和动手课程。

如果您需要比您更多的选择,我已经分享了很多资源,例如书籍和课程,您可以查看这些以了解更多信息。

5. 实用程序库

Java 的真正力量在于其充满活力的开源库生态系统。你会发现在 Java 中几乎可以做任何事情的库,从日志记录到机器学习,从发送 HTTP 请求到解析 JSON 等等。

除此之外,Java 还幸运地拥有 Apache Commons 和 Google Guava 等实用程序库,这两个库有效地补充了 JDK 库。我还为 Java 开发人员分享了20 个 Java API 和库的列表。

我建议您仔细阅读该列表,您可能已经拥有其中的一半,但如果您不学习它们,它们非常非常有用,可以帮助您编写更好的 Java 程序并更快地交付。

6. 数据库

数据库访问是许多 Java 应用程序的重要组成部分,幸运的是 Java 带有 JDBC(Java 数据库连接)API,它提供了一组标准的 API 用于连接到任何关系数据库。

作为应用程序开发人员,您只需要了解 API,因为所有供应商都提供了这些 API 的实现。您只需要将他们的 JAR 文件包含到类路径中,您的代码就可以正常工作。

顺便说一句,JDBC 不是与数据库交互的唯一选择,还有一些开源库,如JOOQ,可以帮助您用 Java 编写 SQL 查询。

jOOQ 从您的数据库生成 Java 代码,并允许您通过其流畅的 API 构建类型安全的 SQL 查询

7. 桌面和前端

Java 为开发 GUI 客户端提供了很棒的 AP​​I,例如 Swing 和 Java FX。Swing 几年前真的很流行,但现在 C# 已经领先,但 Java FX 是另一种流行的 Java API,用于在 Java 中开发 GUI 应用程序。

如果你想开发像 NetBeans 这样的 GUI 应用程序,它是著名的 Java 编辑器之一,也是用 Java 编写的,那么你可以在 2022 年学习 Java FX。我不建议你学习 Swing,除非你在一家支付你工资的银行工作每月花费数千美元来维护他们基于 Swing 的交易 GUI。

继续阅读