精华内容
下载资源
问答
  • 做算法的
    千次阅读
    2021-10-21 00:19:20

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

    1. 薪资待遇

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

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

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

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

    2. 工作类型

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

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

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

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

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

    3. 技术栈

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

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

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

    4. 岗位需求

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

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

    5. 难度

    算法无疑是更难的。

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

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

    公众号:AI蜗牛车
    
    保持谦逊、保持自律、保持进步
    
    个人微信
    
    备注:昵称+学校/公司+方向
    如果没有备注不拉群!
    拉你进AI蜗牛车交流群
    更多相关内容
  • 大家好,我是千与千寻,一名专注于后端研发与算法工程领域的程序员,最近我的作息快赶上yp哥的作息了,不过习惯就好。昨天晚上深夜回家发了个pyq,我大致表达的意思:谁说算法岗不加班的?活没干完...

    大家好,我是千与千寻,一名专注于后端研发与算法工程领域的程序员,最近我的作息快赶上yp哥的作息了,不过习惯就好。

    昨天晚上深夜回家发了个pyq,我大致表达的意思:谁说算法岗不加班的?活没干完的前提下,你不得疯狂加班的,跟2b6577e6b427b7ca270a031393585988.png似的干?

    0474c4db2b237b40c161ed42dc41cdd0.png

    然后有粉丝说:什么,算法岗也要加班吗?不是说算法岗相对开发岗来说,可以轻松一些吗?加班没开发岗那么恐怖吗?

    先直接说结论:你们可能是对算法岗有什么误解了...

    千寻目前是大厂一名研发工程师,虽然是研发,但是工作内容,后端研发,算法工程应用都有所涉及,我就自身的经历给大家介绍一下算法岗的工作内容,算法岗的种类,以及什么样的人适合做算法岗,对于想转行算法岗的朋友一些建议。

    算法岗是什么?

    算法岗是大中型企业在已经有完整的盈利闭环系统的基础上,需要对其盈利模式进行深度的优化,使得系统可以更加具有针对性的服务用户目的的工程人员。

    算法岗什么工作内容?

    之前的文章中我曾经列举过算法岗与开发岗位的具体工作内容差别,算法岗为包含算法工程师,算法研究员。

    算法研究员:算法研究员的hc相对较少,一般仅仅在特大厂的AI lab以及AI四小龙以及独角兽的公司会有一定的需求,当然这仅仅是针对互联网公司的情况进行描述的,如果是进入国企或者研究所,对前沿的技术研究需求还是很多的。

    算法研究员主要的是进行传统模型准确率以及性能的深度打破,在目前的SOTA之下,SSD在COCO数据集上的检测MAP准确率目前是75.8%,那么研究员就会想尽各种tricks来提高模型的准确性,改进网络结构,或者特征提取方式,达到打破目前的最高准确率,从而发表顶会论文。

    算法工程师:算法工程师相对研究员来说,更加接近实际的业务,将算法实际的用到工程中,从而发挥算法的效果,一般来说在实际的业务生产中,我们所使用的算法模型也都是稳定的模型,进行迁移学习,从而可以达到速度与准确率的完美结合。算法工程师相对研究员岗位来说,并不需要实际的模型突破,很对时候达到80%-90%基本就可以使用了,与研发进行配合联调,将算法模型的调用接口化,用于工程需求中。

    算法岗位的方向

    算法岗位的方向还是很多的,最大的范围之下,可以划分为计算视觉,自然语言处理,搜索广告推荐算法,语音算法,方向太多,很难做到所有的都面面俱到。我对我所研究两个方向,进行一下我的心得的分享,推荐派单算法,以及计算视觉算法(CV)

    计算机视觉:

    0939945315c36959dfebcd7e16c005a7.png

    其实在之前作为的计算机视觉的算法工程师,我在计算机视觉方面还是有自己的一些见解,具体可以说明为计算机视觉的算法工程师,我自己的一个感觉,为了防止杠精,我说明仅仅代表我自己的观点,我个人其实不太看好CV方向,原因如下:

    1.看似方向广,就业岗位多,事实上市场比较饱和,toC的大模型相对来说有些已经投入使用,然而对于toB的业务,AI四小龙独角兽公司,相对来说,已经做得十分完善,市场没那么庞大。

    2.技术相对来说比较完善,同时技术的重要性并不是很举足轻重,对于互联网的核心盈利方式——平台+广告的模式之下,图像的地位其实并不是很重要,“说白了,不是能增加资本家资产的东西

    3.图像识别,目标检测,商汤和旷视做的很强,一般应用于工业界,生成对抗,图像分割等相对来说用于互联网的短视频中,抖音快手中的魔法表情使用就是用GAN完成的

    计算机视觉是算法岗中人很多的方向,因为很多本科生的专业是自动化,机械电子,通信工程的同学都会多多少少接触到数字图像,所以在研究生期间也会继续研究图像,也就作为CV算法岗。

    推荐系统算法:

    说到算法岗的大头,也就是最为出名的"搜广推",先说一个结论:如果现在想转行做算法岗,或者是高年级的本科生以及硕士生还没用找到算法岗的方向,那我建议你转推荐算法。

    刚刚我们说了互联网公司的两大盈利方式:

    1.建立中间平台,收取中介费,例如滴滴出行,以及美团点评等。通过建立电商的平台,进行商家与用户之间的匹配,促进消费。

    2.掌握一定的流量,进行精准的广告投放。

    以推荐算法的结构来给大家进行一下详细讲解:

    e9f54291aed31609dfbe1447a9f70e88.png

    在以上我绘制了一个很简单的电商推荐系统的架构图,其中包括每一种流程层的算法逻辑流向。

    召回层:召回预计算目标,从海量数据中多路召回预排序目标,简单来说,选择进入推荐模型的种子号选手,例如购买牙膏需求,牙膏的品牌以及商店有上千万家,肯定不能所有的进行遍历,因此会通过人群画像获取数据的预计算目标,模型计算量有百万降低到百级。

    过滤层:召回层进行召回的预计算目标一定会比最终推荐的目标数量要高,原因需要进行"过滤",比如存在重复推荐,或者无效推荐(商家关门,或者断货)

    精排层:经过过滤层的过滤,进入推荐算法模型,进行推荐得分计算,以传统的机器学习算法为例,在实际的业务系统中会存在多种复杂业务情形,简单的机器学习模型根本无法满足复杂的业务需求,常用的机器学习的模型是集成模型例如xgboot模型,通过采取多种关键特征进行决策回归

    9a3f660f0df94fcb4a50bb17ea1eb330.png

    以上就是精排层的推荐系统的算法整体框架图,将数据集放入模型进行模型训练,算法工程的主要职责就是上下的两个方框:改进模型结构与优化特征工程。

    改进网络模型结构: 以xgboost为例,其内部包括多个决策树,决策树的数量,以及学习率的大小都可以改进特征的学习率,从而在同等数量的特征之下可以达到更高的效果

    优化特征工程:相比于改进网络结构,特征工程则是通过增加特征的种类,特征的数量,比如从原来年龄+性别来推荐商品,到最后使用年龄+性别+爱好数码进行商品的推荐,显然在增加了爱好的特征后可以进行更加精准的推荐,以此类推,优化模型的性能。

    混排层:相比于精排层,混排层的不是单单注重准确率,而是有意去放出"负样本",也就是用精准推荐去带动其他的推荐,比如推荐买大米的商品,顺带推荐豆油,从而获得更多的收益。

    强规则:根据运行吗,比如有一些需要进行强制的置顶,是进行人机交互的主要窗口。

    算法岗的性能提高验证测试

    1.对于算法的模型测试来说,线下使用可以使用测试数据集进行测试,测试改进模型的准确率。

    2.但是实际的工业生产环境中更多所使用是线上AB测试,其具体的架构图:

    7eee57424f0f06a15f9d4e10d1623b33.png

    线上AB测试,其原理是将算法模型的不同改进版本,进行的对照,毕竟这实践才是检验真理的唯一标准,只有线下模型准确率再好,一到线上就崩也是凉凉啊,因此需要模拟100%的线上业务情形,所以进行”控制变量法"进行算法模型的性能对比。

    采用流量分流阀,将全部的流量进行等分为4份,基础桶为最基本模型,等于模型的basekline,其他的几个版本的对照桶中放入改进的模型,在同样的流量之下,对比模型的优劣。具体的对比指标有些复杂,总之采用控制变量法进行模型的对照。

    算法岗适合什么样的人?选择什么样的算法岗比较好?

    算法岗位相对于来说,竞争力比较强,因为算法岗的薪资是互联网食物链的顶端,对标金融领域的券商投资银行岗位,所以算法岗的竞争压力会大一些,不过薪资与竞争压力是成正比的,也是值得的。

    算法岗适合喜欢做研究实验的高年级本科生或者硕士研究生,算法岗需要不短的追最新的论文,努力将学术界或者工业界的最新成功转化为实际的业务系统中去。

    算法岗的性能提高验证测试

    对于技术有执着热爱的比较适合算法岗,其实程序员这个领域都差不多,都是需要终生学习的打工人。

    针对以上我提到的两种算法岗位,可以说目前计算机视觉算法岗的需求迭代更类似开发岗位,而推荐系统的”搜索广告推荐“可能更加有研究的价值。

    最后无论算法岗也好,研发岗也很好,好好做哪行都行的,程序员领域各司其职,不存在鄙视链,一起冲!

    我是千与千寻,我们下期见!

    498d9d4da1acf550210b1a36e43b7ac8.gif 5dbacb6326288c83a3be47a56bc9fd3e.gif 59aa070765d24eab801fd8c9b39ef06e.gif 

    END

    
     
    
     
    
     
    
     
    
     
    往期精彩回顾
    
    
    
    
    适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
    AI基础下载机器学习交流qq群955171419,加入微信群请扫码:

    23b7c3eb5080ba79418c0c548b88133d.png

    展开全文
  • 算法岗和开发岗有什么区别?

    千次阅读 多人点赞 2021-11-10 00:47:12
    链接:https://www.zhihu.com/question/490150407编辑:深度学习与计算机视觉声明:仅学术分享,侵删作者:如雪https://www.zhihu.com...

    链接: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

    展开全文
  • 算法工程师也会遇到35岁这道坎么?

    万次阅读 2020-07-13 22:19:37
    链接:https://www.zhihu.com/question/345939613编辑:深度学习与计算机视觉声明:仅学术分享,侵删现在互联网行业很多开发工程师(包括前端开发、后端开...

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

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

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

    现在互联网行业很多开发工程师(包括前端开发、后端开发等等传统意义上的“码农”)会遇到35岁这道坎,那么对于算法工程师这种非常规、非传统的码农(侧重以数学模型技能为主,而不是写代码),也会遇到35岁的坎么?

    作者:霍华德
    https://www.zhihu.com/question/345939613/answer/832718911

    我对这个问题很谨慎

    一方面,近几年的算法不断自我革命,随着框架的发展,其实门槛是越来越低了。十年前,需要自己实现反向传播,能拦住不少人。现如今BERT出现后,很多任务的难度都大幅下降。这方面利空年迈的算法工程师。

    另一方面,对算法工程师的要求越来越综合,算法工程师也逐渐向多面手发展,做nlp的算法工程师只会nlp领域是不够的,随着多模态技术的发展,视觉、语音、强化学习等技术也统统都要掌握。所以,年迈的算法工程师对新萌的优势在于技能的宽度上。与资本家的博弈中,依靠“技多不压身”,来维持相对高一些的待遇”。

    另外,只能寄希望于中国教育改革迟缓,为年迈的算法工程师多争取一些时间。

    作者:吴海波 https://www.zhihu.com/question/345939613/answer/832991977

    @霍华德讲的很好了,纯从技术发展的本身,一定是门槛越来越低,所谓的经验经不起新技术的冲击,但这一套逻辑更适用于基础技术,我来补充另一方面的信息。

    这个问题其实不是技术人员独有的,而是职业发展中面临的普遍问题,只是网上技术的同学发声比较多,而且技术同学相对单纯,容易一条路走到黑,遇到困难不容易变通,很少去看看那些其他行业的人面对问题的处理方式。

    回到职业规划,我觉得远见这本书里面提了三个标准挺有意思的。分别是可迁移的技能、有意义的经验、持久的人际关系。

    可迁移的技能不多说,简单说下我对有意义的经验的理解,有意义包括两方面,一个是这个经验对别人有门槛,另一个是这个经验是有拿到结果。对很多在工业界做算法应用的同学来讲,无论是线上abtest的资源还是公司算力的资源,对后来者都是有很大的门槛的,即很难在学生时代就对算法和业务结合理解的特别好,这是一个明显的优势。

    再谈下持久的人际关系,很多技术同学都会忽视持久的人际关系。其实人和人之间的信任是非常宝贵的,大家应该重视起来。机器学习发展起来后,在工业界普遍遇到一个问题,如果和非机器学习的同事解释,如何和他们更有效的合作。而机器学习有很多时候,都是需要大投入的项目,这个时候长期的信任关系就变的特别的重要,这个也是新人并不具备的。

    总结起来,题主特别问了算法和程序员的对比,我觉得最大的特点是算法面对的巨大不确定性,而且这个不确定性是和业务本身相关的。业务变化万千,很多经验都是靠真金白银砸出来的,门槛很高。因此,这方面我又偏乐观一些。

    PS:这个行业最受人瞩目的当然是哪些世纪难题,如果你从事的和这些问题相关,那就是高风险高回报的逻辑了。

    作者:Louis
    https://www.zhihu.com/question/345939613/answer/834513584

    说下自己的观点:

    一.任何红利都有窗口期,市场无形的大手将供需关系朝着平衡的趋势推进,只有掌握硬核技能与资源,才不会在潮水褪去时裸泳

    二.单纯羡慕算法高薪转行过来以及大学歪打正着学了相关专业的人,如果不能持续学习,大概率会遇到35岁危机,被淘汰

    三.对技术感兴趣,对行业有热情,有持续学习动力和能力的那部分工程师,会不断沉淀技术和业务方法论,大概率竞争力会越来越强,不必过份焦虑

    四.35岁之后,信用资产非常重要,技术过硬,做事靠谱,为人正直,这些都是要持续积累的信用资产

    五. 如果说算法工程师这行有35岁危机,那么许多传统行业则可以称作“终生危机”了,因为这些行业从毕业到退休,可以预见的薪水天花板非常之低

    六.互联网行业相对大多数传统行业来说非常市场化,目前这个阶段仍是那些聪明、肯吃苦、家里没矿、有强烈逆袭愿望的年轻人最佳行业选择之一。这对个人而言是把双刃剑,年轻时吃到了红利,也要面对中年时被年轻人挑战的局面

    七. 5G时代即将来临,整个世界数字化、信息化的进程也远没有结束,处在这个历史的潮流中,仍有许多红利可期,而这些红利对于和数据打交道的算法工程师来说,相信将会近水楼台先得月


    作者:黄鑫
    https://www.zhihu.com/question/345939613/answer/833031465

    一、无论从事开发岗,还是在算法领域,知识的更替速度快,不持续学习跟进前沿技术,就会被淘汰。

    二、在互联网公司,偏离实际工程和业务的纯算法岗,很难给企业带来实际效益,也会面临淘汰。

    三、算法工程师本质上也是工程师,不要因为你是算法而有所谓的优越感,数学模型技能只是一方面,没有扎实的工程能力,也走不远。

    尤其是AI近几年的火爆,算法的门槛也变低,造成越来越多的人涌入算法岗。等到AI退潮之后,你扎实的基础工程能力和业务能力才是生存下来的必要条件吧。


    作者:Ted Li
    https://www.zhihu.com/question/345939613/answer/833821508

    我觉得不会,起码从我身边那些跳槽的同事的经历不会,40多岁还能随便跳槽。

    可能是我一直在一线工作的关系,我一直觉得算法是一个跟业务强相关的工作,小到数据埋点,大到业务架构,算法都需要参与其中,算法的意见对项目也是至关重要的。

    面向企业的业务经验是极其宝贵的。

    我以前也问过鹅厂做5G和云开发的同事,你们35岁了,会不会被我这样的小年轻淘汰。他们笑着说:你们20多岁的小年轻,毛手毛脚的,不敢让他们动核心代码的,还是有经验的老家伙让人放心。

    也许新的技术上来小年轻会把老家伙打倒,(我以前也鄙视过用十年前老技术的程序员,一点也不时髦),但是老家伙的业务经验却是小年轻没有踩过坑而学不会的。


    作者:芦中人
    https://www.zhihu.com/question/345939613/answer/837391213

    最近和前同事聊了华为的人事制度变迁,算法工程师不是遇到35岁坎,而是整个行业一夜幻灭,职位突然不见,开发是明显的民工岗,我们这代人写crud,搞业务,跟我们爸妈蹬缝纫机种地差不多,it是个很大的池子,而算法港不一样,大部分还在炒作期,炒作期过后,还有没有也是个问题,码农至少是有活干的。我觉得两年内,大部分算法岗位会转为开发或者逐出。

    作者:zhongyian
    https://www.zhihu.com/question/345939613/answer/833924780

    真正的危机感觉是在45岁以后。

    技术层面来讲,算法的门槛的确越来越低,单纯只专注于算法会更容易遇到中年危机,但是我觉得“只专注于算法”这个假设很难存在。工作几年的人,不会只做算法,多少会了解业务逻辑,多少会接触工程落地,也就是说,在工作岗位中也是在不断学习进步的,且大家都是从离开学校的那一刻开始的。

    35岁开始虽然学习精力在慢慢下降,但是还有前面十年的技术积累,一方面学习新技术的成本比年轻人低,另一方面只要比年轻人更懂业务逻辑,更懂开发架构,可替代性不高,就不太容易被淘汰,还可挣扎一段时间。再不济,35岁再就业虽然很辛苦,但不是不可行,而随着人类平均年龄的提升,从45岁真正人到中年至60岁退休之前的危机才是真正可怕的事情。

    个人觉得,开发、算法的轮子都是越来越多越来越方便,最好还是在岗位中往更“全”的方向发展,感觉有业务背景的数据科学家(业务+算法),有开发架构经验的全栈工程师(开发+算法)是未来的发展方向。尤其是可以往交叉学科发展,除了互联网公司,很多其他领域对算法的应用并不成熟,红利代差还是可以缓冲一段时间的。

    作者:王凯
    https://www.zhihu.com/question/345939613/answer/834064029

    补充一个点:

    开发岗和算法岗的最大差异在于校招,学校里不可能培养出一个来之既战的开发工程师,毕竟学校的各种项目相比于各大公司的场景完全就是toy

    但对算法工程师,其实公司是完全能在学校应届生里招到靠谱的劳动力的,事实上这几年的算法应届生在算法理论学习上往往完爆几年前毕业的现存算法工程师(非DL时代)。可能有同学会提到 在离线数据集上跑模型 和 现实中上线一个模型 有巨大gap,但这个gap又分为算法和工程两块。前者很难体系化理论化,往往流于经验,因此学习门槛很低,而且说破了并不值钱。后者对应届生是个挑战,复杂模型的上线需要很多工程优化,但这个在分工明确、基础设施完备的大公司并没有这么重要。

    总之,算法工程师更像是传统码农中的业务部门码农,工作几年修炼的都是‘有没有成功项目’、‘提升了业务嗅觉’、‘和运营产品建立信任关系’等等,相比于应届生,不存在 ‘我行你不行’ 的技术壁垒。

    当然有paper的研究员又是另外一条路了

    作者:曹真
    https://www.zhihu.com/question/345939613/answer/833532879

    如果一直是算法工程师身份,个人觉得,相较于实力、技术跟不上的可能性,精力不足的可能性更大

    从我身边的case看,一个资深算法专家每天要做的事情很多很多,而且同样面临考核压力,也就是线上效果。当然,资深专家拥有更广阔的视野和更加深刻的业务理解,在实际情况中往往是项目owner,给大家指明方向,在这一点上,优势还是很明显的。

    然而,算法工程师同样要面临因为年纪增长带来的精力不足等一系列问题,在这一点上,和后台、前端等工程师别无二致。

    作者:西涛
    https://www.zhihu.com/question/345939613/answer/847977706

    肯定也会的。35岁危机是目前互联网996工作模式下必然会出现的, 做算法虽然看似门槛比业务开发高, 但实际上做过了知道,算法很多时候对业务的贡献并不明显,效果提升一点就需要收集大量数据,或看很多论文并实现算法,这一切都意味着时间和精力的投入,35岁,时间和精力肯定是比不上年轻人的。

    当然了,行业顶级的人才是不会有危机的,但概率上大多数人做不到顶级。


    作者:斯塔克斯
    https://www.zhihu.com/question/345939613/answer/1167981561

    看了这个问题的大部分回答,发现一个特别的现象,刚入职不久或者在校学生普遍对这个问题抱有乐观的态度,而有一定工作经验的职场人士大多是认为存在这道砍。一个人的命运,当然要靠自我奋斗,但也要考虑到历史的进程。所以,未来的科技发展肯定是更加数字化和智能化,无论对于后端开发还是算法而言,都会有大量的需求,至于35岁会不会被淘汰,那就只能看自己的发展了。毕竟兴趣才是第一驱动力。

    ☆ END ☆

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

    扫描二维码添加小编↓

    展开全文
  • 开发岗和算法岗该如何选择

    万次阅读 多人点赞 2020-09-22 18:35:16
    如何看待2019年算法岗一片红海 如何看待2020年算法岗诸神黄昏 如何看待2021年算法岗灰飞烟灭 诸如此类的标题,相信大家在知乎都看到过。小猿的粉丝大部分是面临找工作的同学和面临方向...我读研了,感觉不做算法亏了
  • 算法工程师大致是什么的

    万次阅读 多人点赞 2021-01-25 22:37:39
    笔者在算法领域这些年遇到了不少做算法的同行,发现各自的差别还是很大的,工作侧重点甚至思维方式都不同。为了给刚入门的朋友介绍得清晰一些,这里就简单串一串我遇到的不同的算法算法与非算法的区别 一般来说,...
  • 算法练习】IDEA集成leetcode插件实现快速刷题

    万次阅读 多人点赞 2021-03-10 00:02:49
    一道【两数相加】 打开两数相加,入门题,没什么难度,但要考虑内存消耗和运行时间。 页面右键,有测试,提交,看答案等选项。 提交得到如下测试结果 关于这篇文章还有什么问题,可以关注微信公众号【一条IT】联系...
  • 算法刷题经验总结,帮助大家更好更有效率地刷算法 《PAT | 蓝桥 | LeetCode学习路径 & 刷题经验 》
  • 如何入门学算法

    万次阅读 多人点赞 2017-11-23 17:13:20
    随着科学技术的发展,人工智能已渗透到各个行业,算法工程师非常火爆,急缺大量人才,年薪也越来越高。很多人想入手学习算法,那么多算法,究竟该如何下手呢?
  • 图解数据结构与算法

    万人学习 2020-07-27 10:56:16
    【为什么学习数据结构与算法】     程序=数据结构+算法。数据结构和算法是程序的基础,没有系统地学习过数据结构和算法的程序员只能称作是coder,知道我们写的代码使用了什么数据结构,它的特征是什么。...
  • ACM竞赛学习指南(算法工程师成长计划)

    千次阅读 多人点赞 2017-10-23 09:47:50
    算法工程师成长计划  大学期间必须要学好的课程:C/C++两种语言(或JAVA)、高等数学、线性代数、数据结构、离散数学、数据库原理、操作系统原理、计算机组成原理、人工智能、编译原理、算法设计与分析。 大一上...
  • 遗传算法matlab源代码

    千次下载 热门讨论 2015-08-28 19:10:24
    遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法可以解决多种优化问题,如:TSP问题、生产调度问题、...
  • C++ STL 常见算法(比较详细)

    万次阅读 多人点赞 2018-07-28 17:12:25
    有需要可以关注微信公众号:算法那些事儿 标准库定义了一组泛型算法:因为它们实现共同的操作,所以称之为“算法”;而“泛型”指的是它们可以操作在多种容器类型上,不但可作用于标准库类型,还可用在内置数组...
  • 算法如何入门以及零基础入门算法应该学些什么?​ ✅作者简介:大家好,我是新小白2022,让我们一起学习,共同进步吧! 个人主页:新小白2022的CSDN博客 系列专栏:算法基础入门 如果觉得博主的文章还不错的话,请点赞...
  • 2020最新-精选基础算法100题(面试必备)

    万次阅读 多人点赞 2020-05-18 19:58:16
    作为一个程序员,算法能力必不可少,虽然不一定是算法工程师,但是算法还是彰显着个人的编码能力,面试中也经常会被问到,甚至会被要求临场做算法题,所以,还是好好积累吧。 个人其实对算法挺有兴趣的,从3月份...
  • 由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,...
  • 算法和数据结构》算法

    万次阅读 多人点赞 2021-09-28 08:01:01
    数据结构、动态规划、基础排序、暴力算法
  • 华为算法工程师面试经历汇总

    万次阅读 2018-07-18 18:59:29
    一、概述 华为公司组织架构较为庞大, 二、面试参考 2017华为面试算法题小结 2017年华为实习面试心得
  • 优化算法综述

    万次阅读 多人点赞 2021-06-30 21:21:03
    依据 分类 具体算法 分类名 全局优化 遗传算法(GA)、帝国竞争算法(ICA)、 粒子群优化(PSO) 局部优化 模拟退火(SA)、贪婪算法(Greedy)、 邻域搜索(NS) 是否精确算法 精确算法 ...
  • 智能优化算法:麻雀搜索算法-附代码

    万次阅读 多人点赞 2020-09-27 16:34:00
    2020智能优化算法:麻雀搜索算法-附代码 文章目录2020智能优化算法:麻雀搜索算法-附代码1.算法原理2.算法结果3.参考文献4.Matlab代码 摘要:麻雀搜索算法(Sparrow Search Algorithm, SSA)是于2020年提出的。SSA ...
  • 路径规划算法

    万次阅读 多人点赞 2021-11-14 10:20:44
    文章目录前言一、传统路径规划算法1.Dijkstra算法2.A*算法3.D*算法4.人工势场法二、基于采样路径规划算法1.PRM算法2.RRT算法三、智能仿生算法1.神经网络算法2.蚁群算法3.遗传算法 前言 随着机器人技术、智能控制...
  • 去百度文库,查看完整内容>内容来自用户:朔朔007操作系统实验报告实验一:作业调度学院:软件学院专业:软件工程班级:软件工程12-01姓名:***学号:541213460157实验一:作业调度实现FCFS和SJF调度算法【实验题目】...
  • java算法大全

    热门讨论 2015-01-21 10:10:43
    开发健壮的软件需要高效的算法,然而程序员们往往直至问题发生之时,才会去求助于算法。本书讲解了许多现有的算法,可用于解决各种问题。通过阅读它,你可以学会如何选择和实现正确的算法,来达成自己的目标。另外,...
  • Dijkstra算法(迪杰斯特拉算法

    万次阅读 多人点赞 2019-06-24 18:06:30
    对比算法好坏需要考虑的因素 执行算法所耗费的时间 执行算法所耗费的存储空间 Dijkstra算法(迪杰斯特拉算法) 迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959年提出的,是从一个顶点到其余各顶点的最短路径...
  • 十大经典排序算法-归并排序算法详解

    万次阅读 多人点赞 2020-06-19 15:23:51
    归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,归并排序对序列的元素进行逐层折半分组,然后从最小分组开始比较排序,合并成一个大的分组,逐层进行,最终所有的元素都是有序的 2.算法原理 这是一...
  • 算法设计技巧与分析

    热门讨论 2016-04-26 21:49:18
    算法设计技巧与分析》是国际著名算法专家李德财教授主编的系列丛书Lecture Notes Series on Computing中的一本。《算法设计技巧与分析》涵盖了绝大多数算法设计中的一般技术,在表达每一种技术时,阐述它的应用...
  • 算法谜题(中文版全).pdf

    热门讨论 2016-06-16 22:09:30
    算法谜题(中文版全),非常不错的书籍,对算法感兴趣的朋友可以研究下
  • DES加密算法—实现(C语言).7z,DES加密算法—实现(C语言),DES加密算法—实现(C语言),AssemblyInfo.cpp,stdafx.cpp,app.ico,DES加密算法—实现(C语言).vcxproj,stdafx.h,3.txt,app.aps,2.txt,key.txt,app.rc,resource....
  • 智能优化算法:灰狼优化算法-附代码

    万次阅读 多人点赞 2020-07-31 16:31:41
    智能算法:灰狼优化算法-附代码 摘要:受 灰 狼 群 体 捕 食 行 为 的 启 发,Mirjalili等[1]于 2014年提出了一种新型群体智能优化算法:灰狼优化算法。GWO通过模拟灰狼群体捕食行为,基于狼群群体协作的机制来达到...
  • 我们在《排序算法》系列的开头介绍了几种能在O(nlg⁡n)O(n\lg n)O(nlgn)时间内排序nnn个数的算法。归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。而且,对于这些算法中的每个,我们都能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,854,222
精华内容 2,341,688
关键字:

做算法的