查看原文
其他

算法工程师过去这一年:理想很丰满,现实很骨感

2018-02-22 100offer AI科技大本营

 

本文转自100offer微信公众号


【导读】人工智能火热的 2017 年,算法相关岗位无论在薪资还是受欢迎程度上,均在市场中名列前茅。但在 17 年整体算法岗求职市场排摸中,我们却发现到几位高薪入职新岗位的算法候选人,纷纷在入职新公司不久后因水土不服而火速离职。这不禁使我们疑惑:2017 年,算法工程师的求职之路,真的一帆风顺吗?算法工程师高薪、热门的背后,又有哪些不为人知的故事?对于2018年,算法工程师的求职之路将会是怎样一种状况呢?


「算法岗位薪资高,刚毕业的本科生都能拿 XX 万年薪」,算法岗位不断传出的高年薪多少让在 2017 年看机会的互联网人有些红眼。一时间「Java工程师如何转岗算法」、「前端工程师如何向人工智能岗位靠拢」、「零基础如何入门算法」等类似的求教帖在各个技术平台、讨论社区被反复热议。


诚然,一个处于上升趋势的领域总是更能够给大家带来「希望」。在整体互联网行业趋于平稳发展的 2017 年,算法岗位无论是在需求还是供应上的显著增长都使它成为相对「保守」的 2017 年招聘市场上一个亮眼的岗位。那么 2017 年,算法岗位的整体表现如何?


通过 100offer 对 2017 年算法岗位的整体分析上看,2017 年的算法岗位在供需增长上的表现的确十分亮眼,但是也出现了平均面邀数明显下降的情况:


  1. 算法岗的求职者显著增长:算法求职者增长 87%;

  2. 招聘算法岗的公司数量增长约 1.2 倍;

  3. 虽然招聘公司增长显著,但求职者的平均面邀数却出现显著下降。


那么,为什么会出现平均面邀数显著下降的情况?以及作为求职者应该如何应对呢?


说明:

1. 本文所使用数据,除特别说明外,皆来自100offer平台;

2. 本文数据截取时间: 2015 年 1 月 1 日至 2017 年 12 月 31 日;

3. 数据截取对象:求职方向为算法、数据科学家的候选人,他们经筛选在 100offer 进行匿名展示,他们收到的面试邀请和薪资普遍高于市场平均水平。

4. 100offer 平台统计的面邀薪资、跳槽后薪资数据方式:月薪*发放月份。不包含奖金、期权等。


算法岗位供需增长显著,但求职者所获人均面邀大幅下降


1.  算法岗位求职者增加87%



2017 年,期望求职方向为算法的求职者增加了 87%,一跃成为去年求职数量最多的技术岗位第三名。



我们通过细分数据后发现,这部分增长人群主要来自:


(1)高学历群体


算法是高学历人群的聚集地。近年来,算法岗位的硕博占比逐渐升高。从 15 年的 35.4% 上升到 17 年的 53.2%。



(2)资深求职者


除了学历越来越高外,市场上看机会的资深候选人变多。3 年以下的算法方向候选人占比较 16 年下降 4.2%,工作 6 年以上的算法工程师上升 6.9%。


 

从这些资深的算法工程师的来源上看,我们发现他们往往有知名传统企业的工作经历。其中最多的就是从华为、新思科技等公司出来的算法候选人。这些候选人在 2017 年要么受到行业发展的影响、要么受到传统企业裁员因素的影响,纷纷选择在 17 年出来看机会。


2.  招聘算法岗公司数量增加 1.2 倍,但发出面邀仅增长 6%


2017 年进行算法岗位招聘的公司较 16 年增长约 1.2 倍,一跃成为需求量最大岗位第三名。


和需求公司一起增长的还有公司发出的面邀数。2017 年,需求方总共发出 2 万+ 面试邀请,虽然发出的总面邀数增长了,但这一增长率较 2016 年仅为 6%,远低于求职者(增长 87%)的增长量。



3.  求职者所获平均面邀数显著下降


相较于 2016 年算法求职者平均收获的 13.9 封面邀,算法工程师的面邀数在 2017 年下降至 7.8 封。通过上一点的分析,我们发现算法岗的求职者涨幅远超于发出的面邀数涨幅,这也就不难解释为何 2017 年算法求职者收到的面邀数量显著下降了。



那么,2017 年市场上的算法求职者究竟经历了什么?


匹配率低带来的算法岗求职之苦


通过对 2017 年算法岗位的总体观察来看,求职匹配率低是导致在供需都增长的情况下,平均面邀数显著下降的主要原因。


