算法岗和开发岗有什么区别?

链接:https://www.zhihu.com/question/490150407

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

作者:如雪
https://www.zhihu.com/question/490150407/answer/2164415753

围城外的人,可能会以为开发岗是工地里搬砖的,而算法岗是类似建筑师指导别人搬砖的。但实际上,这种感觉肯定是不对的。互联网公司发展到现在,算法岗和开发岗本质更像是两种不同型号的螺丝钉,只是处于流水线位置不同而已。并且,很多算法岗需要做的工程量也越发像开发岗看齐,已经远不是当个“调包侠”就能过关的了。

先说下开发岗和算法岗在职责上的区别,以一般的推荐/广告系统为例,有数据库 -> 召回 -> 粗排 -> 精排 -> 混排 -> 前端等上下游模块。

  • 开发岗需要做的是根据具体需求来搭建/维护对应的线上模块,写代码实现线上逻辑。具体而言,开发岗更像纯粹的“工程师”,需要根据需求来进行功能开发、测试、代码上线,比如在召回等某个模块修改个代码逻辑以推进某个业务上线。由于每项工作都是目标确定,工作量也是可以直观衡量的,所以工作确定性很强,产出也比较确定。一旦需求比较多时,就会堆时间加班解决,而加班多工作量肯定会更多,成绩一般也更突出。所以,开发岗更多是“身体累”。

  • 算法岗的目标主要是通过各种手段提升对应指标,比如推荐系统的点击率、转化率、用户停留时长等。举上面例子来说,是通过优化召回、粗排、精排等策略/模型结构,优化模型训练数据,对接新业务优化业务指标等各种不同方式来提升指标。到了现在算法已经接近瓶颈时,算法会过得非常难受,每个优化点不一定会有用(大多是无效的),需要反复提出新方案、优化、排查指标、再提出新方案不断循环直到拿到某个收益点。有时改几行代码结果带来收益,有时又投入巨大工作量也没收益,所以,这方面工作量和工作目标上更不好量化,算法岗更多是“心累”。

在能力上,算法需要了解很多算法领域的知识,但是对工程能力的要求也逐渐与开发岗看齐。

  • 算法需要熟悉各类机器学习/深度学习算法知识、各类策略、比较前沿的新算法/模型,除此之外,现在对算法的工程能力要求也是越来越高,基本的架构(比如上面说的公司内部推荐/广告算法各个模块的代码)、架构开发基础(C++,Java等)、数据开发(spark等、flink)。主要原因一方面是简单的模型优化已经很难拿到收益了,新开发的算法逐渐更复杂,想要让模型更合乎预期就需要对架构很熟悉方便模型设计、指标排查、提出新方案等,另一方面,也是为了快速迭代,开发同学需求太多做不完的时候,算法岗不可能干等着别人开发,自己动手完成一部分简单开发能够保证工作正常推进。

  • 开发岗则需要对架构知识、开发基础等各种知识比算法同学更深入,具体哪部分技术重要取决于具体的开发岗位。

最后谈下这二者面试情况,大体上说算法岗有一定泡沫,内卷比较严重,开发岗位置更多。

  • 由于前几年ai太火,各个专业都往“算法”上转,当年削尖脑袋进算法各方向的学生这两年也开始批量毕业。因此,显而易见的是算法岗面试会更内卷一些,尤其是cv、nlp等偏研究性质且落地场景不多的算法岗位。目前推荐/广告算法还不算卷,主要原因是没有平台导致很少学校会专门研究这两个方向。面试上主要还是看以往的算法项目经验及对算法本身的理解、算法基础知识、刷题等。

  • 开发岗种类比较多,比如后端、前端等,而且根据不同业务可能又会使用不同的技术栈(比如一些用C++,另一些用go等)。开发岗是硬需求,每个公司都需要且数量不少,所以内卷程度会比算法轻。面试上,也都大同小异,主要也是问过往项目,基础知识(对应开发方向的)以及刷题

至于未来发展,个人努力是比不过时代潮流的,碰到好的业务好的领导算法能够很容易带来业务增长,那么个人上升速度也会很快。开发岗也是同理,选择一个好的平台,好的团队比选择开发岗还是算法岗更重要。

上面主要是以互联网公司中推荐/广告算法岗位和开发岗进行比较的,其他还有偏研究类型的cv、nlp等算法岗,这里就不再多说了。

作者:AI蜗牛车
https://www.zhihu.com/question/490150407/answer/2173649548

有这么几个维度的不同,其中有我个人的总结,以及和周围一些做开发的同学聊的。

1.薪资待遇

前几年的时候算法岗可能要比开发岗位薪资待遇更多。

这几年逐渐趋于平齐,但是还是有很多公司依然是同等级情况下,算法>开发。

