2020年,Java程序员应该学习哪些技术呢?

温暖如初


这是一个非常好的问题,作为一名IT从业者,同时也是一名教育工作者,我来说说我的看法。

首先,当前IT(互联网)行业内有大量的Java程序员,由于Java语言是比较典型的全场景编程语言,所以Java程序员的主攻领域也不尽相同,从IT(互联网)行业的技术发展趋势来看,未来很长一段时间内Java语言依然有大量的应用场景,但是随着Python、Go等语言的崛起,Java程序员如果不做技术升级,自身的职场竞争力还是会受到一定的影响。

随着大数据和人工智能被列入到“新基建计划”,相关领域会陆续释放出更多的发展机会,所以当前的Java程序员应该重点关注一下大数据和人工智能知识的学习,这不仅能够为自己打开更大的发展空间,同时也会明显提升自身的职场价值。

对于很多Java程序员来说,从大数据开始学习是比较现实的选择,原因有三点,其一是大数据技术体系已经趋于成熟,在学习大数据的过程中会有更好的学习体验,同时也会有大量的案例可以参考;其二是大数据领域的开发难度相对人工智能来说要低一些,而且岗位人才需求类型也比较丰富,对于一部分数学基础比较薄弱的Java程序员来说,也可以参与到大数据产业链中;其三是大数据开发岗位比较多,这一点在近两年的人才招聘上就有一定的体现,很多研究生会放弃竞争激烈的算法岗位,转而从事大数据开发岗位。

最后,大数据技术体系非常庞大,对于Java程序员来说,学习大数据技术可以根据自身的知识基础和岗位特点来制定学习计划,按照历史经验来看,Java程序员学习大数据可以分成三个学习阶段,其一是大数据平台学习阶段;其二是算法设计(机器学习)阶段;其三是行业实践阶段。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!


IT人刘俊明


首先要学习一下几点:

1、熟练使用一种 IDE。Intellij IDEA或者 Eclipse 都可以。至少熟悉常用的快捷键,会 debug(包括远程 debug)项目。

2、熟悉一种编辑器。比如 Vim/Emacs/Sublime Text,至少学会搜索/替换/代码补全。

掌握 Java。经典的《Java 核心技术:卷1 基础知识》(或者《Java 编程思想》)必看,跳过其中的图形和 applet 章节。习惯查阅 Java API Doc。为了保证代码的质量,《Effective Java》、《Clean Code》和《重构》也需要至少通读一遍。

3、熟悉 Linux 开发环境和 bash shell。

4、掌握 JDK 以外的常用类库和工具包。

学习代码规范。

一、面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;什么是抽象类,什么是接口。了解了概念后,您还需要这些概念是如何体现的,如类和对象有什么区别?类是如何封装的?

二、JAVA语法:如果您有C++等面向对象语言的开发经验,您只需简单的翻看一下介绍JAVA的相关书籍就可以了。如果您是新手,没有关系,您下些工夫,好好研究一本JAVA初级教程之类的书就可以了。

三、JSP和HTML:做JAVA程序员都少不了和JSP以及HTML打交道。因此,想成为JAVA程序员就不可避免的要熟悉JSP和HTML,您最好能知道JSP的几个内置对象,如Session,Request,Reponse,以及常用的JSP标签,如include,userBean等。如果您再熟悉一下JS和CSS就更好了,那会使您制作的页面更友好。

四、WebServer:熟悉了以上三种,可以肯定的说您已经可以制作出来JSP页面了,您也可以在您的页面里使用自己开发的JAVA类(JAVABEAN)了,但您的页面总要跑起来才能看到您要的效果,这就要求您必须熟悉一种WebServer,比如:TOMCAT,RESIN等。您要熟悉如何发布您的应用,如何利用WebServer的数据库资源等。

五、开发工具:大家都知道,开发工具可以帮助您更好更快地开发,因此熟悉几种开发工具很有必要。目前JAVA的开发工具比较流行的有JBuilder,IDEA,Eclipse,HTML的开发工具有Dreamweaver等。

六、熟悉一种框架:熟悉一种框架其实是成为JAVA程序员的一种可选知识,但目前开发B/S结构的应用的开发小组,都差不多会采用一种框架来构建自己的应用系统。框架都会有许多可重用的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本。目前比较流行的框架有Struts和Spring等。



不是毛毛雨不打伞


这是我认为 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 非常庞大,你需要学习很多工具和原理,这就是让很多开发人员不知所措的原因,但你不必担心。

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 框架。我不确定是否有时间去看其他大数据技术,但是它的好东西和大数据可能是目前最热门的技术。


分享到:


相關文章: