编者按:小哥是中科院人工智能学院的同学,基本功比较扎实,也有AI比赛的参赛经验,笔试的聪明程度不错,是一个好苗子。
事实上,没有顶会paper,没有顶级比赛获奖,只要你足够聪明,面试都是没有问题的。
核心是思维敏捷,学术能力在线。

做完笔试的当天晚上,我就收到了预面试的电话。预面试大概有三十分钟,过程很轻松,都是面试官在给我介绍他们组的工作、base地点、福利、户口,还有进去之后的方向问题。预约面试结束之后,就约了第二天的一面。一面是微信语音面试,持续时间比较长。在简单的自己介绍之后,面试官就让我介绍我在学校的项目和研究方向。然后面试官家里也是突然有事情,就留给了我两道数学智力的题目,一个小时之后继续面试。这两道数学智力的题目,我也只是提供了自己的想法,不知道当时到底是不是做对了。然后,面试官就问了BN层的原理,我回答之后顺便说了还有IN,GN,LN等方式。然后面试官就问了我他们之间的区别 。接着问了我为什么循环神经网络中不使用BN,应该使用什么?这个问题,我之前在知乎上浏览过,有点印象,然后我就把我知道的说了出来。最后面试官问了梯度消失和梯度爆炸的原因。一面问的都是比较基础的问题,还是要看大家基础是不是很扎实吧。 二面是视频面试,这个面试官貌似很看重算法能力,在我自我介绍之后,就直接让我写编程题。编程题目并没有很难,但是需要尽量的减少空间复杂度,我给出了两个方法之后,面试官貌似不是很满意,让我接着再想想,最后我给出了分治和快慢指针结合的答案,才算是通过。之后就是让我介绍我的项目和方向,然后依旧是问了一些基础的深度学习问题。三面和四面的流程大致都是自我介绍,学校的项目和方向。可能是我的cv方向比较偏,所以面试官都喜欢让我介绍我的方向。我看了比较多的我这个方向的论文,所以比较能说,再加上面试官的一些提问,每次方向介绍都要占去20分钟左右。三面面试官,之后又问了一些深度学习的问题,接着就说给我约交叉面,然后就又聊了一会,在我以为要结束的时候,突然问了我两道算法问题。说实话,这个确实让我有点措手不及,顿时感觉脑子一片空白。不过好在这个两道算法题是Leetcode刷过的原题,所以还是及时给出了正确答案。四面的面试官,在和我聊完我的方向之后,就问了我自己觉得自己有哪些优点和缺点,和我之后的实习时间安排等等。第五面HR面,持续了三十分钟,开始也是自我介绍,然后问我了一下我项目的过程,项目中遇到哪些问题,我是如何想办法解决这些问题的。接着问了在这个项目中,最让我印象深刻的地方是什么,询问了一下我已经有的offer,我想在这个实习期间获得什么。

基础知识、项目经历、算法是面试的主要部分。网上有很多的算法岗位的面经,可以参考恶补自己的基础知识的不足。同时《百面机器学习》这本书也是建议过一遍。算法题基本就是依靠《剑指offer》和Leetcode,建议leetcode中基础的数据结构一定要过一遍,然后就是苦练DP,二分,DFS,BFS,滑动窗等。笔试中很经常出现快速幂,大数取余,这个也一定练习。很多人被问到算法题目就会立马高度紧张,无法思考,这时候如果碰到做过的题目,就可能会救你一命。所以一定要多刷题。项目经历方面,自己做了什么一定要讲清楚,遇到什么问题,如何解决的。特别是如果你没有很大的创新的时候,一定要对自己的方向有一定的了解。而且,简历上写道的东西,都可能是面试官提问的东西。所以,只要写到简历上的东西,自己都要先准备好。