找回密码
 立即注册
查看: 279|回复: 5

关于算法工程师职业生涯的思考

[复制链接]
发表于 2022-8-19 17:51 | 显示全部楼层 |阅读模式
算法工程师是五六年内比较兴起的一个岗位,这也主要得力于人工智能、机器学习的发展,作者本人是一名仍然奋战在一线的算法工程师(庆幸还没被裁),所以抛砖引玉地浅谈一下这个岗位关于将来的一些工作上的思考。
        首先算法工程师主要是用来干什么的,我可以给大家做个比喻:做一个系统就好比炒一道菜,炒这道菜需要用到炒锅、铲子、以及菜品等基本原材料,负责这些原材料的制作或者购买就是架构工程师,而研究如何把这些菜品通过锅铲做出来并且做的好吃,需要加什么佐料,什么时间放什么菜,以及如何翻炒,这些都是算法工程师的任务,他们主要来提升这个菜的味道,让这个菜更受欢迎。所以算法工程师,顾名思义,它的作用是支持这个系统背后的算法,优化好这个算法就可以保证菜品的好吃和最后效果的提升。
        介绍完算法工程师的基本作用,我们想想算法工程师职业生涯可以是什么样子,目前现在社会上主流的算法工程师主要是这三类:搜广推、NLP、CV。搜广推就是搜索、广告、推荐这三种,为什么把它们归为一类,因为这三个领域在技术上比较相通,通俗来讲都有召回排序,都一些可以互相迁移的模型和算法;NLP就是我们熟知的自然语言处理,这个领域主要是用来处理各种文本相关问题,具体一些应用场景包括智能客服、语音助手等,当然还有公司内部还会设立一些NLP相关的基础算法部门,用来处理NLP相关的业务问题,例如:分词、知识图谱、NER识别、摘要等;CV领域就是计算视觉领域,是一个和图像、视频强相关的领域,具体一些应用场景包括:人脸识别、目标检测、自动驾驶感知算法等。其实有一些算法工程师也并非是我上面提及的三个类别,其中也有风控、自动驾驶控制规划算法、金融行业的量化研究等。但是总体来说算法工程师都是通过某一类算法解决系统或者产品中的实际问题,提升效率,优化效果。
        下面我们来讨论下算法工程师职业生涯。
        首先对于一个刚毕业的算法工程师,或者在职业生涯初期(0-3年),最重要的还是锻炼自己解决问题的能力,这个阶段往往就是一个执行者的身份,面对上级交给的任务可以漂亮地完成,达到目标。在初期阶段,的确接受到的任务很杂,这也就是很多人抱怨每天就是写SQL,处理数据等等。但是个人认为,这些都是你将来成长为团队leader或者技术专家的必经之路,只有对数据和业务比较敏感,才能够遇到具体问题具体分析,然后进行建模和优化。当然这个阶段我觉得也是一个可以不断试错的阶段,遇到一些问题可以及时向前辈们请教和学习,积累经验,然后适当总结出一些规律,触类旁通。

        第二个阶段就是职业生涯中期(3-5年),这个时候通常你已经有一些算法模型的经验了,面对上级交代的一个完整的算法任务也可以有一些自己的想法,能够通过调研、选型、实验来对算法进行验证。这个时候我觉得需要培养的是自己对业务抽象的能力,面对不同业务问题,如何进行算法赋能,或者说一个实际问题,如何对它进行算法改造,比如在搜索广告领域会有很多相关性问题,用户搜索的query和广告标题可能完全不相关,通过case排查发现可能有些搜索流量本身就不适合出广告,那我们是不是可以通过构建一个商业意图识别模型来对这部分流量进行过滤,减少这类badcase问题呢。

        第三个阶段就是职业生涯后期(5-10年),在这个时候作为一名算法工程师很大可能性成长为一个领域专家或者团队leader,在这个阶段其实我给不了太多建议,特别是专攻一个领域成为专家好,还是成为团队leader,一个偏向管理的角色好。其实这些都主要看个人,有的人可能对技术会比较痴迷,所以选择继续深耕这个领域,成为一个专家,面对领域中不同问题可以给出解决方案,并且对这个领域的发展以及前沿技术都有着深层次的了解;而对于想成为团队leader的人,一般是那种沟通、领导能力较强的,或者说情商较高的,他们能够组建一个算法团队,能够明确对团队中各个人的分工,对业务的理解比较深,在什么阶段应该投入多少人力,可以拿到多少收益等。

        最后做个总结吧:上面我只列出了10年内的一个职业生涯,但是其实职业生涯是一个更加长远的历程,说的这里我觉得大佬吴海波提出的算法工程师必备的三要素(可迁移的技能、有意义的经验、持久的人际关系),这三点我认为可以作为一名算法工程师职业生涯成长的终极法宝。首先对于可迁移的技能,我认为就是算法工程师的立足之本,在职业生涯初期我们就应该培养好这些技能,包括一些模型的基本原理,以及它为什么可以解决某一类问题等,因为只有扎实的基础,才能保证你将来某一天无论是成为专家还是团队leader都可以在公司受到同僚或者下属们的认可;对于有意义的经验,就是相当于在工作多年之后对业务和行业的理解,因为算法工程师还是要通过具体业务场景来落地实现的,工业界不需要纯技术的迭代,它需要能够解决具体业务问题,达到最后的效果;最后持久的人际关系,往往是很多技术人员很容易忽略的,这里可以理解成培养自己的沟通能力和情商,为什么需要培养这类能力,其实也不难理解,公司是一个小社会,有人的地方必有江湖,当你在解决业务问题的同时,肯定无法避免和各式各样人合作、交流,这时候如果你能够培养一些良性的关系,在你职业生涯过程中他们就会帮助你以及给你许多建议。
发表于 2022-8-19 17:59 | 显示全部楼层
推广搜  cv nlp应该怎么选择怎么看待呢请问
发表于 2022-8-19 18:03 | 显示全部楼层
职业三要素来自于《远见》这本书
发表于 2022-8-19 18:11 | 显示全部楼层
如果被裁了怎么办
发表于 2022-8-19 18:21 | 显示全部楼层
目前我也没经历被裁[大笑],不过我觉得如果你拥有那三要素,我觉得找到下一份工作应该没什么问题
发表于 2022-8-19 18:24 | 显示全部楼层
其实这个完全看自己个人兴趣,现在技术门槛越来越低,这三个方向的很多技术都开源,很方便自己学习,同时我觉得也应该看自己的技能储备和一些客观因素,假如你实验室或者之前找到实习就是那个方向然后你就从事那个方向会不会好一点呢
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 07:26 , Processed in 0.092348 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表