研究:2019 年提升 Java 职业生涯所需的技能
自 2001 年以来,Java 在Tiobe 评级中的最低排名是第 2 位。
根据StackOverflow 开发者调查,2019 年,Java 是全球第五大最受欢迎的编码语言。
除了数字之外:当我写这些内容时,我的笔记本电脑建议我更新 Java,因为我需要它来运行一堆程序,例如文本处理器和科学包。
使用如此广泛使用的语言可能需要很多特定的技能。在CV Compiler,我们试图找出 Java 开发人员究竟需要哪些技能才能在 2019 年的职业生涯中脱颖而出。
2019 年 Java 开发人员需要具备的技能
延续我们的系列文章,我们从 AngelList、StackOverflow、LinkedIn 等网站收集了 300 个 Java 开发人员职位空缺。这些职位来自不同规模和不同领域的公司。以下是结果——对被提及最频繁的技能进行评分。
2018 年,Java EE 更名为 Jakarta EE,因为它现在由 Eclipse 基金会支持开发。然而,旧名称在职位规范中仍然经常出现,因此我们决定将其包含在图表中,而不是使用新名称。
注:此数据更多指市场需求而非行业洞察。图表反映的是雇主的偏好,而非开发者本身。如需了解行业洞察,请参阅JetBrains 的《开发者生态系统现状调查》等调查。
关键要点
我们的主要结论是:Java 开发人员的需求量很大。我的意思是,真的非常大。如果你在 LinkedIn 搜索栏中输入“Java”,就会出现 37 万个职位空缺。相比之下,Python 的职位空缺有 24.9 万个,JavaScript 的职位空缺有 27.8 万个。
以下是我们对 Java 开发当前和未来趋势的研究得出的一些其他重要结论。
Web编程
根据我们的研究,大多数公司倾向于使用Spring MVC构建其 Web 应用程序的后端,而最广泛的前端框架是Angular(95)或React.js(50)。当然,这并不意味着 Java 开发人员必须精通 JavaScript 前端框架,但大致了解这些技术的工作原理以及如何与 Java 代码交互肯定大有裨益。
在图表中未提及的 Java 后端框架中,
Apache Struts(33)是最受欢迎的。但是,我建议只有当你(未来的)雇主肯定会使用它时(例如,维护旧应用程序),才学习这个框架。Struts 的最新版本是 5 年前发布的,但 Spring 并非如此,它一直在努力跟上最新的 Java 更新。此外,Spring MVC 只是复杂解决方案的一部分,它可以处理应用程序的许多方面(例如测试或数据访问)。
数据处理
大数据并非 Java 最流行的用途,但根据我们的研究,它似乎在不久的将来会获得发展势头。据 IBM 称,90% 的数据都是在过去两年内创建的,因此我们绝对需要强大而稳定的解决方案来处理所有这些信息。我认为 Java 就是其中之一。或许,有一天它甚至会与 Python 共享数据科学市场 :)
目前,一些雇主已经要求求职者熟悉一些数据相关的解决方案,例如Apache Kafka(49)、Hadoop(27)、Azure(23)和Spark(21)。此外,“大数据”一词在我们分析的职位空缺中被提及了33次,这相当引人注目。
JVM 语言
由于我们仅分析 Java 开发人员的职位空缺,因此所有 JVM 语言的提及频率均不足以进入我们的图表。然而,它们仍然符合一些职位要求,其中最受欢迎的是Scala(33)。如果您还不熟悉 Scala,您可能需要在 2019 年进一步了解它(尤其是在处理数据方面)。
微服务
许多经验丰富的开发人员认为Java 是微服务开发的最佳语言。因此,看到“微服务和Spring Boot”这两个术语在我们的排行榜上名列前茅也就不足为奇了。开发人员也热爱微服务:更好的微服务支持是 Jakarta EE 在 2019 年社区的首要任务。
我想,在 2019 年,扩展你对这项软件开发技术的知识是必须的。顺便说一句,你可能还想了解更多关于服务网格的知识。虽然Istio (7)这个术语的提及频率不如Kubernetes (18)那么高,但随着微服务应用的日益普及,类似的编排技术肯定会变得更加流行。
Web 服务器和数据库
最后,如果谈到NoSQL数据库,雇主们更倾向于选择Cassandra(41)和MongoDB(33)。至于Web服务器,Tomcat(35)和Apache(35)是佼佼者。
Java 趋势:专家观点
以下是专家对即将到来的 Java 趋势的看法。
在不久的将来,我们可能会看到人们对在 GraalVM 上运行的 Quarkus 及其相关技术的兴趣日益浓厚。例如,随着 Java 响应容器革命,Vert.x 也将成为可能。
James Governor ,RedMonk
创始人。Twitter
Spring Boot 的受欢迎程度与“经典” Spring 相比相对较低,这让我感到惊讶。另一方面,Java EE 排名第二却让我感到惊喜。JPA(Java 持久性 API)是 Java EE API 之一,它被列为独立项目,再加上对 SQL 技能的强劲需求,表明人们对关系数据库的兴趣持续增长。
对 Maven 技能的强劲需求与我的实际经验相符:Maven 是领先的构建工具之一。Apache Kafka 目前在各种会议上非常流行,但它并非适用于所有项目的通用架构,这解释了它的需求相对较低。
我还预计对 Google Cloud 和 Azure 技能的兴趣会有所提升——这两种云技术都已在项目中被广泛使用。在 2019 年 5 月,拥有 JPA、SQL、JMS(Kafka 也是 JMS 的一个实现)、JAX-RS(REST)、Maven(Java EE 中的默认语言)和 Git(事实上的标准)方面经验丰富的 Java EE 开发人员在市场上处于最佳位置。
Adam Bien,
Java 冠军、JavaOne Rockstar 顾问。
博客|叽叽喳喳
如今,Spring 框架和微服务架构已成为 Java 世界事实上的标准。但不断发展的行业要求软件工程师在掌握现有技能的同时,还要学习新的技能。服务网格和服务代理正在改变微服务的开发方式,因此雇主正在寻找精通 Istio、Linkerd2 或 Envoy 的工程师。随着越来越多的公司转向公有云和混合云计算,拥有亚马逊 AWS、谷歌云平台或微软 Azure 的使用经验至关重要。
响应式编程在 Java 领域仍在蓬勃发展。尽管我并不认为它会完全取代更传统的命令式方法,但精通响应式编程的工程师仍然供不应求。探索什么是响应式编程以及它如何改变 Java 生态系统的状态是值得的。积累一些响应式框架(Project Reactor、RxJava、Spring WebFlux 等)的经验,并了解响应式编程与构建响应式系统的区别。
在数据存储方面,NoSQL 和多语言持久化是当今工程师必备的技能,但全球化系统正在催生对新型数据库管理解决方案的需求。强一致性 Google Spanner 就是一个以服务形式提供的、可用于生产的 NewSQL 数据库的例子。虽然很难预测 NewSQL 存储解决方案本身的普及程度,但未来是高度分布式软件的天下,因此了解一致性系统背后的原理,尤其是共识协议至关重要。
Alex Borysov,
Netflix 高级软件工程师,前 Google 员工。Twitter |
YouTube
对于企业级 Java 项目来说,这种技能评级似乎比较合理。然而,我发现 SOA 的需求已经不多了。至于 Spring 和 Spring Boot,它们经常同时使用,所以这种区别可能已经不再重要了。
展望未来,我确实看到了对各种云原生技术的趋势和日益增长的兴趣。如果这种趋势持续下去,几年后可能会更有吸引力。
Sebastian Daschner,
Java Champion
个人网站
Java 开发者(与所有开发者一样)始终受益于对核心工具和语言(例如 Git 和 SQL)的深入了解。无论您使用哪种操作系统,任何脚本语言都能加速您的工作。想要进步的开发者还应该了解代码运行的基础设施(云)以及代码如何到达那里(CI)。
我们的工作不是编写代码,而是修改软件。了解更广泛的系统,包括业务领域,将使开发者在使用 Java 和其他任何语言时做出更好的决策。
Jessica Kerr,
Atomist
Twitter开发者|博客
Java 是一门成熟的语言,拥有一套稳定的工具来满足不同的需求。然而,由于它不断发展,因此时刻关注 Java 的动态对你的职业生涯发展至关重要。希望本文能帮助你了解最新的 Java 趋势!
额外提示:想知道你的 Java 开发人员简历有多优秀吗?点击此处即可编辑简历,并与业内最佳实践进行比较。免费获取你的简历评分!
鏂囩珷鏉ユ簮锛�https://dev.to/stetsenko_me/research-skills-you-need-to-boost-your-java-career-in-2019-28j8