自2001年以来,Java在Tiobe评级中的最低位置一直是第二名。根据开发人员调查,2019年,Java成为全球排名第五的最受欢迎的编码语言。
科技公司正在积极招募 国际Java开发人员职位。
除了这些数字外,在我写这些行时,我的笔记本电脑还要求我更新Java,这需要一堆程序,例如文本处理器和科学软件包。
使用如此广泛的语言可能需要许多特定技能。因此,我们试图找出Java开发人员在2019年的职业生涯中到底需要具备哪些技能。
Java开发人员在2019年需要具备的技能 我们从网站为Java开发人员处理了300个职位空缺。这些职位空缺来自不同规模和活动领域的公司。结果是-最常提及的技能等级。
在2018年,Java EE被更名为Jakarta EE,因为它现在是在Eclipse Foundation的主持下开发的。但是,旧术语仍然经常在工作规格中得到满足,因此我们决定将其包含在图表中,而不是使用新标题。
注意:此数据更多是针对市场需求,而不是行业洞察力。该图表反映了雇主的偏好,而不是开发商本身的偏好。要获得行业见解,请转至JetBrains进行的《开发者生态系统状况调查》等调查。
重要要点 我们的主要结论是:对Java开发人员的需求很高。我的意思是,真的很高。如果在LinkedIn的搜索栏中键入“ Java”,您将获得370k的职位空缺。为了进行比较,Python将有24.9万个工作清单,JavaScript将有27.8万个工作清单。
这是我们对Java开发的当前和未来趋势的研究得出的其他一些重要结论。
网页程式设计 根据我们的研究,大多数公司更喜欢使用Spring MVC构建Web应用程序的后端,而最广泛的前端框架是Angular (95)或React.js (50)。当然,这并不意味着Java开发人员必须具有JavaScript前端框架的全面知识,但是对这些技术如何工作以及如何与Java代码进行交互的一般理解绝对是有用的。
在图表中未提及的Java后端框架中,Apache Struts(33)是最受欢迎的框架。但是,我建议仅在您的(未来)雇主肯定使用该框架时(例如,维护旧应用程序)学习该框架。最新版本的Struts是5年前发布的,但Spring并非如此,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是微服务开发的最佳语言。所以,我们没有想过要看清条款微服务和春季启动相当接近我们的图表的顶部。开发人员也喜欢微服务:更好的微服务支持是Jakarta EE在2019年的主要社区优先事项。
我想在2019年必须扩大对这种软件开发技术的了解。顺便说一句,您可能还想了解有关服务网格的更多信息。尽管Istio(7)和Kubernetes(18)的使用并不那么频繁,但随着微服务应用程序的日益普及,类似的编排技术无疑将变得更加流行。
Web服务器和数据库
最后,如果谈论NoSQL数据库,则雇主更喜欢以下这些:Cassandra (41)和MongoDB (33)。至于网络服务器,Tomcat (35)和Apache (35)是领导者。
Java趋势:专家意见
这是专家对即将到来的Java趋势的评价。
“在不久的将来,我们可能会看到对在GraalVM上运行的Quarkus和相关技术的兴趣日益增加。例如,它可能是Vert.x,因为Java响应了容器革命。”
“与“经典” Spring相比,Spring Boot的普及程度相对较低。另一方面,令我感到惊讶的是Java EE的第二名。JavaEE API之一JPA(Java持久性API)被列为独立项目以及对SQL技能的强烈需求,表明对关系数据库的持续关注。
对Maven技能的强烈需求符合我的实际经验:Maven是领先的构建工具之一。目前,Apache Kafka在会议上非常受欢迎,但不适用于所有项目的通用体系结构,这解释了其相对较低的需求。
我还希望人们对Google Cloud和Azure技能的兴趣会提高,因为这两种云已经在项目中大量使用。Java EE开发人员,并且在JPA,SQL,JMS(Kafka也是JMS实现),JAX-RS(REST),Maven(Java EE中的默认设置),Git(事实上的标准)方面经验丰富将于2019年5月在市场上占有一席之地。”
“今天,Spring框架和微服务体系结构已成为Java世界中的事实上的标准。但是,不断发展的行业要求软件工程师除了掌握现有技术以外,还要开发新技能。服务网格和服务代理正在改变微服务的开发方式。 ,因此雇主正在寻找与Istio,Linkerd2或Envoy密切相关的工程师。随着越来越多的公司向公共云和混合云计算转移,拥有Amazon AWS,Google Cloud Platform或Microsoft Azure的经验很重要。
反应性编程在Java Universe中仍在上升。即使我不希望它能完全取代传统的命令式方法,但对响应式编程方面的专业知识的工程师也有很高的要求。值得投资探索什么是响应式编程及其如何改变Java生态系统的状态。在响应式框架(Project Reactor,RxJava,Spring WebFlux等)上获得一些经验,并了解什么将响应式编程与构建响应式系统区分开。
在数据存储方面,NoSQL和多语言持久性已成为当今工程师必不可少的技能,但是全球系统正在提高对新型数据库管理解决方案的需求。高度一致的Google Spanner是作为服务提供的可投入生产的NewSQL数据库的示例。虽然很难预测NewSQL存储解决方案本身的普及性,但未来将是高度分布式的软件,因此了解一致的系统背后的原理,特别是共识协议至关重要。”
“对于一个企业Java项目,这种技能等级对我来说听起来很合理。但是,我对SOA的需求不多了。从Spring和Spring Boot开始,它们经常同时使用,因此区别可能不再适用了。 。
将来,我的确看到了对各种云原生技术的趋势和日益增长的兴趣。如果这种趋势继续下去,那么从现在起的几年内可能会更有趣。”
“ Java开发人员(像所有开发人员一样)将始终受益于对核心工具和语言(如Git和SQL)的深入了解。无论使用哪种操作系统,任何脚本语言都是可以加快您工作速度的另一件事。想要前进的开发人员应该还了解代码在(云)中工作的基础架构以及如何到达那里(CI)。
我们的工作不是写代码,而是更改软件。了解包括业务领域在内的更广泛的系统,将使开发人员可以使用Java和任何其他语言做出更好的决策。”
Java是一种成熟的语言,具有针对不同需求的稳定工具集。但是,随着它的不断发展,随时掌握最新动向对于您的职业总是有用的。希望本文能帮助您了解最新的Java趋势!
原文链接:http://codingdict.com