从公司角度上看,很多没有进行数据积累或者没有大数据分析基础的公司盲目的想要跟上 AI 的热潮,以为贴上 AI 的牌,就算站上了人工智能的风口。这些公司盲目地设置算法岗位的 HC,更有甚者花高薪聘请 1-2 名学术背景优秀的博士生,寄希望于 1-2 个算法工程师解决整个数据问题。


通常这种情况带来的结果都十分悲剧。公司一方面忽略了自己现阶段没有适合进行大数据分析的土壤,另一方面又过于「神化」一个高薪博士能够带来的工作成果:希望他能够快速、完美地完成既定目标。在被高薪聘请的算法工程师还停留在数据清洗、与原有的技术部门进行所需数据的结构改造时,这些公司就已没有耐心(或者没有足够的经济成本)继续培养这个高薪工程师,最后只好公司自己咽下盲目招人的苦果。


除了公司角度外,求职者的盲目、无规划跳槽则是影响求职匹配率的另外一个主要影响因素。


我们首先需要明确一个前提:与其他技术岗位相比,算法岗有明确的门槛。


相对于其他的技术岗位,比如十分热门的 Java、前端工程师,算法工程师对于求职者背景的要求显然高出许多。100offer 在「如何快速成长为一名出色的算法工程师?」一文中抓取了平台上标记为算法岗位的 JD,其中让人注明的关键词包括:数学、硕士、论文。这些关键词侧面反映出算法岗位相对于其他的技术岗位而言,对于求职者提出了更高的学术背景要求。




除了学术背景的要求之外,算法工程师的第二道门槛就是理论联系实际:应用的门槛。如果你很会推导公式,在训练模型上很有经验,但是求职者如果缺少将理论与实际业务相结合的能力,那么市场能够给你的机会也不多。


在市场上,与算法岗位的招聘需求不匹配的求职者主要有三种:


1. 缺乏相关经验的求职者


这里的背景包括两类:工作背景和学术背景。


在 100offer 上想要转型为算法工程师的人数不少,某知名 985 学校计算机专业科班出身的余周就是其中一名 Java 工程师。在余周的工作背景中,大部分都是面向对象编程的工作经验,即使有一个和预测数据类相关的小项目,但这个项目显然无法替他敲开算法岗位的门。


在 100offer 平台上,余周在以算法工程师为求职目标时,没有收到任何面邀。


(余周在 100offer 上的具体求职情况)


和余周一样,自以为有相关经验的转岗求职者在平台上并不少见,市场给予他们的反馈也十分直白:不适合。


2. 即使有经验,但是过于理论的求职者


和余周不同的是,拥有扎实模型推理基础和相关工作经验的张楠,踩了理论无法与实际相结合的坑。


知名理工科院校计算数学背景出生的张楠,从某一硬件公司研究院的算法岗位出来后,在 100offer 平台上收到了 7 个面邀。他成功通过某一知名互联网公司的面试。面试时,公司对他出色的数学推导能力表示认可,并开出了涨幅超过 50% 的年薪。入职 1 个月后张楠就被 HR 约谈,公司决定解雇他。给出的理由就是过于理论,短期(半年)内无法落地。


(张楠在 100offer 上的具体求职情况)


面对这样一个情况,拥有搭建算法团队经验的面试官许至一说出了中间出现不匹配情况的原因:「很多公司研究院做的东西,比如仿真这种,可能一个模型训练下来,(理论上)的确能够实现,在他们的 KPI 评价体系中也是达标的。但是这种实现都是对实现环境有非常严格要求的,这种理论上的实现和工业体系(实际业务)中差别还是非常巨大的。有些在工业体系中就是实现不了,并不是说他们错了,而是他们难以落地。」


即使有良好的数理背景,但没有迈过业务落地的槛,最终导致求职失败。张楠 2017 年的求职路给了想要从事算法工程师工作的候选人另一个警钟。


除了余周和张楠这样的求职者,100offer 上还有更加令人惋惜的另外一种「算法求职失败」,即细分领域内的不匹配。


3. 算法岗细分领域内转岗的求职者


某知名 985 学校毕业的博士生谢霖,在图像算法领域有很深的研究。11 月来 100offer 平台上进行求职,拿到了某知名互联网公司广告算法 offer。看重公司的平台,并且公司表示他可以单独负责一个新的方向,谢霖决定转岗广告算法。


但入职之后,谢霖发现他了解的算法技能并不能很好地被应用到现有的岗位上,经过深思熟虑之后,他还是放弃了这个机会,重新到市场上进行求职。


(谢霖在 100offer 上的具体求职情况)


「虽然说底层的算法内核是一样的,但是他们在实际应用中,包括业务领域、处理的问题、需要的技巧方面的差异还是特别大」许至一如此解释这种求职不匹配。算法内部转岗可能意味着前期技术积累直接的浪费,这样一种不匹配求职十分可惜。


