在2021年成为Java开发人员的说明指南,其中包含了与相关课程的链接
你好,如果你想成为一个专业的Java开发人员或想要把你的Java技能带到一个下一级,而且不确定你可以学习哪种技术,工具,框架和图书馆,那么你已经到了正确的地方。我一直在共享大量的路线图,如Web开发人员路线图,Devops工程师路线图,以及React.js Developer RoadMap。
我从许多读者那里收到的一个请求是用于创建Java开发人员路线图。由于Java是我的专业知识,创建Java开发人员路线图并不是一个问题,但由于我获得的有限时间,我需要更长的时间来创建一个。
无论如何,我终于准备好与你分享了我的Java开发人员路线图。这条路线图包含我多年的经验和如何成为Java专家的畅通无阻的道路。
您会发现这个Java路线图答案了许多燃烧的问题,如Java开发人员应该学习哪种技术?什么工具使您成为一个更好的Java开发人员?而且,Java开发人员必须绝对学习哪个框架。
我用这种路线图尝试的一件事是为了保持曝光尽可能短,我避免提及许多替代方案,特别是当涉及图书馆和工具,并坚持行业标准的工具和库。我一直保持简单,使大多数人可以遵循它,只包括必不可少的东西,但如果有足够的愿望,我正在考虑发布Java开发人员路线图2.0添加一些高级内容,如JVM内部,分析,java 9模块,云本机Java,不同的云平台,如AWS,GCP或Azure等,以及更高级的工具,如DevOps的厨师等等。如果您有兴趣,您可以找到一个更详尽的单独博客罐列表,我在进一步的学习部分中列出。无论如何,让我们通过这个Java开发人员路线图来了解2021年如何成为Java开发人员。顺便说一句,你绝不需要了解这条路线图的一切成为Rockstar开发人员。事实上,如果您不想,您甚至不需要认真地带走它们。相反,使用这些地图作为帮助指导您的学习的起点。
任何Java开发人员的强制性技能
现在,让我们通过这个Java开发人员路线图一步一步一步,了解如何了解到2021年的Java开发人员所需的基本技能:
1. git&github
最受欢迎的版本控制系统之一。它只是不再有可能没有git了。作为程序员,您应该熟悉Git和GitHub,必需的Git概念,如分支,掌握,结账,检查,推送,也是Git Diff,Git提交等的必需git命令。
我强烈推荐Java程序员学习Git和GitHub,如果您已经使用Git工作,那么您也可以升级您的Git技能,如果您需要一个资源,那么您可以查看UDEMY上的GIT完整指南开始。
2. Linux.
不仅仅是一个Web开发人员,而且对于任何程序员,Linux命令行非常非常重要,我强烈建议您花一些时间学习它们。由于大多数Java应用程序都是服务器端,因此您经常会发现它们在Linux服务器上运行。
这就是为什么Java开发人员熟悉与文件,磁盘空间检查,流程管理以及网络命令相关的基本Linux概念和命令是必不可少的。
如果您需要资源来升级您的Linux技能,我建议签出Linux Mastery:在Udemy的11.5小时课程中掌握Linux命令行。这对任何想要从头开始学习Linux命令的人来说是一个很好的课程。
如果您需要更多资源,那么您可以使用这些免费的Linux课程开始学习Linux。
3.数据结构和算法
这些是任何程序的构建块,良好的算法和数据结构的知识对于您的下一个工作至关重要或在您当前的情况下做得好。您应该至少熟悉阵列,链接列表,哈希表,二进制树,队列,堆栈和图形等基本数据结构,以及动态编程等问题解决技术。如果您知道Trie,B-Tree,AVL树等高级数据结构,那么它也很好。但是,如果您不知道,那么我建议您加入像数据结构和算法一样的全面课程:使用Java深入潜水,这将教您所有这些基本面的一切。
4. http / https
HTTP协议是Web的骨干,对于Web开发人员必须良好地了解HTTP和HTTPS。至少您应该了解HTTP如何工作以及有什么不同的HTTP方法及其目的等。
5.计算机科学基础
如果您正在创建全球应用程序,这些应用程序在全球范围内以不同语言显示信息,那么您应该了解字符编码。
它基本上告诉您的浏览器如何显示数据。如果您想了解有关计算机科学的更多信息,您还可以查看计算机科学101:掌握Udemy上编程课程后面的理论。
6. SQL.
这是每个Java开发人员应该学习的另一个常见技术技能,因为它将帮助您解决后端问题。如果您知道SQL,您可以理解存储过程,查询数据库,并找出问题是否在Java层或数据库层中。
我强烈推荐每个编程是一个Java开发人员或Python开发人员学习SQL,它是那些易于学习的技能之一,并且在您的职业生涯中作为程序员或开发人员长时间为您服务。
如果您需要资源,我建议查看完整的SQL +数据库BootCamp:ZTLM在ZTM Academy上的Andrei Negaoie掌握课程。
7.设计模式
毫无疑问,每个程序员都应该知道Git和GitHub,因为它们是版本控制和代码存储库方面的标准。如果您想学习和主设计模式,特别是OOP设计模式,那么我建议您通过Dyemy的Dmitri Nestruk加入Java课程中的设计模式。这是学习Java中经典设计模式的现代实现的绝佳课程。
如果您需要更多资源,您还可以查看我之前的关于最佳设计模式书籍和课程的早期文章,以学习深入的面向对象的设计模式。
2021 java开发人员路线图
现在,让我们一起探索这个Java开发人员路线图,找出您可以学习在2021年成为专业Java开发人员的工具,框架,图书馆,API,工具和技能。
1.工具
“工具”部分分为不同的部分。首先,您的IDE,这是您的主要工具,并且可以做几乎所有您要求的您所要求的所有内容,运行,调试,配置文件,测试,比较文件和代码,重构等等。
1.1 IDES.
对于Java开发人员来说,有两个主要的IDE,Eclipse和Intellijidea,您可以选择其中任何一个,因为我在我的生活中使用了Eclipse,但我目前在Intellijidea工作,所以我喜欢他们两个,但大多数Java开发者我知道他们在想法中工作。
我建议您掌握智能捷径,观点和所有其他功能,以成为真正的Java主人,如果您需要资源,我认为Intellij思想技巧为Java Devs提升生产力是一个很好的开始。
1.2构建工具
第二部分是构建工具,您需要构建和部署像Maven和Gradle等项目。其中任何一个都足够了。我刚刚列出了蚂蚁,但这是遗留项目。对于所有新的Java项目,更喜欢Gradle,它比Maven更简洁。
如果您想学习Maven和Gradle,则没有许多资源。如果你问我,我推荐Apache Maven:John Thompson在Udemy上的初学者到Guru。
而且,如果你热衷于学习Gradle,我建议你通过另一个大型Udemy讲师,Bharat thippireds查看Gradle for Java开发人员。
1.3容器和Devops工具
而且,第三个和最关键的部分包括像Docker和Kubernetes,CI / CD工具等容器,如Jenkins和TeeCity等基础设施自动化工具,如Ansible。
出于这些Docker是最重要的,因为它可以轻松地设置开发环境以及它还可以更轻松地部署Java MicroServices。
Kubernetes是一个下一个级别的工具,而不是真正需要的所有Java开发人员,特别是如果您不在DevOps和管理等缩放和部署等事物,但从知识角度来看很好。
我建议熟悉Docker的知识和Kubernetes的Kubernetes对Java开发人员的基本知识,如果您需要资源,我推荐MaxImillian Schwaurzmuller的Docker&Kubernetes:Udemy的实用导游课程。您可以在一门课程中学习这两个工具。
如果您有兴趣了解这些工具,这里有一些有用的课程,可以学习构建工具和IDES
2. Java API.
学习的下一个重要事项是JDK API,这对任何Java开发人员来说都非常非常重要。这是一个很大的部分,这就是为什么它分为Java系列框架,Java并发,Java IO和Java 8 API等核心区域,让我们探索它们中的每一个
2.1 Java Collections框架
这是每个Java开发人员应该学习的最重要的Java API之一。此API提供了类似Java的链接列表中的标准数据结构的实现,设置,堆栈,队列,哈希表,优先级队列等。至少您应该了解arraylist,hashmap,hashset,linkedhashset,treeet等所有日常对象。每个都有其不同的属性,如arraylist,它是一个可以增长的动态阵列,Hashmap是哈希表的标准实现,可以用于存储键值对。类似地,HashSet是一个不允许重复元素的集合实现。我强烈建议您查看Java基础:Richard Warburton在Pluralsight的Collections课程学习Java集合框架深度。
2.2 Java并发
在Java集合之后,下一步,Java中最重要的API是关于多线程和并发性的,我坚信如果您想成为一个主管的Java开发人员,您必须具有稳定的理解和命令Java Concurrency API。您不仅要深入了解基本的基本概念,如线程,可抵押,对象锁定和同步,但您也应该熟悉僵局,加藤,种族条件等概念,以及如何处理它们。您还应该了解像Java 5和后续版本上添加的Synchronizer等高级Java概念,我的意思是CyclicBarrier,CountDownLatch,Phaser和PerfinaleAledFuture等以及期货以及如何在Java中执行异步操作。我知道,这是很多东西,这就是为什么我建议你像Java Concrency一样,从Heinz Kabutz,Java Champion和权威于同意和设计模式时,Java Concrency的深入课程。这门课程有点贵,但你将学到更多的概念深入,这使得它完全值得你的时间和金钱。
另一方面,如果价格是一个问题,您也可以在Java中查看此Udemy课程 - 在Java中的并发,多线程和并行计算,如果您在每个月发生的Udemy Flash销售中,则不会超过10美元。这也是在Java中学习Java并发性和多线程的绝佳课程。
2.3 Java IO.
我接受了超过100多个Java程序员,我注意到了一种模式;与Java Collections和Java Multithreading API相比,它们都对Java IO和NIO API的知识很少。我可以理解,很多人花了很多时间学习这两个API,但你不能留下这些关键的API。如果您必须编写现实世界,核心Java应用程序,则需要使用文件,InputStream,OutputStream,Reader,来自Java.IO包的撰写器,这是Java IO API的核心。同样,如果要编写基于套接字的应用程序,您还需要了解ByteBuffer,FileChannel,选择器和其他关键类别。不幸的是,在Java IO和Java Nio API教授没有许多专用资源,但完整的Java MasterClass是掌握此API的很大资源。在本课程中,您将找到来自此API的许多基本概念。
2.4 Java 8功能
现在,下一步和另一个必要的API,一个Java程序员,应该学习是Java 8功能,它完全改变了Java的编码和现在编程的方式。要成为2021年的Java开发人员,您必须知道如何使用Lambda表达式,流API,可选类以及新日期和时间API。在不知道这些API的情况下,在2021年写一个Java应用程序很难。大多数库现在也停止支持的版本低于Java 8,这意味着您必须比以后学习Java 8功能。它已经发布了5年了,所以你没有借口留下任何借口。谈到学习Java 8功能时,市场上有很多优质资源。尽管如此,如果您已经了解Java,我建议您选择只关注Java 8的资源,如java 8,如经验丰富的开发人员:lambdas,Stream API和Beyond课程。这样,您可以立即学习Java 8。
虽然Java 8功能对于核心Java开发人员来说是必不可少的,但如果可以,请从Java 9引入Java 13,如Modules,用于局部变量,集合,文本块,交换机中的字符串的静态工厂方法,以及交换机中的所有其他新功能还有很多。如果您需要更多资源,可以查看此课程列表以了解2021年的所有新Java功能。
3.框架
关于Java的最佳事情是它具有充满活力的生态系统,这意味着几乎任何东西都有很多框架和图书馆。通常,我没有建议Java开发人员学习框架,直到他在他的项目中使用它。此外,还有一些框架和图书馆,我相信每个Java开发人员都应该知道春天,春天引导,休眠,log4j,junit等。
3. 1Spring框架
如果您想成为2021年的Java开发人员,我强烈建议您首先学习Spring框架。这是最受欢迎的Java框架之一,并且字面上,我在过去5年中完成了我在过去5年中所做的每一个Java应用程序都使用此框架。Spring框架鼓励编写清洁代码,这通过提供依赖注入和控制反转等功能,更容易测试和维护。它对大多数日常任务也有一个丰富的API,这就是为什么每个Java开发人员都应该学习Spring 框架。而且,如果您想学习Spring框架,则没有比Spring Framework 5的更好的课程:初学者到Guru。它涵盖Spring 5,最新版本的Spring 5,并在比任何其他课程更进一步的方式教导Spring。
3.2 Hibernate.
我推荐每个Java开发人员学习的第二个框架是Hibernate,它基于JPA(Java Persistence API)。要准确,Hibernate会在JPA之前进行,但由于JPA是一个标准的API来实现Java中的持久层,Hibernate实现它。现在,你为什么要学习Hibernate?好吧,因为你将使用的大多数Java应用程序都将与数据库进行交互,并且它正在使用JDBC处理Java中的数据库,而没有像Hibernate这样的合适框架,它令人难以忍受。它提供了一些必不可少的功能,如缓存和交易外开箱,这意味着您有更多的时间来关注您的应用程序逻辑,而不是在应用程序中实现缓存。这严重提高了Java应用程序的性能,到目前为止,我最重要的原因使用Hibernate。现在,当谈到Hibernate时,市场上有许多伟大的资源,但初学者的Spring和Hibernate是我首选的,因为你可以从一块石头杀死两只鸟,你可以在一个班级中学到Spring和Hibernate而不是为他们加入单独的课程。
BTW,如果您真正想要掌握Hibernate或寻找先进的Hibernate课程,那么Vlad Mihalcea的高性能Java持久预订和课程是任何人的最佳资源。
3.3 Spring boot
这是另一个框架,我推荐每个Java开发人员在2021年学习并前进。Spring boot乘坐了Spring的简化哲学,并使春天本身易于使用。就像Spring一样,更容易创建Java应用程序,Spring Boot使得更容易创建基于Spring的Java应用程序。自动配置等功能将带走与配置spring应用程序相关的大部分疼痛。同样,Starter Pom功能将常用依赖分组为简单的可重用POM。现在,如果你想学习Spring boot,我强烈建议你在100步课程中学习Spring boot;这是最好,最新的最新,也为日常内容提供了spring boot开发人员需要知道的逐步指南。
3.4 Java MicroService Frameworks - MicroProfile,MicroAr和Quarkus
在学习Spring boot和Spring时足以在Java中开发微服务,您可以使用几个更先进的框架,例如Eclipse的MicroOropofile,MicroAr和Quarkus。
3.4.1 Eclipse Microprofile.
这是一项旨在优化企业Java for MicroService架构的倡议。它由Eclipse驱动,是Java领先的组织之一,并将热门eclipse IDE的公司之一。
Microprofile Eclipse的目标是定义用于构建微服务的标准API,并在多个微服务架构上提供便携式应用程序。当前版本的Eclipse MicroProfile是3.2,它是2021年学习的有用Java框架。
3.4.3 Micraconut
这是您可以在2021年学习的另一个Java框架。Micraconut是一种现代化的JVM,基于JVM的全堆栈框架,用于构建模块化,易于测试的微服务和无服务器应用程序。
这是一个多胶框架,允许您使用Java,Kotlin或Groovy创建应用程序。Micronaut的一些关键谈话点是减少启动时间,快速吞吐量和最小的内存占用空间。
如果您想了解有关Micronaut的更多信息,您还可以查看Udemy上的Java课程了解MicroAntOut - 云 - 本机微服务。没有许多课程,但这一个和微长约文件足以开始使用微公布的应用程序。
3.4.3 Quarkus
Quarkus是Java开发人员的另一个有希望的框架。这是一个Kubernetes本机Java堆栈,适用于OpenJDK Hotspot和Graalvm,由畅销的Java库和标准制作。Quarkus量身定制您的应用程序的Graalvm和Hotspot,以获得惊人的快速启动时间,令人难以置信的低RSS内存(不仅仅是堆大小!)。它还使用名为Compice-Time Boot的技术提供Kubernetes等容器编排平台中的即时可伸缩性和高密度内存利用率。在开发Quarkus应用程序时,您还可以使用熟悉的命令代码和非阻塞式无反应样式。
简而言之,Java开发人员创建应用程序的最佳平台之一是在2021年创建应用程序和值得学习的东西,如果您想学习Quarkus并需要资源,那么Quarkus Heftend开发与Java和Graalvm都是一个很棒的开发。
4.测试
测试是任何Java开发人员,特别是单元测试,集成测试和自动化测试的重要技能。在最低限度下,每个Java开发人员都应该熟悉JUnit和Mockito,其中两个最受欢迎的单元测试和模拟库。如果您知道这两个并知道如何使用它们有效创建单元测试,那么您将成为一个比没有它们的更好的Java开发人员。还有更多的高级库,也存在像黄瓜对于业务驱动的测试,机器人框架进行集成测试,但没有junit替代,你将始终需要。谈到嘲弄库时,您有几种选择,如Powermock,Mockito和EasyMock。尽管如此,我强烈建议你学习模仿,因为它是一个广阔的图书馆,而且许多Java开发人员和公司都在这样做。它正在慢慢成为创建Java中的模拟对象的标准库。如果您想从头开始学习JUnit和Mockito,那么我还建议您在30步课程中加入JUnit&Mockito的学习Java单元测试,通过In28minute在Udemy上。这两个库都是一个实用而实践的过程。
如果您需要比我已经共享了更多的选择,如书籍和课程,您可以检查那些学习更多的资源。
5.公用库
Java的真正力量位于其充满活力的开源库生态系统。您将找到库以从登录到机器学习的Java中执行几乎任何内容,从发送HTTP请求到解析JSON,还有更多。除此之外,Java还很幸运能够拥有Apache Commons和Google Guava等实用库,这两个库有效地补充了JDK库。我还分享了一个20个Java API和Java开发人员的库列表。我建议你经历这个名单,你已经有一半的机会,但如果你不学习他们,他们非常非常有用,并帮助你编写更好的Java程序并提供更快的交付。
6.数据库
数据库访问是许多Java应用程序的重要组成部分,幸运的Java附带了JDBC(Java数据库连接)API,它提供了一个标准的API,用于连接任何关系数据库。
作为应用程序开发人员,您只需要知道API,因为所有供应商都提供了这些API的实现。您只需要将jar文件包含到类路径中,并且您的代码将正常工作。
顺便说一下,JDBC不是唯一与数据库交互的选项,有像Jooq这样的开源库可以帮助您在Java中编写SQL查询。
jooq从数据库生成Java代码,并允许您通过流畅的API构建类型安全的SQL查询
7.桌面和前端
Java为Swing和Java FX提供了很棒的API,用于开发GUI客户端。摇摆真的很受欢迎几年后,但是C#现在拍摄了领先,但Java FX是另一个流行的Java API,用于在Java中开发GUI应用程序。
如果您想开发像NetBean那样的GUI应用程序,那么在Java中也写得著名Java编辑器之一,那么您可以在2021年学习Java FX。除非您正在为支付您支付的银行工作,否则我不会建议摇摆。每月数千美元维护他们的摇摆贸易GUI。
如果您想在2021年学习Java FX并需要资源,那么您还可以查看UDEMY上的Java FX Concepts Bootcamp 2021课程。
您还可以在Raspberry PI上构建和部署Java FX应用程序,其中一个小但功能强大的计算机。如果您感兴趣的话,Frank Delporte在Raspberry PI初学者上使用Java和Java FX有一个很好的课程。你可以看看那门课程开始。
这就是2021个Java开发人员路线图。这是2021年学习Java的优秀资源,成为一个更好的Java开发人员。我一直保持简单,以便大多数人可以遵循它,只包括重要的东西。
Java是巨大的,还有一些地区,我没有喜欢消息,但如果有足够的愿望,我想发布Java开发人员路线图2.0,添加一些高级内容,如JVM内部,仿形,模块,云本机java,容器,消息,JNI等等。其他编程文章您可能喜欢10件事Java Programmer应该学习2021 10编程语言您可以在2021年学习10个工具每一个Java开发人员应该知道学习Java编程语言的10个理由5个基本框架Java程序员应该学习2021 10个提示更好的Java开发人员在2021前5名Java框架学习2021年的10个理由在2021年在2021年学习Python 10测试库每个Java开发人员都应该知道如何在2021年扫描Spring Professional认证,如果您想成为这博客,请考虑订阅订阅本博客通知每个新帖子,别忘了在推特上关注javarevisited!所有最好的java开发旅程!
P. S. - 如果您是Java的完整初学者,并寻找免费在线课程来学习Java Online,那么您还可以查看Udemy上的完整初学者(免费)课程的Java教程。它完全免费,超过120万人加入了这门课程来在线学习Java。
(本文由闻数起舞翻译自John Selawsky的文章《The 2021 Java Programmer RoadMap》,转载请注明出处,原文链接:https://medium.com/javarevisited/the-java-programmer-roadmap-f9db163ef2c2)