并且可以参照很多人才计划,例如阿里星,美团北斗,快star,还有腾讯大咖。

大多数都是给了算法类,其实也有一些给了所谓的“开发”,但我个人觉得那些不算开发,应该叫研发,就是里面其实有很多高并行,以及调度算法在,比如分布式存储方向等等,但是这类方向在学校很难接触到(然而是目前企业稀缺的)

2. 工作类型

算法岗有纯粹的research,那种就是读论文,搞模型,写论文的,偏向高校的学术研究。

这种工作可能和开发类差距非常之大。

但是如果是算法“工程师”,其实所谓算法工程师的理解其实就是用算法工程解决问题。

而开发,一般来说就是用开发逻辑解决问题。

本质上都是解决问题工程师,然而算法可能算法的环节,思想更多,开发亦然。

可以看看这个回答:

https://www.zhihu.com/question/485065074/answer/2109345799

3. 技术栈

这个区别我个人感觉很关键。

开发的话本身技术栈相对来说宽泛,比如只要我后端学的牛,我可以去面很多核心部门。

然而对于算法来说,方向偏细分,比如你想拿到不错的offer,最好的前提是方向match,match的话可能事半功倍,但是话说回来,这其实是相对来说很难得,比如时空序列,也有气象背景和交通的,细节还是有差距的,比如cv的细分领域更多了去了,推荐也分文本的,视频流的等等,所以总体面试可能就较局限(相对开发来说)

4. 岗位需求

开发无疑是更多的,算法无疑是更少的,并且这两年早已没之前那么大泡沫。

这个其实也能理解,比如做一个app,如果是一个软件首先你需要把这个开发系统构建起来,就需要很多开发的人,而算法可能是之后的事情。

5. 难度

算法无疑是更难的。

会发现周围在大佬中比率更高的方向都是AI,最终从事算法岗工作的基本上大多数都是在周围眼中相对来说优秀的,当然开发也有很多大佬,这里只能用相对来说。

并且各行各业中的高学历(这里指清北),很多学习数学和经管,以及物理专业的都来从事这个方向,别看他们也是非科班,但是有的学习能力足够强,再加上学习AI其实大家都是从头开始,还不像开发需要知道那么多计算机基础知识,只需要英文以及数学过关,其他就是看自己的学习和理解能力了,所以他们并不会弱势,反而很多人学的很牛逼,导致整体占坑多了。

作者:Ambersky
https://www.zhihu.com/question/490150407/answer/2158935592
本人工作title是算法工程师,实际工作中大约是50%的算法+50%的开发,平时也会和朋友讨论何谓算法,何谓开发。

从我一个入职不到一年的菜鸡算法角度来看,算法岗玩的是数学关系,开发岗玩的是逻辑关系

开发岗的职责是搭建一个产品的所有逻辑,从底层的到顶层的。前端页面之间的跳转逻辑,后端与数据库之间的交互逻辑,前后端的交互逻辑,这些是开发岗需要做的。比方说我的产品是某视频平台,那么打开呈现的界面,点击视频进入到播放页面,注册账号修改信息等操作,都是开发岗完成的。

算法岗的职责,顾名思义就是算法,算法分很多种,机器学习,数据挖掘,NLP,CV,推荐等都是常见的算法领域。算法岗很多情况下是某个产品的核心,在产品中负责某个非常细分的点,或是为某个关键功能提供支持。回到视频平台的场景,每次刷新推荐页都有新的视频出现,如何确定刷新过后推荐给用户什么视频,是推荐算法做的事。一个算法会经历很多轮迭代,会有很多算法工程师抓着头皮想着怎么优化,多做些特征工程?参数再调优一下?换个更合适的模型?等等。这些操作,更多的是数学关系,比方说需要关注数据集的分布情况,相关性矩阵,模型损失函数等。

当然也有很多算法是研究方向,我举的例子不过是一小部分。

毕业不久眼界也比较狭隘,如有不准确之处也望大佬们指正轻喷。

作者:kuadoh
https://www.zhihu.com/question/490150407/answer/2164598780

在目前大环境下,从收入方面出发,算法和开发基本没有啥区别。(17年前后随着深度学习爆火,起薪上一开始是算法岗更高)

下面从算法岗的角度谈谈自己的理解。算法岗主要针对的是无法通过直接编程进行解决的问题(主要是非结构化的输入,如图像,语音,文字等的识别。如果通过人为地写if-else规则去处理这类输入,程序将变得繁琐冗长且不一定能够覆盖所有情况),需要将它转化为一个数学问题进行建模后,结合标注的数据进行该数学问题求解,用得到的数学模型(某个函数y=f(x)一般是个概率函数)。

