2016 年对移动端程序员们来说,无疑是焦虑与迷茫的一年。资本寒冬的降临,移动互联网市场的盈利红海,不少 App 创业公司的接连倒闭,微信小程序的发布…每一个事件在网络上的蔓延,似乎都在暗示移动端市场的发展颓势,纠结着移动端程序员们的心。
「我工作已经五年了,这几年我在工作上很努力,加班多,业余时间也在学习,一直是公司的骨干员工。但是我突然发现我这些年所有的积累都在安卓上,如果哪天世道变了,移动端应用不再以 App 的形式存在,我怕我有点输不起。」
前阵子,一位离职看新机会的安卓工程师对我们平台的职业顾问吐露道。
从一定程度上来说,他的现状可以代表目前市场上部分安卓工程师们的心态。经历了 2015年的需求爆热和 2016 年的「移动寒冬」,大起大落之后,2017 年的移动端招聘市场又发生了哪些变化?移动端真的快不行了吗?
带着这一疑问,100offer 近期盘点了平台上移动端程序员 2015 年- 2017 年的招聘数据,并走访了数名移动端程序员,试图为大家展示一个最真实的 2017 年移动端市场的招聘现状。
首先,我们来看看 2017 年,移动端市场的整体供需变化。
众所周知,2014 年- 2015 年是移动互联网市场的爆发期,然而爆热过后却是骤冷:2016 年,市场上的移动端岗位开始大幅缩减,移动端程序员却与日俱增,逐渐达到饱和状态。这种状态一直维持到 2017 年,移动端程序员的求职人数和企业的招聘需求都开始整体下降,其中 iOS 不论从企业需求还是求职人数来看,变化都更加明显。
我们可以从两个方面分析出现这种现象的原因:
1. 2015年移动端市场需求量大,不少培训班几个月内培训出了大量移动端程序员,导致2016年移动端市场高度饱和。「培训机构是最快输出人才的地方,本科生大学毕业都要学习4年,而培训机构最快向市场输出一个移动端程序员只需要几个月。」目前在上海某创业公司担任技术负责人的码仔告诉 100offer。
而 2015 年也是创业正热的时期,资本市场对移动互联网的看好,导致大部分创业者把创业与做移动 App 应用等同,市场上以做出一款 App 为目标的创业公司比比皆是,企业对移动端程序员的需求量井喷,所以那时即使是资历较浅或培训班出身的初中级移动端程序员,也可以较轻松地找到一份工作。
2. 2016 年资本寒冬,不少创业公司接连倒闭,企业需求大量收缩,一年前还大受市场欢迎的移动端程序员,发现找工作变得没那么容易了。
「我身边有个做安卓的朋友,工作 2 年,换了 3 家公司,离职理由都是公司倒闭了,其中有一家还是 400 多人的公司。」聊到移动市场这几年的变化时,码仔感慨,商业的变化太快,起来得快,死得也快。追不上商业变化的公司,就和追不上技术和市场变化的程序员一样,很快就会被市场淘汰。
而其实所谓的移动寒冬,受到影响的只是那些没打好基础的人。
前面提到,2017 年移动端市场的企业需求和市场供给在同时下降。与此同时,我们平台的数据还显示:移动端的人均面邀数和人均面邀薪资均在上涨。
这又是为什么呢?我们将移动端程序员以工作三年为分界点做了一个划分,对比 2016 年和 2017 年移动端程序员的构成时发现:
2017年减少的移动端程序员,以初中级为主。
首先毋庸置疑,工作 3 年以上的移动端无论在薪资水平还是需求度上,均高于工作 3 年以下的移动端。
如果我们将工作小于三年的移动端程序员定义为初中级移动端,那么我们很容易通过下图得出结论:2017 年减少的移动端程序员,以初中级为主。
换一句话说也就是:2017 年,高级和资深移动端占比在增高。
这也不难解释为何 2017 年移动端的企业需求度和求职人数均在减少,人均面邀数和人均面邀薪资却增高了。因为 2016 年以前的招聘市场,初中级程序员占比更高,他们的存在拉低了移动端的整体薪资水平和需求度。
「15 年的时候移动端很火,很多人可能对写代码完全没兴趣,只是因为程序员行业薪资相对较高而入了这行。这群人工作之外不会花额外的时间持续学习,所以薪资涨幅很低,或者说一直保持不变的薪资。」码仔说,他身边确实存在一些这样的程序员。
所以 2017 年,当 3 年以上工作经验的移动端程序员成为市场主导后,移动端的人均薪资和市场需求度自然也跟着上涨。这意味着移动寒冬这波浪潮褪去之后,投机取巧、基础不扎实和不适合这个行业的移动端开始逐渐被市场淘汰,留下那些基础扎实、经验丰富的移动端依然矗立在沙滩上。就像码仔说的那样:「市场淘汰率和资深程序员向来没什么关系,只和新人有关。」
而在这群被市场筛选后留下的移动端中,我们发现工作 3 年+和工作小于 3 年的移动端程序员之间的薪资差距在逐渐缩小。
这在某种程度上说明了:过滤掉那些能力欠缺的初中级移动端后,市场上剩下的这波人,都是行业内最优秀的,因而他们的薪资差距也最小。
2017年,移动端市场的供需终于开始回归平衡,移动端人才的待遇水平也在逐渐回升。
那么,移动端未来的发展走向又会如何?
在 100offer 此次采访的几名移动端程序员中,除了一名做安卓 framework 的程序员荣武对安卓未来的发展前景表示堪忧,想在年后转行外,其余几名程序员均对移动端的未来持乐观态度。
关于移动端的未来发展趋势,我们可以从两方面来判断:1.互联网行业环境的变化 2.企业对移动端程序员招聘需求的变化。
1.行业环境:与更多未来场景相结合
互联网行业环境方面,今年 AI、物联网、5G 等领域或概念的兴起,为移动端在未来提供了更多可结合场景,如无人车的车载系统、中高端手机的 AI 计算能力、物联网的智能家居万物互联等。
「我认为安卓和 iOS 在将来一定还有很大的发展空间,毕竟它们的后台够硬——谷歌和苹果,系统的每一代升级都有很多新的东西出现。」码仔说,「而今年国内外的大公司都在发展 AI ,我相信安卓可以结合 AI 开发出更好的系统,给用户带去更好的体验。」
比如谷歌这两年就在汽车领域集中发力,从 2016 年开始,就可以看到 Andriod Nougat 、Oreo 的代码分支上都有 Car 相关的代码在不断更新。Google I/O 2017 和 CES 2017上也有安迪、沃尔沃、FCA 这样的车企展示了他们新的基于 Andriod 的车载信息娱乐系统的概念产品。
另一位去年通过我们入职北京某创业公司的 iOS 程序员郭光达也表示,在没有新的操作系统面世之前,他认为安卓和 iOS 系统不可能被取代。
2.企业招聘需求:更青睐复合型人才
如果说移动端兴起之初,企业只需要一个能搬运代码、运用开源框架的移动端程序员就能解决大部分问题,那么随着移动应用市场逐渐饱和,用户对产品体验的要求变得越来越高,企业对移动端程序员的要求也变得越来越苛刻。
那么,2017 年,互联网企业更喜欢什么样的移动端程序员?100offer 在咨询此次接受采访的几名移动端程序员的同时,还查看了平台上的企业给高级/资深移动端程序员发出的面邀 JD ,总结了以下几点:
1)3 年+工作经验,深入了解移动端的底层和原理
资深的移动端不仅要会用框架,还要会写框架,写之前更要深入了解底层和原理。
去年通过我们入职现在这家创业公司的郭光达,已经在团队中担任起了招聘新人的工作。他们目前只招高级 iOS 工程师,新的职位开放以来,他每天都会收到 7-8 封 HR 部门推送过来的简历,「我们偏向于面试工作 3 年以上、精通传统框架和基本原理,可以阅读英文文档,并且能够一个人独立负责一个项目的 iOS。」郭光达说。
这是目前市场上一家普通创业公司招聘高级移动端程序员的基本需求。
2)独立主导或开发过一款以上产品的核心项目
独立项目的核心开发经验,是我们在很多企业给高级安卓/ iOS 工程师发送的 JD 中频繁出现的需求。
(100offer 平台某创业公司给高级 iOS 工程师发出的面邀)
在一个职位一个坑,特别是每个人的工作结果都会被放大的创业公司尤为被看重。因此他们认为有过独立项目开发经验的人,才能在将来的工作中独当一面。
3)丰富的项目经验或管理能力
这是不少偏技术管理的移动端岗位,如移动开发组长要求的必备素质,也是移动端程序员想走技术管理路线的必备技能。
4)与产品经理和设计师紧密合作
(某公司在 100offer 给高级安卓工程师发出的面试邀请)
不断优化产品性能,提高用户体验的能力,这要求移动端程序员在沟通能力、视觉审美和对用户的需求了解上都要多下功夫。互联网上半场做流量,下半场做用户体验的说法由来已久,因而对产品结构性能的优化,是不少企业现阶段的发力点。
5)前后端开发经历是加分项
优秀的程序员从不拘泥于任何一门单一语言,特别在产品更新迭代速度更快的今天,在精通一门语言的同时,还掌握多门技术语言的复合型人才,往往更受企业青睐。
从以上几条可以看出,企业对移动端的需求,除了单一的功能开发外,还衍生出了许多诸如项目管理、产品设计沟通、前后端开发等附加因素。在这种情况下,越全面、复合型的移动端,越受企业欢迎。
前面提到,虽然大部分采访对象对移动端将来的发展趋势持乐观态度,但仍有一名做安卓底层系统的程序员荣武想在今年年后转行。
「我身边做 framework 的程序员,都不想再做安卓了。」荣武说,随着安卓系统的不断更新和完善,他日常做 framework 的工作变成了以解 Bug 为主,而他身边做得最好的安卓程序员,哪怕做到了安卓架构师级别,也会感到迷茫,不知职业生涯的下一步该往哪里走。
的确,随着 Google 官方在消除碎片化和各种支持包上的发力,很多程序员被动地沦为代码的搬运工,从事着初级 coder 的工作,得不到提升。但这并不意味着移动端程序员的路会在将来越走越窄。因为无论是横向还是纵向,移动端可选择的路都有很多条。
一般来说,移动端程序员的进阶之路可以分两种:技术专精路线和技术转产品路线。
技术转产品路线晋升轨迹:
Android初级开发程序员---中级---高级--软件架构师--系统架构师--产品经理--产品总监
技术专精路线晋升轨迹:
Android初级开发程序员---中级---高级--软件架构师--系统架构师--项目经理--首席技术官
一般在大公司中走完这条路线的周期较长,但在很多初创型公司,从安卓初级开发到首席技术官最短可能是几年的距离。
这次的受访对象码仔,就利用三年时间,从一个普通的安卓开发做到了一家创业公司的 CTO 。
「移动端程序员现在做到哪些,才能在将来的市场竞争中步步高升,不被淘汰?」对于那些对未来感到迷茫、找不到方向的移动端们来说,他有 2 条建议。
1.下沉
下沉的方向可以是 framework 。做 framework 就是往底层走,比如去一些手机公司如小米、魅族等做底层硬件系统。但 framework 的代码千头万绪,往往有几十亿行,如果能在某个领域做到技术制高点,将来也会因一定的市场稀缺性受欢迎。
2.拓展
第二种方式是拓展, 程序员可以在精通移动端的同时,拓展自己的技术宽度。「现在流行T字复合型人才,即 80% 的时间放在技术深度上,20% 的时间放在技术爱好上,利用业余时间不断扩充自己的技术栈。这样无论以后去小公司一人多职,还是去大公司担任核心开发,都能更快了解合作方的需求,使双方的沟通成本更低。」码仔说,工作三年,他在精通移动端的同时,还通过自学学习了 iOS 和一些后台语言。
去年年底求职时对移动端的未来感到迷茫的郭光达,今年心态似乎也平和了不少。采访结束前,他提到最近公司的移动端同事们工作都很充实,每天下班后还会抽 1-2 个小时的时间学习 Python 和 AI 的相关知识。谁都不想在即将来临的 AI 时代被落下,毕竟 Python 都要被加入高考了。「但偶尔还是会感到焦虑。所以我现在每天都会提醒自己,一定要学习新知识。」郭光达说。
3.转型
100offer 认为,如果前面两条路都走不通,那么最后还有一条路:转型。
移动端程序员最常见的转型有产品经理和 Java。其中 Android 工程师转型 Java 在基础知识方面没什么难度,毕竟语言相通,特性相似。 但建议不想每天改 UI 的刚入行不久的 Android 工程师转型,对于一些工作年限较长的 Android 工程师,如果本来就是 JavaEE 转型过去的,不建议再转。
程序员转产品经理的案例也不少,产品经理也是技术岗位,只不过写的是给人看的需求文档。但转型产品经理前,一定要问自己为什么转型,因为产品不再拼技术能力,更多是沟通、管理和表达能力,需要看自己性格上是否真的适合。如果一个 Android 程序员写的代码只能让电脑看懂而不能让负责维护的程序员看懂,那么就不要转型产品经理。
其实除了 Java 工程师和产品经理,移动端程序员还有很多转型方向。采访末尾,刚刚结束了几轮面试,仍对未来感到迷茫的荣武说他打算停止面试,在年前好好思考自己接下来的转型方向,他目前对图像算法比较感兴趣,但真正下决定,需要在过年期间慎重思考一番。「毕竟我今年已经 31 岁了,下一次换工作,应该是职业生涯中最后一次选择机会了。」荣武说。
100offer说:
纵观整个 2017 年,移动端市场不再像 2016 年那样动荡。虽然表面上企业需求和求职人数都在下降,但这并非坏事。透过现象看本质,我们发现需求和人数减少的背后,是人员结构的调整和薪资待遇的提升——2017年,不适合这个行业的初中级移动端被淘汰了,优秀的移动端被留下来了,人才开始向复合型发展,综合能力越强的移动端,在将来会越来越受企业欢迎。
原来所谓寒冬,真的只是对那些基础不好的人而言。未来,也希望你们能抓住机会,赶上浪潮。
(文中荣武、郭光达、码仔为化名)