AI算法技术交流社群

长按识别下方二维码,添加入群

   扫码关注添加客服    

   进AI算法学习社群▲ 

【导读】合格的算法工程师真正应该具备什么技能?在面试时,面试官又会如何验证你具备这些新技能?毕业仅一年,相继拿下头条、阿里、腾讯等offer的本文作者,为你绘制了一幅面试技能雷达图。

01

我是谁?

国内高校(211末段)毕业的小硕一枚,光电子专业(偏光通信工程)。

研究生期间自己折腾Java,C++开发,也自学了点机器学习算法,毕业秋招时也尝试过找算法岗机会,都挂了,那时真没有竞争力。没办法,毕业时去了家小型互联网公司,主要是做后台开发。

今年初公司挂了,8月份不得不开始重新找工作,好在我去年入职后就准备着手入坑AI算法,今年的面试经历感觉很艰难,体会颇多...

现在入职两个多月了,有时间回想一下为转行算法岗所经历的学习和面试过程,其实也踩过了不少大坑,今天写点东西,要是能帮到和我一样准备找算法岗的你,也算不枉熬这一夜。

兄弟姐妹们,别怕,坑我帮你踩啦!

02

系统化学习的方法

一开始只是自学网络上的视频课程和博客,但是总感觉在知识点的构建上都很碎片化,很难在形成系统性认知。

这个阶段耗费了我大半年的时间,自学效果很不好,对算法原理公式推导理解不深刻、用法不熟悉,更头疼的是不了解算法模型怎样落地应用的。

年初的时候,我的一位学长给我推荐一门免费课程:《机器学习面试算法常考题精讲》,是由一线互联网公司的算法面试官主讲的。5个多小时的课时,我用5天时间认真学习了课程内容,收获很大:

  • 让我在初学的阶段清晰了如何学习,重点应该放在什么地方?

  • 如何选择合适的技术方向,合理的学习路径是什么?项目经验如何提升?

  • 什么才是一份有吸引力的简历,进而获得面试机会?

  • 今年的算法岗技术面中常会出现哪些考点问题?

小伙伴不要拍砖了,我现在把这门免费课程发送给你,也许能帮助到你。

加我微信好友

发送课程链接

暗号:“课”

03

知识、工具、逻辑和业务

算法工程师必须具备的四个技能点:知识、工具、逻辑和业务,我可以用一个实际例子中说明一下,比如我去面试“推荐算法工程师”的职位,具体是什么能力呢?

  • 知识:主流CTR模型以及预算控制,流量预估,bidding策略等模型算法的原理和技术细节

  • 工具:coding能力,大数据相关的spark、flink、深度学习tensorflow、pytorch、ps-lite等模型训练、serving相关工具

  • 逻辑:算法题,模型之间的演化关系

  • 业务:推荐业务逻辑包括冷启动、召回和排序等在构建模型时的区别联系,如何根据公司业务模型制定模型的目标效果

算法基础是个基本功,需要在学习阶段夯实,千万不要在这个阶段过于深究类似于SVM、EM、HMM等这些需要深奥的数学逻辑层面的理解,会把人耗死而且也极易让你丧失信心。你需要量力而行,不是所有的算法都要搞清楚,抓住主流的算法模型,可以从各大公司的JD里发现面试官比较关心的算法模型有哪些,我总结了一些主流的算法如下:

LR、决策树、SVM、EM、Adaboost、PageRank、 FFM、随机森林、 GBDT 、XGBoost 、聚类、CNN、RNN、LSTM、Word2Vec,FCN、RestNet、Fast R-CNN 、MobileNet、SSD

我学习期间汇总了300+道NLP、搜索推荐、机器学习算法的面试常见题,总结一下:

NLP项目——要写上深度学习模型,今年面试NLP基本上都会问到Bert,Attention机制,最好准备下。

搜索推荐——相关岗位,感觉除了考察算法外,工程上考的也比较多,面一个做搜索的公司就让设计一个方案统计商品近6小时实时点击率。当时有点蒙,回答的并不是很好,有回答使用Storm来实时计算,具体实现并不太熟悉。

