本文的话题来自一名应届生关于毕业后职业发展方向的选择。
在职业选择上,数据分析和算法工程师是很多小伙伴都会纠结选择的地方,本文正好对该问题进行了讨论,也希望给更多的小伙伴以参考。
统计学出身但编程不强的硕士应届生,毕业了该选择数据分析还是挖掘算法路径?
各位前辈们好,我是国内某985的研二学生,还有一年毕业,研究生阶段主要跟导师做数据算法的研究,发过一篇会议论文,还有篇算法相关的毕业论文正在写。明年就毕业了,周围不少也在陆续进行暑期实习,但是感觉拿到算法工程师岗位实习的同学还是以本科学CS的为主,而我从本科到研究生都是统计学,本科还辅修了经济学学位,编程开发水平真的很一般,SQL和Python这类日常用的工具使用没问题,但距离编程开发、数据结构、代码素养之类还有很大的距离。因此想问大家对于我这样情况的学生未来职业选择的问题:
以我这样统计出身但编程不强的背景,是否在应聘数据挖掘/算法工程师的岗位时有竞争力?
我也不排斥做数据分析师,也觉得靠近商业、改进业务也很有趣。但是现在数据分析岗位的门槛比较低,算法用的并不多,待遇总体上也比做算法低很多,如果选择做数据分析我这些年为算法做的努力是不是白费了呢?
非CS本科运气好转做了偏算法相关研发,说实话确实工程能力,算法结构有很大的欠缺,在实际项目落地的时候就经常考虑不足,写的代码思路和速度也能明显感觉到自己和科班的差距,经常打击自信心,但是主要还是算法岗,所以我也勉强凑合可以用,遇到啥学啥喽。我觉得其实最应该考虑好自己兴趣和擅长点,一个事自己有兴趣且能长久坚持获得持续成就感才能停过长久工作生涯哇。
一般我都是建议先做难的岗位。算法对于学历背景和编程能力的要求是要高于数仓和数分的。其实上周我的实习生也问了我这个问题,他想做数据挖掘,我也鼓励他做数据挖掘,先尝试去做更难的、技术壁垒更高的事情,之后如果想做数分,思路也会开阔很多,反之则很难:我很少看到数仓数分能转算法的,而且年纪越大越不可能。
这个圈子里算法的地位也会高于数分和数仓,我们组是数分数仓工程混合的,算法地位最高,其他的都是给他打下手,基本在技术层面没有什么话语权。另外一个就是待遇,一个985研究生刚毕业的算法工程师,可能比那些所谓高级的数分和数仓的工作还高。
另外从思考问题的角度来讲,数仓和数分很多时间只能思考一些线性的问题,做统计还行,做预测啥的就有点心虚了。长时间只会写SQL的人思维会被禁锢得很厉害,多撸些代码会对思维的训练有帮助。
先面算法,如果因为工程能力被拒了就转数分,理论上当然是能做算法就做算法,不能做算法就做数分啦,至于编程能力的问题,这可能更多的是面试官的选择问题,即他是否想要一个背景好但是工程能力不强的人。
不过现在算法的门槛很高,要是不是水平很高,还是比较劝退,因为算法模型的优化效果怎么样是不可控的,可能如果一个季度试了各种方法都没效果,老板就认为你没有产出。
cs好说,工具而已,私下练习就能解决啦。主要是楼主统计学本硕直接去做数据分析有点屈才~能算法就尽量算法吧~编程能力可以练,编程不强就学啊,leetcode刷起来,不还没毕业么。第一份工作选错了,不知道过多少年才能找到适合自己的。统计学的硕士,学校还不错的话,大厂算法岗干三年,工资一个月30/50k不成问题,甚至现在应届算法30的都有很多了,当然竞争很激烈。
如果能进顶尖的咨询公司或者大厂,做数分也是蛮有意思和前途的,要不然就走算法,其实做算法也需要数据分析能力。
忽略这两个选项,三年之后,你期望自己做着什么样的?
也得想明白是否愿意并且喜欢日常工作以代码为主这种方式。
前面是小伙伴们的讨论,下面简单分享一下居士的观点。
先说一个例子,一个人大统计学的小伙,毕业后专门选择了数据分析,有算法工程师的机会也并没有选择。当时我还问了对方为什么这么选,对方答复是:数据分析很有意思。
说这个主要是想表达一点,找工作,除了看发展也看兴趣,能坚持下去,可能更重要。
然后回到算法工程师和数据分析这个话题上,分别简单聊一下。
算法工程师,在小厂,就不多说了,就算是天天写报表我都感觉是可能的。在大厂的话,很多团队的算法工程师,是会要求很强的工程能力的,因为基本不需要你研究什么算法,更多的是将算法工程化,比如推荐系统。很多时候都是在做工程化的东西。
数据分析,这个岗位争议其实很大,好的团队,进去了是做数据挖掘的事情,差的团队,进去天天写sql。所以,这个要看情况来定,一般来讲,好一些的团队,数据分析会用到统计学、机器学习这些大部分人认为算是高大上的东西,并且工程能力要求没那么高,会用就行。核心就在于如何去驱动业务。
但是由于现在各种培训班都在教数据分析,感觉有点烂大街,会让人感觉到数据分析的壁垒比较低,没什么含金量,过几年就被淘汰的感觉,这些只是挂着数据分析的名字,做着提数事情的岗位而已。整体来讲,高端的数据分析是很受欢迎的,而且价值不比算法低。
所以,总体来讲,居士建议:
先看你的兴趣爱好。喜欢数据分析,就做数据分析,可以安心做,天花板足够高。
再结合你当前的情况,比如你的工程能力不是特别优秀的,说实话,如果面数据分析可能都有问题,面算法工程师可能压力更大。
最后,从待遇上讲,大厂里面,从不认为数据分析比算法工程师工资低。
本部分内容,来自提问的整理和反馈。
在上面的讨论中,大家从各自不同的角度提出了对选择算法还是数据分析的观点。首先还是让我们回到问题本身,总结一下大家的回答:
对于第一个问题,“统计出身但编程不强的背景,是否在应聘数据挖掘/算法工程师的岗位时有竞争力”:总体建议还是努力提高代码水平和工程能力,毕竟逃避不能解决问题,既然还有时间那还是尽量努力补齐短板。原因是如果去小厂还好,小厂需要的能力比较综合;但如果去分工非常细致的大厂,算法工程师就得有很强的工程能力,因为工作中更多的其实是将算法工程化。更何况之前的讨论中也总结过,哪怕是数据分析岗位,现在对于分析师的各方面要求也越来越高,如果做项目的工程能力不优秀,面试数据分析都有困难。所以与其反复纠结,不如在leetcode上再写几道题。
对于第二个问题,“数据分析也不错,但是总体门槛和待遇都比算法低,统计学本科去是否屈才?”:首先总的来说算法岗的确是更难、技术壁垒更高的岗位,对于学历背景和技术能力都有更多的要求,平均待遇也更高,如果能去算法岗自然很好。但这里说的是平均水平,各个岗位人与人之间发展的方差都很大。高端的数据分析天花板很高,如果能加入一个优秀的非提数机、驱动业务的团队,无论是才华施展还是待遇福利都不会让你失望。
进一步我们跳出这两个问题本身,尝试提出一些职业选择的方法论:
方法论1,如果对于两个方向没有明显偏好,那在毕业前朝着算法或者数据挖掘的岗位努力一下是个比较好的选择。这里主要考虑的是试错成本的问题,通常来说选择了对技术要求更高的算法岗位,如果之后又不喜欢,转岗数据分析是比较容易的,但反过来就比较难了。
方法论2,自然是兴趣驱动。正如上面一位朋友所说,“一件事自己有兴趣且能长久获得持续成就感才能挺过长久工作生涯”,让你有兴趣的工作大概率也是让你觉得有价值感、并且能展现自己价值的工作,能有正向反馈驱动自己坚持走下去。一个对数据分析、业务洞察充满长久兴趣和成就感的同学距离成为一名优秀的分析师也不会远,对于算法岗也是一样。
关于职场相关的讨论,很难有一个完全准确的答案,或者说是准确的道路,但是,在不断的交流和思考后,道路会越来越清晰,因此,也希望大家有困惑可以多找居士交流。