大家好,我相信大家在新的一年都有一个良好的开端,并准备好制定一个提升自我技术的目标。作为 Java 开发人员,我还制定了一些目标,希望在今年成为一名更好的 Java 开发人员。

如果你尚未制定目标,这将帮助你制定 2020 年的目标。作为一名程序员,我们面临的最大挑战是使自己保持不断学习的状态。技术变化非常快,每两年你就会看到新版本的编程语言和框架。

今年也有很多的变化,每 6 个月更新一次 Java 新版本、Spring 5、Spring Security 5 和 Spring Boot 2,对于 Java 开发人员而言,这可能是最繁忙的一年。

2019 年的时候,我以为 Java 11 是新的,在我无法完全学习 Java 11 之前,Java 12 和 Java 13 已经为我们准备好了。自 JDK 9 以来,所有这些 Java 版本都具有许多令人兴奋的功能,例如文本块(多行字符串),switch 表达式,局部变量的 var,API 增强,GC 改进,线程本地握手(机制优化)等,我真的很高兴能在 2020 年学到这些内容。

Spring framework 和 Spring Security 也是如此的,我还不知道 Spring 4.0 和 Spring Security 4.0 上的所有更改,我的项目仍在使用 Spring Security 3.1,然而现在已经有了 Spring 和 Spring Security 的 5.0 版本。

在过去的几年中,我的学习速度有所下降,还没有掌握最新的技术,比如容器-Docker 和 Kubernetes,AWS、GCP 和 Azure 等云平台,单元和集成测试空间的最新变化以及简化结构的新版本,如 Spring、Spring Security 和 Spring Boot。

因此,2020 年将是让我自己了解技术方面最重要的事情,探索 DevOps 和云计算领域,特别是 Docker、Kubernetes 和 AWS 的 Jenkins。

分享一张后端路线图(国外的一位大佬总结的),可以去图中的网站下载,或者在【武培轩】微信公众号回复【路线图】获取。

2020 年 Java 开发人员可以学习什么?

这是我认为 Java 开发人员应该在 2020 年学习的东西,很可能你已经了解了其中的大多数,但是更好地学习它们并进行深入研究不会对你有害处的。

1.容器(Docker 和 Kubernetes)

你可能已经听说过 Docker 和 Kubernetes 等容器技术,以及它对 DevOps 团队的影响。Kubernetes 是你可以学习的最重要的工具之一,并且将陪伴你的整个职业生涯。

如今,无论是大型企业还是小型创业公司,几乎每个开发团队都使用 Docker 和 Kubernetes。可以肯定地说,如果你现在开始学习,很有可能在工作中的某个时候用到 Docker 或 Kubernetes。

简而言之,无论你是初级 Java 开发人员还是经验丰富的资深人士,拥有 Docker 和 Kubernetes 知识对于你的职业发展和工作变动都是至关重要的。

2.云平台(AWS 、GCP 或 Azure)

除了容器,云是我认为每一位软件开发人员都应该在 2020 年学习的另一件事。各种规模和领域的公司现在都在将其环境迁移到云中,以节省成本和更好的可扩展性,这意味着你迟早要需要使用云原生应用程序。

它们对于数据科学,机器学习和人工智能领域中的迅猛发展是紧密相连的,因为只有云才能提供那些资源匮乏的模型所需的计算能力。

像 Amazon Web Service(AWS),Google Cloud Platform(GCP)或 Microsoft Azure 这样的学习型云平台不仅在你当前的工作上。你不需要学习所有这些知识,实际上,学习一种知识意味着你将对其他事物有一个公平的想法。

如果你要学习云平台相关的知识,那么我首先建议你学习 AWS,因为它是最流行和最成熟的云平台。

3. Git

Git 和 Github 已经使用有一段时间了,虽然我过去在 IDEA 中使用过 Git,但是在命令行上我对 Git 还不是很熟悉。

为什么到目前为止我还没有掌握 Git?只是因为我还不需要它,我偶尔会从 Github 下载项目并从 IDEA 运行,但是我仍然是 Git 新手。

从现在开始,大多数公司都将其项目从 SVN,CVS 迁移到 Git,这也是学习和掌握 Git 的重要时机。

4.单元测试(JUnit 和 Mockito)

我想在来年改进的另一个领域,Java 程序员可以使用许多新的框架和工具进行单元测试,并对其应用程序进行集成测试,例如用于模拟对象的 Mockito 和 PowerMock,用于自动集成测试的 Robot Framework 和Cucumber,当然还包括新的 JUnit 5 库。

在这方面有很多东西要学习,如果你可以花一些时间来提高单元测试技能,那么不仅可以提高你的编码专业知识,而且可以使你成为更专业的开发人员,每家公司都将以此为形式。

5.从 JDK 9 到 13 的新 Java 功能

正如我过去所说的那样,我像许多 Java 开发人员一样仍在努力追赶六个月发布一次的 Java 版本。我今年花了一些时间学习 Java 9、10、11 和 12 的新功能,但是对我来说,直到我使用 LTS 发行版 Java 13 之前,Java 11 仍然是优先事项。

JDK 9 在模块,拼图,反应流,Process API,HTTP2 客户端,JShell 和 API 改进(如集合工厂方法)方面带来了很多好处,我非常希望能尽早学习它们。

同样,JDK 10 带来了var,使你可以进行动态类型化和 GC 改进。然后,在JDK 12 和 JDK 13 的 Switch 表达式、文本块。

6. Spring Framework 5+

自从我们看到 Spring 和 Java Ecosystem 进行了许多重大升级以来已经有两年了,Spring Framework 5.0 就是其中之一。我一直在听说一些新功能,例如 Spring 5 的反应式编程模型,Java 8 和 9 的采用,某些单元测试的改进等,但是我还没有尝试过。

无论如何,我已经开始学习 Spring 5.0.0,并将保持这种势头在 2020 年持续下去。如果你使用 Spring,可能是学习 Spring 5.0 的最佳时机。

7. DevOps(Jenkins)

去年,随着越来越多的公司进入DevOps并采用持续的集成和部署,这是另一个吸引我的领域。

DevOps 非常庞大,你需要学习很多工具和原理,这就是让很多开发人员不知所措的原因,但你不必担心。下面分享了一个大佬总结的 DevOps 路线图(公众号【武培轩】回复【路线图】获取),你可以按照自己的速度学习和掌握 DevOps,尤其是 Jenkins。

这意味着,如果你是一位经验丰富的 Java 程序员,并且热衷于管理环境,自动化和改善整体结构,那么你可以成为DevOps 工程师。

8. RESTful Web 服务

我想在 2020 年继续改进的另一件事是我对编写 REST API 以及使用 Spring 使用 Java 实现安全且可扩展的RESTful Web Service 的了解。

这是 Java 世界中非常需要的一项技能,并且很少有人同时了解 Java 和 REST。如果你也一样,并且想学习如何使用Spring 开发 RESTful Web Service,那么让我们一起在 2020 学习。

9. Spring Security 5.0(OAuth)

Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了 Spring IoC(控制反转),DI(依赖注入)和 AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。

这是 Spring 生态系统的第三次重大升级,Spring Security 5.0.0 的主要亮点在于它只需要最小化的 JDK 8、反应式安全特性、OAuth 2.0(OIDC)和现代密码存储,你绝对不能错过。

与 Spring 5.0 框架一样,这是 2020 年我的另一个优先事项。

10. Spring Boot 2 和微服务

Spring Boot 2.0 中引入了众多令人激动的新特性,包括支持 Java 9、HTTP/2、基于 Spring 5 构建、强力集成 GSON 等等。

那么在时间允许的情况下,你还应该花一些时间学习 Spring Boot 2 和微服务,我相信它会给你带来不一样的体验。

11. Apache Spark 和 Kafka

我想在 2020 年继续深入探索的另一件事是大数据,主要是 Apache Spark 和 Apache Kafka 框架。我不确定是否有时间去看其他大数据技术,但是它的好东西和大数据可能是目前最热门的技术。

总结

这就是 Java 程序员在 2020 年可以学到的一切吗?就像我说的那样,技术日新月异,程序员面临的最大挑战是使自己保持不断学习的状态。除了以上这些技术外,肯定还有很多其他的东西,你可以查找在新的一年就像学习一门新的编程语言如 Kotlin,但对我来说,如果我能在 2020 年实现这些目标,我会更高兴。