而开发岗负责的就是能够结构化的输入了,需要处理的情况也是相对固定的。以一个人脸识别接口为例,开发岗负责的部分可能会包括,将需要识别饿图像进行压缩,然后通过网络发送到服务器上解压缩,然后将图像输入算法模块得到的结果通过网络传回客户端。如何承受短时间大量的人脸图像输入同时服务器不宕机,客户没感觉到卡顿,就是常见的后端开发岗需要解决的问题了。

像别的答案提到的那样,开发岗往往是身体累,而算法岗是心累。开发岗面对的问题往往是比较明确的(怎么更快地处理输入并保持准确),能通过代码分析和debug找到问题所在,然后通过扎实的CS基础知识解决或者堆机器解决,举个简单的例子,比如说我有一份几十pb的数据需要找到top100,但是我内存放不下,可以通过堆排序的思想进行处理;或者有钱的直接使用很多机器进行分布式处理快速解决。

但是对于算法的一些问题,因为目前常用的算法模型是一个黑盒,往往是难以定位和解决的,没有一套所有情况都适用的方案。比如说一个动物识别程序将某只哈士奇识别成了狼,这种bad case的原因是没有一个明确的理论另外分析的,解决的方法一般也只是对这类情况增加更多的训练样本或者尝试更先进的网络结构。总结就是算法面对的不确定性更大。

作者:关建淳Arvin
https://www.zhihu.com/question/490150407/answer/2166902713

先来说说算法岗,通常涉及到算法的岗位有两个,分别是算法设计和算法实现,现在有不少团队把这两个岗位进行合并,做算法设计的同时也要负责实现。但是也有一些团队是分开的,做算法设计的不管实现过程。从工作的复杂性上来说,算法工程师的工作强度还是比较大的,但是算法工程师的职业周期也比较长。

很多算法工程师最终成长为企业的首席科学家,或者是首席技术官等岗位,可以说算法工程师的发展前景是非常可观的。

再来说说开发岗。其实软件团队的大部分岗位都是开发岗位,有前端开发、后端开发、移动端开发等,可以说大部分程序员做的都是开发岗的工作。与算法岗位不同的是,开发岗位人数多,占比大,而且大部分开发岗位的职业周期都比较短,一般开发岗位在做到一定年龄(比如35岁)之后都会转型。

一部分会转向项目经理等管理岗位,一部分会转型做架构师,还有一部分转型为行业咨询专家等,当然,也有一部分开发人员转型为算法工程师。

算法岗和开发岗哪个前景更好?其实只要技术到位,这两个岗位未来的发展前景都不可限量。

如何成为一名优秀的程序员,做好以下两点非常重要:一方面要立足本职工作,另一方面也要紧跟技术发展趋势,通过岗位提升和自主学习不断完善自身的知识结构,从而提升自己的职场竞争力。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

0e7970f31bceff6f508569b3c8500d8e.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39610.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023五一数学建模竞赛选题人数公布

数据来源自,各个平台人数投票统计,仅供参考。 具体数值比例为: 题号人数A504B1174C1905 目前,五一数模竞赛C题半成品论文基本完成制作(累计35页,10000字),注:蓝色字体…

为什么地球的生物都是碳基生命?科学家:大自然环境选择的结果

来源:科学的乐园 地球是一个有着多达数百万种生物形式的生命世界,不管这些物种的外形有多大的差异,也不管是植物还是动物,它们都有一个共同的本质,都是碳基生命。 可能有朋友会说了,生命体内最多的物质不是…

【深度学习之美笔记】人工“碳”索意犹尽,智能“硅”来未可知(入门系列之二)

目录 一、前言 二、深度学习再认识 2.1 人工智能的“江湖定位” 2.2 深度学习的归属 2.3.机器学习的形式化定义 2.4 为什么要用神经网络? 2.5 小结 2.6 请你思考 三、参考文献 四、参考 一、前言 在前面的小节中,我们仅仅泛泛而谈了机器学习、深…

华为鸿蒙碳基芯片,华为转投第三大CPU架构RISC-V?首款鸿蒙开发板曝光

原标题:华为转投第三大CPU架构RISC-V?首款鸿蒙开发板曝光 华为正倾力打造鸿蒙OS操作系统,预计6月2日v2.0版本转正,面向普通消费者开放升级体验。 与此同时,华为芯片业务的进展也备受关注。 经查,华为提供给…

二进制基础

二进制 二进制转换 1.计算机为什么使用二进制? 因为计算机最核心的计算原件是CPU,CPU外边有引脚,引脚是通电用的,通电时有时候通的是高电频有时候通的是低电频,用 “1” 来表示高电频,"0"表示低…

生命,到底是什么?

来源:腾讯研究院 作者:Mark A. Bedua 译者:宋词、范星辰 令人着迷的生命 地球表面布满了生命,而且通常很容易辨认。猫、胡萝卜、细菌都是活的,桥、肥皂泡、沙粒都是死的。但众所周知,生物学家们却没有关于生…