机器学习算法——GBDT基本上必问,Xgboost,LR、决策树模型也问的很多,没有遇到手推算法,常见机器学习模型的损失函数要清楚。

  • GBDT的原理

  • 决策树节点分裂时是如何选择特征的?

  • 写出Gini Index和Information Gain的公式并举例说明

  • 分类树和回归树的区别是什么

  • 与Random Forest作比较,并以此介绍什么是模型的Bias和Variance

  • XGBoost的参数调优有哪些经验

  • XGBoost的正则化是如何实现的

  • XGBoost的并行化部分是如何实现的

  • 为什么预测股票涨跌一般都会出现严重的过拟合现象

  • 如果选用一种其他的模型替代XGBoost或者改进XGBoost你会怎么做,为什么?

NLP:

  • 有没有自己改过模型?类似Google Inception这种的;

  • 你了解attention机制吗?seq2seq,有用到attention机制吗?

  • 了解最新的bert,transformer吗?

  • 怎么优化深度学习模型性能?

  • 你们有用到哪些激活函数?NLP中有没有用到?

  • LSTM和GRU那个性能更好,什么情况下gru的效果会比lstm好?

  • 讲一下Word2vec原理;

  • 商品购买评论,分成10个类,怎么聚类?把整个流程从头到尾讲一下。

搜索推荐:

设计一个系统来完成搜索词类目预测,设计一个关键词分类系统,搜索行为日志中有搜索关键词和对于的点击,购买商品日志,每个产品知道具体的分类,怎么处理同一个关键词多分类的情况?怎么处理误点击数据?

广度考察:

  • Adaboost、 FFM、随机森林、个别聚类算法,模型评估等知识的理解程度

  • Spark的调优经验,Model Serving的主要方法,Parameter Server的原理,GAN,Online Learning的基本理解

  • Embedding方法,Attention机制,Multi task,Reinforcement Learning

太多了,不在这里一一列举。我把当时整理的这份300+道机器学习、深度学习的常见面试题的文档(还附有答案哦!很多是我在面试中碰到的原题)送给你,拿走不谢!(放心拿,不转发、不分享)

有需要的同学加我微信好友,马上发你笔试题目,暗号:“题”

加我微信好友

发你笔试题目

暗号:“题”

04

突出简历的重点

8月份我开始准备找工作,年初受疫情影响听到很多公司停止招聘和裁员的负面消息,还是有些担心就业形势不太好,从后来的投递简历情况看,AI方向的招聘还是挺多的,但是企业的招聘要求在不断增加,门槛提高了。

今年上半年我自己的学习过程给了我很强的信心,在正式找工作前,我先试水面试了几家公司,目的就是积累经验和找一下面试感觉,对我之后学习的效率提升了不少,每次面试中遇到的问题有针对性地做查找资料、细化知识点,准备好之后再投了一批简历。

自己准备的简历投完之后得到的面试机会并不多,所以找了一位老司机检查了一遍简历,发现简历的确有比较大的问题。在他的指导下,调整了简历项目,去除了之前的和目标岗位不太相关的项目,细化了算法部分的项目。

改完简历后,面试机会果然变多了,我主要找深圳和北京的岗位。我当时在职,频繁的请假跑去现场面试也不方便,在集中面试了一周之后拿到了3个offer,年薪都在40W以上,最终我选择了北京的一家视频类推荐的头部公司算法岗职位。

建议:面试过程中,面试官常根据你的简历追问一些细节问题,简历上写的技能和知识点,自己一定要熟悉,不熟悉的不要写上去。简历写和目标岗位相关的项目,之前工作中不太相关的项目可以去掉,简历整体项目经历要和目标岗位匹配。

05

算法岗面试环节和重点