上面三种情况就是 2017 年算法岗位求职现状的一种折射,不适合、不匹配成为算法岗位社会招聘中最高频出现的两个词。


前些年被「培训班速成」就能取得高薪岗位「冲昏头脑」的求职者,在算法岗上吃了个闭门羹。公司进行社会招聘的目的就是寻找合适岗位的人才,以前会出的现不那么匹配的人也能求职成功的「特例」,在算法岗上并不能直接复制。


为什么不能复制,想要转岗算法的求职者要怎样才能满足市场的要求呢?


提升岗位匹配率,需要 match 这些能力


在弄清楚如何满足市场对算法工程师提出的要求之前,我们需要先明白,算法工程师究竟需要做什么。


1. 算法工程师究竟要做什么?


算法工程师主要根据业务进行细分,常见的有广告算法工程师、推荐算法工程师、图像算法工程师等等。虽然不同的业务场景会提出更多细分的要求,但抽象来看,算法工程师的绝大部分工作内容都在和模型打交道。


这些工作根据细分业务领域的不同会略有差别,以下是 100offer 上有算法工作经验的候选人进行求职时写在简历上的典型工作内容:


(1)与软件工程师协作,对 XXX 版中的 XXXX 和 XXXX 进行优化和改进,对公司用户的存储数据进行采集,采样和模拟,比较不同的算法在不同数据模式下进行动态存储分配的的性能。
(2)利用神经网络模型对用户数据进性建模,训练和分类,存储获得的模型参数和权重,将获得的模型转化成预测模型标记语言。
(3)利用机器学习模型和基于规则模型对 XXXX 的所有商品进行危险品检测,将模型部署用于在线实时分类以及离线批处理分类。
(4)主持人群分类与精准投放、广告效果归因分析、商品零售销量预测、基于匿名数据的跨屏用户打通、同源样本库等项目的研究与开发。


2. 算法工程师需要满足的 4 项基本要求


了解了算法工程师的具体工作之后,我们才能从看似千篇一律的 JD 上,进一步分解出市场对算法工程师提出的具体要求:


(1)经验背景


在前面的分析中,我们提到了算法工程师的绝大部分工作是与模型打交道,即使是偏工程的算法工程师,其实也需要跟很多工具、模型打交道。因此,对于算法工程师而言,拥有一定的学术背景是公司考察的重点之一。这个考察点通常会被具体为以下几点放在 JD 中。


a. 关注机器学习领域的最新进展,对深度学习、概率图模型有研究者优先;
b. 扎实的数学和计算机科学功底,对数据结构和算法有较为深刻理解;
c. 本科以上学历,扎实自然语言处理、机器学习、数据挖掘理论和技术基础;
d. 能够阅读英文技术文档和论文,具有良好的自学能力;
e. 在顶级会议、期刊上发表过论文者优先;


从上述要求中,我们可以总结出以下三点背景考察因素:相关领域经验、数理基础、英文论文阅读。「招聘企业肯定优先想要考虑那些有直接工作背景的,但是这种人才在市场上通常都比较少,所以他们会退而求其次,考察他们的学术背景。」100offer 的人才顾问 tata 阐述了企业在招聘时看经验背景的权重,「如果两方面都能够 match 上,那就非常匹配了」。


在 100offer 平台上看机会的宋宁宇就是这么一个两方面都能 match 上的人。30 岁刚出头的宋宁宇的上一家公司为某知名软件公司外企,他从 15 年起就开始在实际业务中使用机器学习框架。除了有使用机器学习框架的背景外,他还有良好的学历背景:全国 top3 院校,EE 专业毕业生。


他最后以近 50% 的薪酬涨幅入职某知名互联网公司的广告算法岗位。「这个岗位在我们平台上鲜有人能应聘成功,宋宁宇除了优秀的学历背景外,有算法框架的实践经历也给他加了不少分」。宋宁宇的人才顾问 Summer 如此评价这位求职十分顺利的候选人。


(宋宁宇在 100offer 上的具体求职情况)


(2)编程能力


算法工程师的工程素养其实就是一个程序员的基本素养。这也是大部分非 AI 范畴公司招聘算法工程师的基本要求之一:


a.至少精通一门编程语言(Java,Python,Golang) Java优先, 熟悉常用的数据结构、算法等,掌握软件工程、敏捷开发模型,熟练掌握和应用各种设计模式;
b.有海量访问系统的开发经验,对高可用、高并发、易扩展有结合实际的理解