华为云首席产品官方国伟:没有人拥有看到未来的水晶球,云上突围之路如何走?

【摘要】 当下云发展有待突破的并不是技术问题;云厂商如何真正帮到企业上云;以不变应万变,什么是云产品规划的三个关键出发点;生态对于云的意义是什么;一起来听技术大咖聊聊云的故事。 本文分享自华为云社区《华为云首…

碳云智能想做的,是规划生命路线

雷锋网按:一家公司在做什么,其创始人说的最靠谱。除了题目,本文内容都由雷锋网(公众号:雷锋网)小编编辑自碳云智能CEO王俊在1月5日发布会上的演讲。在不改变原意的基础上,雷锋网做了比较多的删减和编辑。看完后应该可以…

计算机在生物学研究领域的认识,数字生命

数字生命是用计算机媒介来创造的新的生命形式,是具有自然生命特征或行为的人工系统。数字生命研究是指那些以计算机为媒介,以计算机程序为生命个体的人工生命研究。 中文学名 数字生命 遵循规律 遗传、进化兴起时间 20世纪80年代 适用范围 人类生殖、遗传…

碳基计算机电路,革命性的计算机技术:金属碳电路元件可在更快,更高效的碳基晶体管上工作...

宽带金属石墨烯纳米带(GNR)的扫描隧道显微镜图像。每个突起簇对应于一个单独占据的电子轨道。在每个簇附近形成五边形环会导致金属GNR的电导率增加十倍以上。GNR主干的宽度为1.6纳米。图片来源:UC Berkeley图片由Daniel Rizzo提供 碳金属线是用于碳基计算机的完整工…

碳基计算机电路,碳基电子学研究中心张志勇-彭练矛课题组在碳基逻辑集成电路领域取得重要进展...

作为数字集成电路的主流逻辑形式,互补金属氧化物半导体(CMOS)逻辑架构为硅集成电路技术的发展和繁荣做出了重要贡献。CMOS逻辑门包含一个由空穴型场效应晶体管(p-FET)组成的上拉网络和一个由电子型晶体管(n-FET)组成的互补下拉网络。与其他类型的逻辑类型相比&#…

华为鸿蒙碳基芯片,华为全球扫货应对危机,与北大联合研制碳基芯片,能否不用光刻机...

为了更好地应对这次危机,华为目前开启了全球扫货模式。据悉,华为及其供应商正在夜以继日地加紧备货,争取在9月15日之前,备足够多的关键芯片的元器件。 华为 这一次,备的货不仅仅是用于智能手机。而是华为全系列产品&am…

论文降重攻略

各个高校的学子们离毕业答辩的日子越来越近了,这段时间大家的心里肯定是很紧张的。没有通过论文检测的同学们应该抓紧时间了。有句话是这样说的:论文降重减少抄袭(重复)率比喻为一次战役,知己知彼方能百战百胜&#xf…

有哪些论文降重的方法?

降重可谓是论文完成后最重要的一个环节了,没有之一!它直接关乎到你的论文能否顺利参与答辩,而降重相对来说又比较难,因为你只能在原文的基础上修修改改,还必须得达到降重要求,这让不少同学都犯了难。不过&a…

史上最快降重技巧

史上最快降重技巧 本人帮朋友降重结果呈现,实力,不夸张: 降重前: 半小时降重后: 效果显然,不过麻烦,你也可以把麻烦交给我,我来承担🐕 🙂 全天在线等召唤&a…

电脑软件:推荐两款好用的文件重复检测软件

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

《PAT 备考通》题目集 4.1 简单题 - E 平均成绩

给定一所学校学生的 C 语言成绩,请你统计全班的平均成绩和男生、女生的平均成绩。 输入格式: 输入首先在第一行中给出一个正整数 N(≤10000),即全校学生人数。最后 N 行,每行按照格式 性别 成绩 给出一位…

老胡的周刊(第092期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 chathub[2] ChatHub 是款全能聊天机器人客户…

Bito - 超越Copilot的一款神级插件

文章目录 01 引言02 Bito的安装与使用2.1 安装Bito2.2 注册并创建工作空间2.3 使用方式 03 其它3.1 插件支持的平台3.2 文档 04 文末 01 引言 Bito IDEA插件地址:https://plugins.jetbrains.com/plugin/18289-bito–gpt-4–chatgpt-to-write-code-explain-code-crea…

CURSOR安装和使用

CURSOR安装和使用 下载地址在文章结尾 没用过的可以先看下用法 界面布局 整个软件的布局结构和vscode很相似 但是他不具备 软件的运行环境 如c,java 只能作为一个文本编辑器来使用 ctrlk用法 使用的话ctrlk 生成代码 测试 ctrlL用法 总结 软件官网:Cursor | Build Fast 也…