找回密码
 立即注册
楼主: jquave

想要从事算法工程师,要掌握什么?

[复制链接]
发表于 2021-7-30 15:34 | 显示全部楼层
在不同的公司里面算法工程师的要求还真就是不一样,就拿开发语言来说有的需要Java,有的需要C或C++,如果是用爬虫来说的话更多的企业现在都喜欢Python。
这就需要一定要有目的性的去做这件事儿,题主究竟想去一个什么样的公司,这个岗位的描述究竟是什么样的。有了目标才好办事儿。当然了前提就是你的基础一定要打好,每天一定要多刷题保持好一个状态。
如果你有心仪的公司那就最好不过了,直接看一下他们招聘算法工程师的岗位描述是什么样,然后去牛客网的牛客题霸上面找到对应的岗位练习题,里面的面试题都是这个公司的面试真题,相对于其他的网站来说还不用花钱,里面还有一个功能就是AI模拟面试功能,在这个功能里面是完全的模拟出互联网公司远程面试的一个场景,里面的考官也是人工智能,能够根据面试者的现场表现给出一个综合得分,多多练习,拿offer的概率大幅度提升。
发表于 2021-7-30 15:41 | 显示全部楼层
之前写过一篇文章《申请算法工程师实习要注意什么?》,当中的部分内容也非常适合回答这个问题。
这里主要摘录文章里的两点:(1)算法工程师到底是做什么的?(2)申请算法工程师岗位的候选人通常需要具备什么样的专业能力?
1、算法工程师到底是做什么的?

大多数公司招聘的算法工程师都是应用型工程师,基本不需要研发新的算法(当然,具备新算法的研发能力,会相当加分),只需要用到现有的机器学习算法去解决实际的业务问题。
从解决问题的角度,算法工程师需要做的事情是:(1)分析业务问题,并把它抽象和转化为一个算法问题;(2)寻找一种合适的解决该问题的算法方案;(3)通过实验来验证方案的可行性,并形成解决问题的最终方案。
从实际操作的角度,算法工程师需要做的事情包括:解决方案设计、数据预处理、特征设计和清洗、模型训练、模型结果评估、模型部署上线、模型维护和迭代更新。其中,模型训练这步需要事先准备好需要用到的算法工具,在一些基础设施比较好的公司,这类算法工具或者组件可能是现成的。否则的话,算法工程师还需要事先编写相关算法的代码。
2、申请算法工程师岗位的候选人通常需要具备什么样的专业能力?

从算法能力的角度,作为面试官,我通常希望候选人具有“ T 字型”知识结构。所谓 T 字型,指的是一横一纵。“横”表示的是希望候选人基础知识扎实,能够对机器学习的基本概念、问题类型都比较清楚,在算法广度上有一定保证。这里需要了解的包含但是不限于:数据预处理的知识(比如:缺失数据补全、归一化、数据降维)、机器学习基本问题以及相关概念(比如:回归问题、分类问题、聚类问题、有监督/半监督/无监督)、常规分类算法以及相关概念(比如:逻辑回归、随机森林、Xgboost、偏差与方差、Bagging/Boosting/Stacking)、常规分类算法的评估方法(比如:AUC、F1、准确率、覆盖率)、常规的聚类算法(比如:K-Means, GMM, dbscan, 谱聚类)、常规的深度学习算法以及相关概念(比如:DNN/CNN/RNN/LSTM、Relu/Sigmoid、梯度消失与梯度爆炸、反向传播算法),等等。基本上,这里提到的机器学习的基础知识在常规的机器学习课程或者参考书(比如:周志华老师的西瓜书)都会有涉及,如果稍微系统的学习过机器学习,对这些概念都不会陌生。
"纵"表示的是希望候选人在某一个算法方向上有特长,比如:NLP 算法、CV 算法、迁移学习算法、异常检测算法、或者图相关算法,等等。基本上,如果候选人在校期间有自己的研究领域,基本上都会有一块自己熟悉领域的算法。既然是作为特长,那希望候选人不仅仅是了解这个熟悉领域的一个或者两个典型算法,而是对整个领域的算法类别,各类算法的优劣,算法历史发展的沿革,都能有比较深度的了解,对这个领域的关键算法的细节也都比较清楚。细节是魔鬼,有时候熟与不熟往往体现在细节的掌握上。
除去算法能力,我们也希望候选人具备较好的工程能力,能够熟悉一种或者几种主流的编程语言,比如 Python、Java、C++(面向对象的编程语言一般只要熟悉一种,其他的都是相通的)。给定一个算法方案,算法工程师要能够自己编程实现。如果对编程语言还不太熟悉的,可以考虑直接学习 Python 。


P.S 蚂蚁金服今年的实习生招聘开始了,有兴趣的同学欢迎投递简历哟~
发表于 2021-7-30 15:45 | 显示全部楼层
掌握吹牛造飞机,和实战拧螺丝的能力
发表于 2021-7-30 15:46 | 显示全部楼层
算法工程师的要求还是挺高的,尤其是这两年人工智能比较热,所以算法岗的竞争还是很激烈的。如果小伙伴想要从事普通的算法工程师的话,起码是要掌握基本模型的应用,以及调参、优化等等工作。面试时一般会要求求职者具有项目经理、竞赛获奖或者顶会论文等。学历的话起码是研究生起步吧,这一点就甭想了,毕竟算法都是研究生才会开始做的方向,本科生做这个还是稍微有点勉强的。
不过如果你感觉自己入职算法岗比较有压力的话,可以试试转其他开发岗位。但是其他岗位也是会面试算法的。所以如果算法方面真的很差的话,建议先把基本的数据结构、算法等学明白。然后就抓紧去刷题平台做练习吧,平台可以试试牛客题霸,上面的题我觉得水准还挺高的,比力扣题更难一些,考察的算法也比较全面。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-7-30 15:55 | 显示全部楼层
个人想强调一点,算法工程师首选是工程师,玩pandas可不算工程师哦
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 13:51 , Processed in 0.087852 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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