毕竟在市场上,大部分还是和业务相结合的算法工程师,这样的编程能力需求是基本中的基本。从 Python 后台开发成功转岗的候选人霍炬就是这样成功转型的。霍炬在前一家公司主要从事 Python 后台开发的工作,再加上他曾在公司进行过一个小的推荐算法项目的实践,最后成功转岗进入某家技术栈为 Python 的知名独角兽公司。


(霍炬在 100offer 上的具体求职情况)


「虽然在具体的业务实操过程中,负责算法的和负责工程的工程师的工作还是有很大区别,但是现阶段大部分公司并没有把两者的区分做的如此泾渭分明」一家 B 轮独角兽企业的广告算法 Leader 如此解释算法工程师中对于工程能力的需求。


霍炬进入这家公司后,也成为工程+算法兼修的综合型算法工程师,「我们公司没有完全分开」,谈及他能成功转型的原因,霍炬认为「一开始我找算法的岗位并不是十分顺利,本来都打算自己回去刷刷题再战的,但是正好这家公司的技术栈和我擅长的 Python 相吻合,我就十分幸运地加入了」。


(3)业务理解能力


对于算法工程师而言,业务的理解是能够产生结果的充分且必要条件,毕竟你工作的主要目的是把具体问题抽象成数学模型进行解决,然后将模型应用在业务上。


算法工程师的工作不仅仅停留在训练模型层面,还需要把你的模型与实际工作相结合。如果没有好的业务理解,一个你认为找到了一个很棒的变量,其实是你的理解错误。这些要求在 JD 上通常被这样婉转地表达出来:


a. 具备业务抽象和信息建模能力,能够将复杂的业务场景分解、抽象成标准化的业务模型;
b. 对于把大数据和人工智能分析的结果能够应用到实际业务场景产生商业价值具有强烈的热情


这些业务理解能力的另外一种表达方式就是对已有数据的敏感性。对数据的敏感主要表现在:了解数据的业务涵义、能够把数据进行准确的应用。


钱行就是这样一个候选人,长达 8 年的某数据营销公司的工作经验,已经是公司算法总监的他手握 2 项国家授权专利。通过扎实的技术沉淀,钱行总共收到 13 封面试邀请,最后斩获多个面邀,经权衡后,钱行理智选择了更加符合自己工作经验和北京的广告算法领域,以 60 万年薪(仅为月工资*月份,不含奖金和期权等)加入某知名互联网公司。


(钱行在 100offer 上的具体求职情况)


(4)创新能力


对于算法工程师的创新能力的考察背后隐含的是对其未来发展潜力的一种考察。无论是从调参工程师还是合格的算法工程师的角度来看,模型应用从最初的调参,到模型优化,再到端到端解决问题,中间都需要有能够在业务基础上进行模型创新的候选人。


在知道了市场究竟需要怎样的算法工程师之后,想要转岗跳槽的你,可以先看看自己是否有能够证明以上能力的资本。无论是工作经验十分匹配的宋宁宇、正好碰到同样技术栈的霍炬,还是资深算法工程师钱行也好,他们的经验都告诉我们,合适和匹配是能够进行完美跳槽的第一步。


总结


在进行算法岗位盘点时,我们会发现这种人人都想做算法的「狂热场景」曾经反复上演:移动端工程师、大数据科学家这样的岗位也曾经借着行业领域的东风火过一阵。有人说,风水轮流转,也该到算法工程师了。但从实际的情况上看,2017 年的算法市场更像是候选人的「一厢情愿」。


相对于候选人的「不理智」,需求方反而冷静许多。就像我们分析的,算法工程师天然的技术门槛导致这并不是快速学习就能直接进入的技术岗位。但是,有技术门槛恰恰是给了各位想要培养算法素养的工程师一条明确的途径。


毕竟并不是只有成为算法工程师才能完成赶上这个技术浪潮,其实大部分的工程师岗位也需要一定的算法素养。在盲目跳槽之前,不如先看看目标,评估一下自己的水平,再规划怎么上路吧。

 

*为保护候选人隐私,文章中出现的所有人名皆为化名



招聘

新一年,AI科技大本营的目标更加明确,有更多的想法需要落地,不过目前对于营长来说是“现实跟不上灵魂的脚步”,因为缺人~~


所以,AI科技大本营要壮大队伍了,现招聘AI记者和资深编译,有意者请将简历投至:gulei@csdn.net,期待你的加入!


如果你暂时不能加入营长的队伍,也欢迎与营长分享你的精彩文章,投稿邮箱:suiling@csdn.net


AI科技大本营读者群(计算机视觉、NLP、Python、芯片、AI+金融方向)正在招募中,后台回复:读者群,联系营长,添加营长请备注姓名,研究方向。




☟☟☟点击 | 阅读原文 | 查看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存