一个完整的算法岗面试过程主要有以下几个主要环节:自我介绍、项目介绍、算法推导和解释、数据结构与算法题(写代码)。

  • 关于自我介绍,主要就是简单介绍下自己的教育背景,在校或在职期间的研究方向和所做的项目以及在项目中所充当的角色等等,为之后的面试做个铺垫,让面试官从中捕捉一些点来向你提问。

  • 项目介绍是最为重要的,这也是体现你综合实力的地方,对项目背景、项目实现的方案,项目所实现的东西都要了如指掌,做机器学习的,必须准备一到两个重点的机器学习项目,关键是项目中间的技术细节都要了如指掌,比如你用了LR、或树模型,就得知道所有LR或树模型相关的推导和原理,一旦你说不太清楚,面试官就会对项目的真实性存疑。

  • 接下来就是机器学习算法原理和推导,这也是要重点去准备的,在面试前你需要能给你一张白纸,可以把推导的每一步写的清清楚楚的,面试常考逻辑回归和树模型的推导,关于原理面试官常会问你几个树模型之间的对比等等,其他的算法比如LR、SVM、EM、Adaboost、FFM、决策树、随机森林、 GBDT、XGBoost 、推荐算法、聚类、LSTM、Word2Vec等等,以及他们的适用场景。

  • 技术面主要会围绕简历项目展开,大厂面试官问的很细,阿里的基本上涉及到的每个模型每层参数结构、原理、模型损失函数,为什么要用这个损失函数等问题,所以简历上写到的相关技术最好搞透彻。小公司一般会问一些工程上面的问题,一般算法岗位也会做工程相关的工作,如大数据和接口服务。

  • 最后就是写代码了,很多非计算机出身的大都会栽在这个地方,代码写得少,训练不到位,就会导致当场思路不清晰,不知从哪儿写起。

06

今年算法岗面试的新套路

今年经历的面试过程有两个比较大的变化,看来面试套路不一样了:

  1. 算法方面的考察更加全面了,除了考察对算法原理的理解,围绕着数据处理问题,数据不平衡问题、过拟合和欠拟合,交叉验证,模型评估和选择问题,特征工程的问题,提出的问题更细了,经常会提出模型之间的本质区别,适用于什么样的训练场景下?

  2. 对项目方面的考察深度提升了很多,会被面试官揪着细节一步一步让你解释,为什么这么做,效果如何?你如何调整模型,你是思考的逻辑是什么?说说自己在项目中具体负责的模块中用到的技术细节,遇到了什么问题,你使用的模型的损失函数、如何优化、怎么训练模型的、用的什么数据集能够十分清晰的描述出来。优化算法的选择做过哪些?为啥这么做?

所以,我的建议是:

  • 讲述项目的基本情况,项目的背景、规模、用时、用到的技术以及各个模块。重点突出自己比较熟悉的技术,防止在面试官打断的提问的时候,问到自己最薄弱的环节。

  • 主动说出自己做了哪些事情,这部分的描述要尽量和自己的技术背景一致,描述自己在项目中的角色。描述模块中用到的技术细节,这部分一定要注意,一定要把话题引到自己最熟悉模块的技术细节。

  • 一定要主动:作为面试者,应该能够主动并且逻辑清晰的说出自己的项目中有哪些亮点,能够主动的把自己的闪光点在短短几十分钟的面试中都展现出来。

总结一下吧:

今年的大环境不是太理想,职位在减少,同时公司的招人要求变高了;

小伙伴们的进入门槛会越来越高,薪酬水平却在提升,只要是入眼了,还是敢给好offer,这也说明企业在这样的大环境下,希望花钱找到适合的,能干的。

真正合格的算法工程师一直是短缺的,努力做金字塔上部的那块砖。

上面我提及的免费课程,这里详细介绍一下内容,小伙伴自行观看。

❤️❤️❤️  课程适合 :❤️❤️❤️

  1. 正在或者已经自学过机器学习算法,但不知道该如何准备面试的小伙伴,尤其是项目经验欠缺的。

  2. 准备入坑,但不知道该如何系统化学习的小伙伴。

07

加入免费学习社群

【AI算法学习社群】已经成立,旨在打造真正有价值,能交流,一起学习成长的社群,并且每月专业直播公开课,导师指点答疑,职业方向规划,送书福利不断!

扫码添加好友后,立即进学习群。

加我微信好友

马上进学习群

暗号:“入群”

觉得好看就点个在看吧

