伴随着人工智能浪潮的兴起,算法工程师在互联网企业中的地位越来越高,市面上的薪资平均水平相比于前端、后端等职业也有了显著的价格差。很多人也许对算法工程师,尤其是机器学习算法工程师十分感兴趣,考虑着入坑或者转行。
那么问题来了,腾讯、阿里、百度、今日头条、美团、滴滴、网易游戏这些一二线的互联网公司中的算法工程师岗位的面试套路你都知道吗?今天小编就给大家总结下小编眼中这些公司的面试套路。
---------------------------------------------------人工分割线-------------------------------------------
首先,企业为什么愿意出动辄几十万的年薪招聘算法工程师?
1 算法工程师是智力密集的岗位,不同的人水平差异很大,产出的差异也很大
2 算法工程师供不应求,市场上供求比例大约在1:10
3 好的算法工程师流动性不大,高薪是吸引他们流动的必要前提
那么像百度、阿里、腾讯、今日头条、美团、滴滴、网易、微软、谷歌这些一二线的互联网公司又是怎么通过面试来评估算法工程师的工作能力、算法水平的呢?小编认为主要分为以下3点
1 基本功是否扎实,算法和数据结构是否熟练掌握,是否足够聪明
2 解决实际问题的能力是否足够强,能在有限资源、有限时间内利用各种模型、算法和工程知识解决好问题
3 对领域内的算法有深度的了解,对相关算法能举一反三,能够根据实际场景选择和创新算法
算法工程师面试的内容都是围绕着这三个方向来设置问题和环节的,所以有针对性的准备会让你在算法工程师的面试中更有优势。那么具体的来说,这些方向是如何体现在问题上的呢??
-----------------------------------人工分割线--------------------------------------------------
1 基本功,包括基础的算法和数据结构,是否扎实是算法工程师的前提
我们经常可以看到一些老资格的程序员,因为做不出二叉树、链表的一些基础题而在面试环节被刷掉,然后在各种网站上吐槽。最著名的一个案例就是homebrew的开发者max howell在面试的时候写不出二叉树反转被google拒了。
问题在哪?面试的一个重要环节就是考察你作为一个算法工程师的算法和数据结构是否扎实,算法包括快排、二分查找等;而数据结构就包含链表、二叉树、队列 栈等。这同时考察了你的基础、代码能力和聪明程度。 这一环节是绕不过去的,所以无论你资格多老,只要是算法工程师的岗位,这些知识你还是老老实实的准备吧。
2 你对项目的了解程度,包括但不限于数据上下游、问题定位能力、算法的适用场景、项目的瓶颈和解决方案等等
套用一句名言:
以绝大多数算法工程师的工程能力之低,根本轮不到拼算法能力。
事实是,绝大多数算法工程师只看到了自己title上的算法两字,而忽略了工程这更重要的title。算法是个好东西,但是别忘了前面后面还有数据、问题定义、评估各种各样的问题。
所以面试的时候,也会出现各种哭笑不得的问题。举几个应届生一般答不出来的问题
1 xx算法性能太差,怎么办? 答:加机器
2 xx算法准确率不够,怎么办? 答:先洗数据,看看是否是污染的
3 xx算法训练数据太少,怎么办?答:先用正则表达式产生一批训练数据,自己再标注一批
是不是很简单粗暴?但很多时候算法工程师就是解决这些问题。
3 你对用到过得知识了解的深度,能否举一反三
前面是讲工程,现在该讲算法了。面试官会想知道,你究竟是否真的了解你做过的东西(比如Word2vec、RNN、CRF这些模型),还是你只是一个调包侠?
面试官往往会揪着你做过项目中的一个知识点,往深入问。以下是我在面试中常遇到的问题
GBDT能否并行?决策树有几种?
word2vec怎么训练的?word2vec为什么用huffman编码?有没有替代方案?
数据不平衡有什么解决方案?重采样对svm有效果吗?为什么?
这些问题往往都比较深入,包含了应用场景、算法优化、算法底层知识、算法之间的关联性和对抗性等等。
先讲到这里,有机会我再和大家分享我的看法,欢迎大家关注我。
联系客服