2020 年 Java 程序员应该学习什么?的更多相关文章

  1. 2020年Java程序员应该学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  2. Java程序员面试学习资料汇总

    整理了一些关于Java程序员面试的书籍及免费资料. 一.书籍篇1)<Offer来了:Java面试核心知识点精讲(原理篇)>精讲Java面试必需的JVM原理.Java基础.并发编程.数据结构 ...

  3. Java程序员需要学习的知识点

    Java是全世界最受欢迎的3大编程语言之一,它可以开发出许多实用的WEB应用程序和桌面应用程序,更重要的一点,Java是跨平台的语言——编写一次,可以再任何地方运行.另外,Java也很容易入门,如果你 ...

  4. java程序员从小工到专家成神之路(2020版)

    目录 必须掌握的基础知识 1. Git & Github 2. Linux 3. 数据结构和算法 4. HTTP / HTTPS 5. 设计模式 6. 计算机原理 java学习之路 1. 工具 ...

  5. 写给自己的Java程序员学习路线图

    恩,做开发的工作已经三年多了,说起来实在是惭愧,自己的知识树还像一棵小草一样,工作中使用到了许多的知识和技术,不过系统性不够.根基不牢.并且不够深入!当然,慢慢的我也更加的清楚,我需要学习一些什么样的 ...

  6. 聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  7. 写给自己的Java程序员学习路线图_转载

    如下是我做开发这三年经常使用一些技术和工具,当然这些技术也都是需要加强的(有些是我一直使用的,不过不深入,有些内部的原理等等不是很清楚) 前端部分: 1)HTML:网页的核心语言,构成网页的基础 2) ...

  8. Java程序员学习之路

    1. Java语言基础 谈到Java语 言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基 ...

  9. [转] Java程序员学C#基本语法两个小时搞定(对比学习)

    Java程序员学C#基本语法两个小时搞定(对比学习)   对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. ...

随机推荐

  1. pytorch 动态调整学习率 重点

    深度炼丹如同炖排骨一般,需要先大火全局加热,紧接着中火炖出营养,最后转小火收汁.本文给出炼丹中的 “火候控制器”-- 学习率的几种调节方法,框架基于 pytorch 1. 自定义根据 epoch 改变 ...

  2. array_map 用法

    array_map - 将回调函数作用到数组中的每一个元素上 function add2($value) { return $value + 2; } $arr = array(1, 2, 3, 4, ...

  3. Android本地数据存储: Reservoir

    一:前言 今天做项目,准备使用本地存储,把一些数据存在本地磁盘上,比如用户名.密码这样的.其实大家都知道,这种情况最常用的就是SharedPreferences了,我也不例外,脑子里第一个想到的就是用 ...

  4. JS拉平数组

    JS拉平数组 有时候会遇到一个数组里边有多个数组的情况(多维数组),然后你想把它拉平使其成为一个一维数组,其实最简单的一个方法就是ES6数组方法Array.prototype.flat.使用方法如下: ...

  5. C#循环语句练习(二)

    1.求1!+2!+...+n! 所有阶乘的和 2.求100以内的质数 (1)第一种做法 (2)另一种做法 3. 总数=幼兔+小兔+成兔成兔=上个月的小兔+上个月的成兔小兔=上个月的幼兔幼兔=这个月的成 ...

  6. Treap(树堆)入门

    作者:zifeiy 标签:Treap 首先,我么要知道:Treap=Tree+Heap. 这里: Tree指的是二叉排序树: Heap指的是堆. 所以在阅读这篇文章之前需要大家对 二叉查找树 和 堆( ...

  7. H3C 配置RIP peer

  8. 试用ZooKeeper

    ZooKeeper下载 通过ZooKeeper官网下载最新的稳定版本 解压ZooKeeper到某个目录,其目录结构为: 运行环境要求 系统环境 ZooKeeper对于市面上各种操作系统都有了不错的支持 ...

  9. 在HTML中的下拉框中怎样实现超连接?

    给你个例子自己改吧: <SELECT name="select" onchange="window.open(this.options[this.selectedI ...

  10. Html5 @media + css3 媒体查询

    css3 media媒体查询器用法总结   随着响应式设计模型的诞生,Web网站又要发生翻天腹地的改革浪潮,可能有些人会觉得在国内IE6用户居高不下的情况下,这些新的技术还不会广泛的蔓延下去,那你就错 ...