没想到! 我通过的5场算法面,他们竟然都是看中了这些...相关推荐

  1. 思迈特软件Smartbi:没想到,那些具有设计感的ppt饼图,原来都是这样做的!

    饼图是我们学习生活.工作报表.年度总结等诸多报告中最常见的图表类型之一,无论是excel 饼图还是ppt饼图,只要你做得好,就一定能给自己的报告加分. 但是在用excel数据做饼图的过程中,一定会出现 ...

  2. 用python画的炫酷图形_太秀了,没想到这些既炫酷又能动的图竟然是用 Python 画的!...

    点击蓝色"Python空间"关注我丫 加个"星标",每天一起快乐的学习 选自TowardsDataScience    作者:Liana Mehrabyan 机 ...

  3. 2021最新汇总数据结构与算法面试题(准备面试的可以看看)

    闲来无事整理了一下数据结构与算法面试题,准备面试的可以看看. 这份面试题汇总除了Java语言的,我还整理了C++和Golang语言的,无论你是做什么开发这份数据结构与算法面试题汇总都可以看,如果你是做 ...

  4. 没想到,因为这场AI大会,我也可以凡尔赛一把

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 没想到,小小编辑的我,竟这样不经意凡尔赛了. 事情是这样,刚有朋友"求"我--量子位小编,要一张大会的现场票. 说官方渠 ...

  5. 我擦!没想到你们都是这样 “劝退” 员工的!

    前几天,我的一个好哥们在微信上跟我吐槽,说这波疫情对经济的影响实在太大了. 他说在往年,这个时候跳槽应该开始冒头了,而今年从春节到现在,除了少数几个被裁员之外,200多人的技术团队几乎就没一个主动提离 ...

  6. 我知道有中年危机,但没想到这么不堪

    来源 | 燃次元(ID:chaintruth) 作者 | 曹阳 编辑 | 林文龙 "金三银四"是职场人的黄金跳槽时间,但赵华正在被职场排挤,面临失业. 35岁的赵华,在半年前加入了 ...

  7. 当人们流行“炮轰”联想时:没想到的联想

    如果你看懂了联想,你就看懂了中国IT企业.如果你了解联想的过去,就一定理解联想的今天.生于忧患,死于安乐.联想的忧患意识使她日渐成熟.今天的业绩表明,联想还是一个好公司,她依然强大,依然生气勃勃.从& ...

  8. ps4插html屏幕不亮光,万万没想到,居然是这个!PS4黑屏的原因终于找到了!

    往往最容易获得的最容易忽视 原本想着换了新显示器就可以安逸的打机了,结果新的问题却出现了.自从PS4 Pro原装线被人"借走"后,只能用一根装机时的"赠品"顶着 ...

  9. 没想到吧,我又回来了!

      hi,你浏览到这篇文章极有可能是想寻找其他技术文章吧,不好意思,这只是写给我自己的一篇小文章,同时也是官宣自己要回归继续使用CSDN了!大学毕业之后,本来我也是想继续用CSDN的,但后来大学室友给 ...

最新文章

  1. ASPxGridView之PreviewRow
  2. Android log打印不出来
  3. 消费者关注的 Win8 问题汇总(下)
  4. 机器学习技巧:如何(以及为什么需要)创建一个好的验证集
  5. python3:对list中每个元素进行处理
  6. 让你的div可拖动(手机端)
  7. plot画分段函数_python画图函数大全
  8. aee快递查询 在php_第48课 thinkphp5添加商品库
  9. 4安全框_压花玻璃与安全玻璃有哪些特点?玻璃隔断的介绍
  10. axios 跨域传参_axios跨域问题
  11. 【优化求解】基于matalb改进的遗传算法求解IGA城市交通信号优化问题【含Matlab源码 215期】
  12. 短视频源码开发,短视频系统源码搭建,从短视频系统起播过程入手
  13. 记录:汇编语言编译器选择(vscode,永远的神)
  14. 普罗米修斯prometheus
  15. 深度学习的简介、领域、框架和实际应用概述
  16. fatal: destination path '.' already exists and is not an empty directory. 错误及解决办法
  17. C# 读写 Photoshop PSD文件 操作类
  18. 红米k30 允许调用gpu调试层_红米K30至尊版新版本开售,512G成过去式,入手还香吗?...
  19. java对接聚合支付(计全付)
  20. 01-C++基础-第一章-C++简介与C++简史

热门文章

  1. Apache中KeepAlive 配置
  2. 主流浏览器js 引擎内核市场份额attialx总结vOa9
  3. SQL SERVER 2014 下IF EXITS 居然引起执行计划变更的案例分享
  4. 通过关闭swap来提高win7运行速度
  5. phpHiveAdmin开发两个月记录
  6. OSPF末节和完全末节实验
  7. [CTO札记]MM晕倒地铁中--最适合的活动未必是阅读
  8. matlab解决多旅游商问题,多旅行商问题的matlab程序
  9. SQL INNER JOIN LEFT JOIN RIGHT JOIN 笛卡尔积
  10. java与scala的区别 个位数以内的 就喜欢作者这么言简意赅的