答疑 | 算法岗和开发岗哪个前景更好?
机器学习算法与Python实战
共 5112字,需浏览 11分钟
·
2021-11-27 04:26
↓↓↓点击关注,回复资料,10个G的惊喜
本文约4100字,建议阅读10+分钟
算法岗和开发岗哪个前景更好?
开发岗需要做的是根据具体需求来搭建/维护对应的线上模块,写代码实现线上逻辑。具体而言,开发岗更像纯粹的“工程师”,需要根据需求来进行功能开发、测试、代码上线,比如在召回等某个模块修改个代码逻辑以推进某个业务上线。由于每项工作都是目标确定,工作量也是可以直观衡量的,所以工作确定性很强,产出也比较确定。一旦需求比较多时,就会堆时间加班解决,而加班多工作量肯定会更多,成绩一般也更突出。所以,开发岗更多是“身体累”。 算法岗的目标主要是通过各种手段提升对应指标,比如推荐系统的点击率、转化率、用户停留时长等。举上面例子来说,是通过优化召回、粗排、精排等策略/模型结构,优化模型训练数据,对接新业务优化业务指标等各种不同方式来提升指标。到了现在算法已经接近瓶颈时,算法会过得非常难受,每个优化点不一定会有用(大多是无效的),需要反复提出新方案、优化、排查指标、再提出新方案不断循环直到拿到某个收益点。有时改几行代码结果带来收益,有时又投入巨大工作量也没收益,所以,这方面工作量和工作目标上更不好量化,算法岗更多是“心累”。
算法需要熟悉各类机器学习/深度学习算法知识、各类策略、比较前沿的新算法/模型,除此之外,现在对算法的工程能力要求也是越来越高,基本的架构(比如上面说的公司内部推荐/广告算法各个模块的代码)、架构开发基础(C++,Java等)、数据开发(spark等、flink)。主要原因一方面是简单的模型优化已经很难拿到收益了,新开发的算法逐渐更复杂,想要让模型更合乎预期就需要对架构很熟悉方便模型设计、指标排查、提出新方案等,另一方面,也是为了快速迭代,开发同学需求太多做不完的时候,算法岗不可能干等着别人开发,自己动手完成一部分简单开发能够保证工作正常推进。 开发岗则需要对架构知识、开发基础等各种知识比算法同学更深入,具体哪部分技术重要取决于具体的开发岗位。
由于前几年ai太火,各个专业都往“算法”上转,当年削尖脑袋进算法各方向的学生这两年也开始批量毕业。因此,显而易见的是算法岗面试会更内卷一些,尤其是cv、nlp等偏研究性质且落地场景不多的算法岗位。目前推荐/广告算法还不算卷,主要原因是没有平台导致很少学校会专门研究这两个方向。面试上主要还是看以往的算法项目经验及对算法本身的理解、算法基础知识、刷题等。 开发岗种类比较多,比如后端、前端等,而且根据不同业务可能又会使用不同的技术栈(比如一些用C++,另一些用go等)。开发岗是硬需求,每个公司都需要且数量不少,所以内卷程度会比算法轻。面试上,也都大同小异,主要也是问过往项目,基础知识(对应开发方向的)以及刷题。
https://www.zhihu.com/question/490150407/answer/2173649548
https://www.zhihu.com/question/490150407/answer/2158935592
https://www.zhihu.com/question/490150407/answer/2164598780
https://www.zhihu.com/question/490150407/answer/2166902713
推荐阅读
用Python学线性代数:自动拟合数据分布 Python 用一行代码搞事情,机器学习通吃 Github 上最大的开源算法库,还能学机器学习! JupyterLab 这插件太强了,Excel灵魂附体 终于把 jupyter notebook 玩明白了 一个超好用的 Python 标准库,666 几百本编程中文书籍(含Python)持续更新 100天搞定机器学习|Day63 彻底掌握 LightGBM
好文点个在看吧!
评论