2017年 Java 程序员,风光背后的危机
不得不承认,经历过行业的飞速发展期,互联网的整体发展趋于平稳。为什么这么说?为什么要放在 Java 程序员的盘点下说?
的确,对于进可攻前端,后可守后端大本营的 Java 程序员而言,虽然供应逐年上涨,但是市场似乎对他们依然青睐有加。这些承担着技术招聘市场中高供给高需求的 Java 程序员在 17 年的招聘市场上,真的还能如此风光吗?还是埋下了一些「危机」的伏笔呢?
100offer 研究后发现,2017 年的 Java 程序员的确很风光,具体体现在市场需求和平均工资的上涨上,但这些风光之后,埋伏了一些危机:
市场需求增长远少于 Java 程序员供应增长,Java 程序员面临更加激烈的竞争;
受供应量的大幅增长影响,Java 程序员平均跳槽薪资涨薪幅度较低;
需求方对 Java 程序员提出更加严苛的选材标准。
回到开头,我们为什么说 17 年互联网整体发展趋于平稳,通过对 17 年招聘市场上的 Java 程序员面临的危机梳理,我们来抽丝剥茧地解析这个问题。
说明:
本文中盘点的行业数据,除单独说明外,皆来自 100offer 平台。
100offer 服务于北上广深杭、2年以上工作经验的的资深互联网人。本文数据取自 2016 年 1 月 1 日至 2017 年 11 月 31 日经筛选在 100offer 进行匿名展示的高端人才,他们收到的面试邀请和薪资普遍高于市场平均水平。
一、Java 程序员面临更加激烈的竞争
2017 年在招聘市场上求职的 Java 程序员面临的更加激烈的竞争主要由以下两个原因引起:
1)Java 程序员的供应较 2016 年增加 25%;
2)Java 程序员的需求量涨幅远低于供应涨幅。
在供应量增长的大背景下,Java 程序员还出现涨薪幅度较低的情况。
1. Java 程序员求职人数增长 25%,所获平均面邀数下降
自 16 年起,在市场上看机会的 Java 程序员在数量上不断攀升,17 年增加 25%,但 Java 程序员 2017 年所获得的总面邀数却只增长了 5% 左右。 这也就不难解释为何 2017 年 Java 程序员收到的平均面邀数有了显著的下降。
不断增长的供应带来的就是更加白热化的竞争。「候选人的充足供应,对于找工作的人来说,也许并不是一件好事,因为用人的公司肯定会更加挑剔」,在 100offer 有 3 年工作经验的人才顾问 Tony 道出了面试邀请背后的玄机。
那么,这些新增的 25%Java 程序员从哪里来?
17 年新增的 Java 程序员从哪里来呢?除了正常的人员流动之外,100offer 感受到 2017 年的 Java 程序员的来源更加丰富了。
「除了正常的人才流动的 Java 程序员,今年来市场上看机会的 Java 程序员还存在异常流动」100offer 的资深人才顾问 Summer 解读了这一部分 Java 程序员的来源。
17 年 Java 程序员的异常来源包括:非互联网公司(包括但不限于传统软件公司、传统硬件公司、金融公司等)、互联网金融领域的公司、一些不知名的互联网创业公司(这里的异常来源指的是相较于正常的人才流动而言)。
这样的情况在公司层面也有所反馈,在某 TMD 公司担任技术面面试官的李一对于 17 年的 Java 程序员的整体情况反馈出了类似的结论,「16 年我们还是能够招到一些互联网背景不错的 Java 后端,进了 17 年之后,这个情况反而更难了。要么就是一些不知名的二三线公司,要么干脆就不是互联网背景的公司。」
2. C 轮以上的企业成为吸收 Java 程序员的主力公司
2017 年,Java 仍然是所有技术语言中,招聘公司需求最多的一个方向。
在 2017 年,对 Java 工程师需求量较大的公司中,尚未融资公司、C 轮、D 轮和上市公司的需求明显增长。其中,上市公司发出了近 50% 的面试邀请。为什么会出现这样的需求往 C 轮及以上公司移动的情况。我们来看看 16-17 年市场投融资的表现。
2016年Q1至2017年Q3 新成立公司数量(数据来源:IT桔子)
2016年Q1 至2017年Q3 互联网领域投资事件数量及金额(数据来源:IT桔子)
从 16 年 Q1 到 17 年 Q3,互联网投融资市场不断向下滑动的曲线,侧面反映出创业公司面临的艰难处境。除了新成立公司数量有所萎缩外,17 年也出现了更多的公司并购。
2016年Q1 至2017年Q3 互联网领域并购数量及金额变化(数据来源:IT桔子)
从上述现象中,我们不难分析出需求流动的原因:
(1)受到市场环境的影响,创业公司的招聘需求收缩
资本市场的投资逐渐走向聚集,即大部分的资金都涌入了一些头部公司,再加上整体的投资偏向于理性,这对于处在 B 轮以前的公司,如果没有突出的创新点和清晰的玩法,不容易从资本市场获得投资。除了资金聚集之外,公司的合并也成为一种新常态,合并之后的人员调配等,导致这一部分公司不再短期内产生更多的招聘需求。
「对于创业公司而言,除了一些刚刚进入团队搭建阶段的公司,比如尚未融资的公司,剩下的创业型公司在人才的招聘上反而会更加保守」在 100offer 负责企业客户的 Cathy 如此解释 A-B 轮公司出现的招聘邀请降低的情况。
(2)大公司随着业务增长,对人才的需求稳步上升
首先,对于 C 轮以上的互联网公司,他们一般拥有清晰的商业模式和稳定的业务需求。因此,单单从常规的人员流动角度,他们就会有稳定的需求,「我们的开发配比是按照产品经理的招聘进行配比的」李一跟我们分享了他们公司为什么会有稳定的 Java 程序员需求的原因。「比如增加一个产品经理,他会提出一些新的需求,这个时候开发就不够用了,就要招新人。」再加上通常 C 轮以上的公司业务发展可能不再会经常出现指数增长,但是整体趋势是上扬的,因此他们往往拥有比较稳定的 Java 开发需求量。
其次,对于 C 轮及以上的公司,他们通常除了已有业务之外,还会积极拓展新的业务,比如新美大推出打车业务、今日头条推出的问答社区等,这些背靠体量较大的互联网公司的「新业务」,较纯创业公司能够获取的资源和生命周期较长,因此他们对 Java 程序员的保持着旺盛的需求。
看完整体的市场供需,Java 程序员在 17 年跳槽之后的薪资表现又如何呢?
二、 2017年,Java 程序员人均跳槽年薪涨幅不到 3 万
「我没有感觉这次我的薪资有明显提升」,一个通过 100offer 进入某共享经济风口公司的 Java 程序员卷毛对 17 年的这次跳槽显然不是特别满意。从 16 到 17 年,Java 程序员的跳槽前薪资的确出现了小幅上升,大家对于跳槽的期望薪资也有了提升。但现实却是期望远没有达成,相较于 16 年,17 年跳槽后的薪资平均数还出现了下滑。
为什么反而出现了跳槽薪资下滑的「异常情况」呢?先看看不同工作年限大家的跳槽前后薪资涨幅:
从数据表现来看,除了工作 4-5 年的 Java 程序员跳槽后年薪涨幅较大外,剩下工作经验的 Java 程序员薪资涨幅都较小。2017 年 Java 程序员数量的上升并没有带来平均薪资的等比上升,侧面也反应了 Java 程序员在 2017 年出现的异常流动情况:在分析 Java 程序员的来源中,我们提到,17 年的 Java 程序员除了正常流动外,还多了很多异常流动。
2017 年的 Java 求职市场涌入的异常流动的 Java 候选人虽然增加了 Java 求职者的数量,但是却并没有提升他们的薪资情况,为什么呢?我们要具体看看公司的选材标准了。
三、 公司选材更严苛
1. 同一岗位 JD 要求更细致、更专业
以下分别是 16 年和 17 年,offer 薪资在:15K~30K×16 月的 Java 程序员 JD 要求:
同样薪资岗位 JD,在 17 年如下:
虽然对于一个合格的程序员,多点一些技能点并不是什么难事,但单单从 JD 的要求上看,想要在 17 年寻找和 16 年薪资、级别差不多的工作,需求方显然想要你能够拥有更加丰富的技能。
2. 公司招聘更看重工作背景
从前面的 Java 程序员整体市场概况的梳理过程中,我们分析了 Java 程序员中的异常流动现象,也分析了 Java 的整体招聘向 C 轮及以上企业流动的现象。从具体的招聘表现上,100offer 发现随着供应增大后,需求方更加看重 Java 程序员的工作背景上。因此,那些背景不够优秀的 Java 候选人面临被淘汰的危机。
(1)非互联网背景 Java 程序员面临的求职危机
在整体经济情况并不十分明朗的 17 年,外企裁员、传统行业抵挡不住整体经济放缓的趋势,从中流出大量的 Java 候选人。这些 Java 程序员通常没有互联网从业经验,会被需求方担心整体调性和思维方式不适合互联网公司,最终遭遇求职危机。
(某一知名硬件公司,工作 5+ 年 候选人在被裁员后平台上获得的面邀情况)
与这位候选人有着类似经历的候选人,在2017 年的 100offer 平台上并不是少数。即使你拥有「名校」毕业的背景和光环,从非互联网行业进入互联网,如果没有特别突出的能力,公司通常不会买单。
(2)被动离职的互联网背景 Java 程序员也不好找工作
和上一类不容易被互联网企业买单的候选人不一样,17 年还有这样一群 Java 程序员,他们遭遇到公司的合并、倒闭等情况,最后被迫走进市场求职。这一现象从互联网金融领域的 Java 程序员在 17 年的求职市场上的数量增加就可以看出。
「主要要看候选人的离职原因,如果是被裁员才离开公司的话,他们可能会更难找」100offer 的人才顾问解答道。虽然同样是看机会,是否在裁员前离开反而变得「重要」,原因也很简单:当你发现一个公司可能走下坡路的时候,甚至快要裁员,你没有提前准备好自己的发展方向,需求方会认为你并不是一个有着清晰职业规划或者职业追求的人。这样的前置否定一旦被套上,就很难摆脱。
同样的情况还发生在被并购后淘汰出来的程序员身上。一位点评的前 Java 工程师告诉 100offer,那些遭受了并购裁员的程序员,因为类似的:没有提前进行职业规划、无法给公司创造价值等因素,导致他们的求职之路十分坎坷。
四、Java 程序员如何在新的市场竞争中获得优势
梳理完 Java 程序员在 17 年遇到的挑战和危机后,Java 程序员应该如何应对这些危机呢?
我们从市场对 Java 程序员的需求入手,分析了 Java 程序员的未来的发展道路。市场常常按照 3 年为一个界限,100offer 在这里把工作经验 3 年以下的程序员称为初级工程师,3 年至 6 年的程序员为高级工程师,6 年及以上的则是资深工程师。我们浏览了大量的职位需求,这里列举三个比较典型的例子分别分析市场对他们的需求。
1. 初级 Java 程序员的核心考核要素
这个阶段的候选人一般都刚加入工作,工作时间不超过 3 年,对于这一部分候选人,公司的需求通常是解决一些基础的业务问题。他们会考察应聘者的基本功是否扎实、工作思路开阔。以下是一份典型的初级 Java 工程师的 JD:
扎实的基本功
从任职需求上看,面试官对于候选人的期望主要掉现在扎实的计算机理论基础,熟悉面向对象编程,了解常用框架等等。「因为这个阶段,公司所需要的 Java 后端开发,主要是为了解决一些基本业务功能的实现,扎实的基本功能够帮助候选人更快、更好地熟悉业务」100offer 的人才顾问 Tony 如此概括这者阶段的公司需求。因此,在这个阶段,即使是非互联网公司的候选人,也能得到一些面试邀请,表现突出,则可成功转行。
(上图为工作1年,曾在某硬件公司任职的候选人)
工作思路开阔
在某独角兽企业带领一个业务方向的技术 leader 陈程为我们描述了这个阶段的 Java 程序员最具竞争的力的品质:能够站在业务的角度去思考问题。
这些品质的 Java 程序员直观上的表现就是,不会单一地去思考需求,而是会考虑需求背后的目标。「这些特质其实没有那么难以锻炼,不是孤立地处理问题,多和产品经理沟通交流,就很容易培养出从业务角度考虑技术开发的意识」。陈程觉得这个阶段的程序员反而是最好提升的,「害怕的就是,你不愿意去做这些沟通,闭门造车这种事情,其实不是程序员长期规划中的一个好习惯。」
2. 高级 Java 程序员考核要素
这个阶段的 Java 程序员不仅要熟悉 Java 语言本身,公司对候选人会有进一步的要求,具体表现在能够快速的进行工作的输出,能够独立负责小系统或者系统群。在这个阶段,公司在考察工作经验和项目的同时,还看中的是你解决问题的思路和方式。
这个阶段的JD要求如下:
纵向的技术沉淀
对于技术沉淀的考察主要是从项目经验中来,通过对项目经验的考察过程中,观察候选人是否能够把工作内容转化成自己的技术能力或者系统能力。
在 17 年收获 30+ 个面试邀请的专科生王朋依靠着他在大型项目中的技术积累,在 100offer 平台上收获了包括阿里巴巴、网易等在内的 36 个面试邀请。
(候选人王朋在100offer上的具体情况)
横向知识面的拓展
除了纵向的技术沉淀外,在这个阶段,作为系统群或者项目的负责人的横向知识面也是非常重要的考核因素。横向的知识面一方面包括技术上的,表现为不仅能够有架构上的整体认识,还能利用技术组件解决一些比较专业的问题。另外还包括业务上的,比如是否能够在解决具体的需求同时,考虑到整体业务线上会涉及的各个环节,提前考虑并且部署这些环节会出现的问题。
3. 资深 Java 程序员考核要素
先来看这个阶段的 JD 要求:
JD 中除了一系列的 Java 架构、生态体系上的要求外,又增加了「技术发展趋势」、「沟通能力」、「勇于担当」等关键词。这些关键词背后的诉求其实也侧面反映了这个阶段的 Java 程序员需要承担的工作:负责一个业务方向或者业务群。
业务角度进行技术规划
除了扎实的技术功底外,能够结合业务方向进行技术规划和有效管理技术团队,保证团队产出成为最重要的两个因素。怎么样可以做到从业务的角度进行技术规划,这里考验的就是你能否发产品经理提出的每一个孤立的点的逻辑和目标系统的建立起来,并且能够在资源有限的情况下,争取到最优的解决方案。
技术团队的管理与激励
如何在团队成员有限的情况下,完成需求量大的开发需求;如何能够更好地让团队中的程序员发挥作用,建立有效的沟通反馈机制等等。这些都是作为这个阶段的 Java 程序员或者说是技术经理无法避开的问题。
从这些建议中,我们抽象的看,整体来说就是作为一个 Java 程序员「宏观」能力和「微观」能力的把控。这两点需要你不断的循序渐进,一步一个台阶地走上去。
总结:
在对 17 年 Java 程序员的盘点过程中,我们发现,一个「优秀」的 Java 程序员可以做的远比我们想象的多得多。
Java 因为其良好的生态系统以及全面的领域覆盖,成为许多公司技术栈的首选,也使得市场上总有「Java 工程师满地走」的错觉。
17 年的招聘市场对 Java 工程师提出了看似更加「苛刻」的要求,其实背后的核心却是:过去市场也许可以允许你进步得慢一点,因为市场上总缺少 junior 的 Java 工程师,但是现在市场想直白地告诉你,当一个行业的发展趋于理性之时,留给 Java 工程师的进步时间真的不多了。
2017年 Java 程序员,风光背后的危机的更多相关文章
- 2018年,Java程序员转型大数据开发,是不是一个好选择?
近日网上有一篇关于Java程序员职场生存现状的文章“2017年 Java 程序员,风光背后的危机”,在Java程序员圈子里引起了广泛关注和热议. 2017年,Java 程序员面临更加激烈的竞争. 不得 ...
- 从小工到专家 ——读《Java程序员职场全攻略》有感
从小工到专家 ——读<Java程序员职场全攻略>有感 <Java程序员职场全攻略>是以故事的形式,向读者介绍Java程序员的职场经验.作者牛开复在北京从事软件开发,已经是一 ...
- Java 程序员快速上手 Kotlin 11 招
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:霍丙乾 近经常会收到一些 "用 Kotlin 怎么写" 的问题,作为有经验的程序员, ...
- 一名十年Java程序员回忆阿里面试经历——揭开阿里面试的“遮羞布”
阿里面试经历 去阿里面试可以说非常非常的偶然和戏剧性,因为本人根本没投简历,以至于阿里hr给我电话的时候我一度认为是诈骗电话.因为深圳这家公司不错我还想在这里干个两年左右再考虑考虑. 这个时候的本人已 ...
- Java 程序员快速上手 Kotlin 11招
收录待用,修改转载已取得腾讯云授权 作者 | 霍丙乾 编辑 | 迷鹿 前言 最近经常会收到一些 "用 Kotlin 怎么写" 的问题,作为有经验的程序员,我们已经掌握了一门或者多门 ...
- Java程序员学习之路
1. Java语言基础 谈到Java语 言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础部分基 ...
- Java程序员必备的 15框开发工具
15款Java程序员必备的开发工具 如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它. 对于Java,有两种截然不同 ...
- Java程序员面试题集(136-150)(转)
转:http://blog.csdn.net/jackfrued/article/details/17740651 Java程序员面试题集(136-150) 摘要:这一部分主要是数据结构和算法相关的面 ...
- java程序员--小心你代码中的内存泄漏
当你从c&c++转到一门具有垃圾回收功能的语言时,程序员的工作就会变得更加容易,因为你用完对象,他们会被自动回收,但是,java程序员真的不需要考虑内存泄露吗? 其实不然 1.举个例子-看你能 ...
随机推荐
- [SinGuLaRiTy] NOIP2017 提高组
[SinGuLaRiTy-1048] Copyright (c) SinGuLaRiTy 2018. All Rights Reserved. NOIP2017过了这么久,现在2018了才找到寒假这么 ...
- 【开发技术】Beyond Compare
黑色表示左右两侧的文件(夹)是一样的; 紫色表示右(左)侧是完全没有的,这时我们右击这个文件(夹),选择“复制到右(左)侧”即可: 红色表示两边都有这个文件(夹),但不完全相同,这时你就要权衡一下修改 ...
- HTML <form>标签
1.单选按钮 <html> <body> <form> 名: <input type="radio" name="myname& ...
- Do you know how many stuff inside your Google Account?
My friend Sandy she wants me to do her a favor. She'd like to clear Hangouts chat history. I think s ...
- 2017-07-12(touch df du)
touch 作用:修改文件时间或者创建新文件 文件三个主要的变动时间 mtime 当文件的内容发生改变的时候,就会更新这个时间 ctime 当文件的权限与属性发生改变的时候,就会更新这个时间 atim ...
- ECLIPS-S测井系统下的仪器挂接 [TCC模块]
1. 环境 HPUX版本:11.23 Complete Image ECLIPS版本:Rel 5.1i 2. 效果图 3. 用途 为以后在此系统中挂接新仪器打下坚实的基础. 4. 参考资料 ECLIP ...
- Log4j源码解析--Appender接口解析
本文转自上善若水的博客,原文出处:http://www.blogjava.net/DLevin/archive/2012/07/10/382676.html.感谢作者的无私的分享. Appender负 ...
- junit源码解析--测试驱动运行阶段
前面的博客里面我们已经整理了junit的初始化阶段,接下来就是junit的测试驱动运行阶段,也就是运行所有的testXXX方法.OK,现在我们开始吧. 前面初始化junit之后,开始执行doRun方法 ...
- 一、Python表达式基础
Python 能执行简单的计算器的功能: 如>>2+2 ==> 4,1/2==>0.5或者这样写1/2.0==>0.5(取浮点型) 1//2 ==>0 (" ...
- MySQL模糊查询中通配符的转义
sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符.如果我们想要模糊查询带有通配符的字符串,如“60%”,“us ...