导读
了解小编的读者应该知道,我在从事了一段数据分析师的工作之后,目前岗位的title已经换成了算法工程师。虽然两个岗位存在很大交集和共通之处,但无论是工作思维还是所需技术栈方面,也都存在很大差异。前期,一名读者在后台留言问我数据分析师转岗算法工程师的经历,今天本文就结合个人实际做以总结。
PS:每个人对岗位的理解往往不同,视经历和认知的偏差,本文难免有其局限性和不同的观点,所以仅代表个人观点,权当参考。
为使本文尽量内容全面且具有一定参考性,对标从数据分析师到算法工程师岗位的跨度,主要从以下三方面展开介绍:
对岗位的认知
能力发展需求
我的转岗历程
01 对岗位的认知
一直认为,对岗位的认知是一个很难的话题,对数据类岗位更是如此。
不同公司会视内部发展和需要而设立各种title,例如比较常见的数据相关岗位包括:数据分析师、商业数据分析师、数据开发工程师、数据仓库工程师、算法工程师、数据挖掘工程师、机器学习工程师、数据产品经理等等,还有听上去比较炫酷的数据科学家,这些title很容易对初入数据岗位的求职者带来混淆,甚至说招聘者对相同title的预期和定位也天差地别。
当然,或许求职市场本就无需固定的公约数。就我的相关经历来看,仅谈谈个人对数据分析师和算法工程师两类岗位的理解:
数据分析师。顾名思义:以数据为对象,以分析为方法/途径/抓手/工具,以分析结论/可视化报表/分析报告为主要产出,以支撑产品迭代/项目落地/运营布局/战略决策为根本目的。某种程度上讲,数据分析师发挥着"军师"的作用,通过结合个人的专业经验、数据探索、模型运用乃至业务感知和市场态势等多方面的结果,对其他同事或支撑部门给出一定的建议和辅助。当然,这是数据分析师岗的宏观愿景,实际往往需要一个团队协同完成,而就单个角色而言,可能实际参与的就是取数/数据处理/模型运用/数据可视化/生成报表/拟制报告中的一项或几项。
算法工程师。首先值得说明的是,在计算机科学领域,算法往往有两个层面的含义:其一是数据结构与算法中的算法,研究的是如何改善功能的实现和执行效率的问题,衡量指标是时间复杂度和空间复杂度,例如:十大排序、递归、动态规划等;而另一种算法则是算法工程师所指代的算法,即以数据挖掘为核心目标,研究的是如何通过一个机器学习或深度学习模型来刻画问题,从而产出价值。所以,相较于数据分析师的众相,算法工程师所指代的角色和定位更加明确:以机器学习/深度学习为代表的系列XX learning是该岗位的代言词。
那么问题来了,数据分析师和算法工程师的岗位联系是怎样的?其实这个问题没有固定结论,大体而言,如果数据分析师和算法工程师协同工作的话,那么数据分析师更侧重前期的数据探索、数据治理和基本分析,而后交由算法工程师开展更为精细的算法建模和效果分析。而如果二者不共存于同一个部门或者不共事的话,那么其实数据分析师也要承担一些数据挖掘工作,而算法工程师自然也需具备前期的数据探索和分析能力。
最后,对两个岗位再分别补充几个调侃角色名,或许可以加深对两个岗位的认知:
数据分析师:查数姑、表哥表姐、SQLboy
算法工程师:调包侠,调参师
02 能力发展需求
岗位的不同,除了工作内容上的差异,最大的区别可能还在于对技术栈和核心能力的要求不同。笔者大体上算是都经历了两种岗位,所以这里对此浅谈一二。
数据分析师:由于前面提到数据分析师的岗位其实众相百态,所以对技术和工具的要求不会绝对统一,但大体上也有一些相近之处。总体而言,通用的能力要求包括:
ESP基础套餐,即Excel+SQL+Python/R。其中Excel是基础,对于小数据量而言是利器;SQL玩得溜也很有必要,不然连个表哥表姐都当不好怎么配的上数据分析师;而至于说Python或R,有人说这不是数分岗位必需的,但不用编程工具做数据分析,总觉得缺点什么似的……面试也不好吹嘘啊,掌握了Python编程语言,数分三剑客(NumPy,Pandas,Matplotlib)还是很香的!
BI报表工具。典型的如Tableau,PowerBI,帆软等,这些工具具有一定的定制性,但确实对于快速产出和定制化数据报表大有裨益;
常用的数据分析模型和相关业务知识。这个要视具体从事岗位和所属行业而异,业务知识的多少往往更能决定岗位的天花板,而灵活运用经典的数据分析模型则有助于分析有章可循
严谨的分析思维和良好的报告撰写能力。严格来说,这两项能力不便于量化和描述,但对数据分析师的成长和产出来说却可能是最为关键的核心能力
某数据分析师岗位招聘JD
算法工程师:相对而言,算法工程师的技术需求更为具体和明确。按所属行业,算法工程师可细分为图像算法工程师、NLP算法工程师等,按岗位侧重能力,也大体上可细分为工程型和研究型两大发展方向,其中前者侧重承接项目和工程落地,而后者则侧重算法预研和理论创新。相关的能力需求包括:
扎实的算法理论基础。其中,经典机器学习模型(对标sklearn算法库)是基础,必须扎实掌握,深度学习也越发成为算法工程师的标配;而对于强化学习、迁移学习、联邦学习等近年来的热门研究方向,则可根据部门实际需要而定
良好的编码能力和工具运用。为了做好算法研究和应用,1-2门编程语言一般是必须的,Python几乎是标配,C++对于算法工程化也有一定的需求。相关算法库方面,机器学习算法库就不说了,熟练运用1-2个深度学习框架也是必须的,例如TensorFlow、PyTorch、Paddle等
良好的论文阅读能力和一定的创新能力。这项能力可能更多的是对标科研型算法工程师,核心产出和评价指标大体上就是论文、专利和竞赛
一定的算法建模经验和工程化思维。这项能力更多的是对标工程型算法工程师,核心产出就是完成了哪些项目,取得了哪些效果等
某算法工程师岗位招聘JD
03 我的转岗历程
前面两个部分大体是分享个人对数据分析师和算法工程师两个岗位的一些个人认知,接下来,就简单总结个人从数据分析师转岗算法工程师的一些关键节点:
1.扎实打好机器学习功底,持续拓宽和深化深度学习理论。源于个人的自我定位和规划,我其实是在具备了一定的数据分析基础之后便开始了机器学习的相关学习和铺垫,所以实际上在数据分析师工作期间便已具备了一定的机器学习功底,详情参考一名数据分析师的机器学习历程,手写实现了若干个经典的机器学习算法:临行在即,分享一个自己写的sklearn源码库。而在此之后,则是不断的学习深度学习相关理论,目前也算具备了一定的理论基础,仍在持续强化中!
2.参加数据挖掘竞赛倒逼成长。参加竞赛既有奖金和证书的利益驱动,更有能力PK的现实考验,虽然所参加的竞赛最终也未能收获什么结果,但其中的经历和过程其实是收益良多的,尤其是在看过其他高手的思路分享之后更是有诸多启发。
3.承接一个实际的数据挖掘项目。这个是源于工作实际中的一段经历,属于岗位的工作需要,那是一个金融类的数据挖掘项目,在经过1个多月的苦心磨练之后,项目验收效果还不错,最重要的是完成了个人项目经验从0到1的突破,其中值得复盘总结的地方很多。
4.持续阅读热点方向论文。目前个人在公司的角色会有一定的预研工作,所以看论文也是一种工作常态。一年来,个人先后阅读跟踪了以下几个热点方向:AutoML、Meta-Learning、Time-Series Forecasting、Transfer-Learning、Cross-Domain Recommendation,虽然目前还未能在论文方面有所斩获,但阅读文献能力倒是在稳步提升……
这四个方面大体可概括个人在从一名数据分析师转岗算法工程师过程中的一些关键历程,总结起来就是:及早做好理论积累和深化、适时参加算法竞赛和承接工程项目、持续跟踪前沿热点方向论文。
以上,希望对有志于从数据分析师转岗算法工程师的读者有所帮助!
相关阅读: