自从3月20日投递了简历以后,就开始漫长的阿里面试之旅。断断续续接受了阿里6次的技术面试和1次HR面试!我想实习像我这样接受了这么多次面试的也很少见了。
背景
南方某985本硕,计算机专业,在一个做人工智能的实验室,有过一段大厂的实习经历、一段AI创业公司的实习经历
3.30-笔试
参加了3.30的笔试,一个小时两道算法题,ac了一道
4.1-第一次面试
真的没想到这么快就接到了一个来自杭州的电话,可能因为笔试ac了一道,被捞的比较快,大家还是要认真做笔试。
面试官提前约了时间,晚上七点半,看来阿里的加班很严重呀,把面试这个活都安排到晚上了。
首先是自我介绍,我大概说了自己教育经历、实习经历、在实验室研究些啥之类的,说的比较简单
然后问了我能实习多久之类的,我也很实诚,说可能不能太久,因为老板不让,还问了我毕业要求达到没之类的。
面试官看我简历说我做过挺多东西的,让我找其中一个我最想讲的项目讲一下,我就讲了前一阵子在创业公司实习做的一个项目,这个项目我大概讲了40分钟,其中他问了我一些细节的问题,由于当时做的这个项目比较深入,问的东西基本我都答出来了。这个项目聊完,他问我还有没有想讲的,我就讲了在大厂实习时候做的项目,不过是本科时候的事情了,而且也是偏后台开发的,我也记不清了,面试官也说没关系。
最后我问了一下捞我的部门,他说是ali express,是阿里的国际化部门
然后基本聊了1个小时左右,面试官说先这样,就结束了第一次面试。
面试完找朋友查了面试官的级别,是P7,估计是部门leader。
4.6-第二次面试
下午的时候接到面试官的面试预约电话,约晚上面试。没想到清明节放假也有面试。。。看来阿里加班着实严重
晚上七点半如约接到面试官的电话,面试官说我们简短聊半个小时,我感觉到他也不想聊太久,我就开始讲项目,然后我也讲的比较简短,他也没怎么问问题,然后我又讲了一个项目,他也没怎么问,差不多到了半小时,他就是说今天先到这,就结束了。
这面感觉比较水,感觉可能这人是一面面试官的下属,所以只是例行面试一下。
4.15-第三次面试
首先是4.9先是接到了招聘助理的电话来约面试,看来这轮的面试官是比较高的领导,还有人来帮忙约时间,约的是第二天上午十点。
到了第二天上午十点,没接到电话,我就问了招聘助理,他说是临时有会议,改约周六晚七点
到了周六晚七点,还是没接到电话,我又去问了招聘助理,招聘助理说是系统有问题,又该约到下周三上午十点
到了第二周上午十点,终于接到了电话,真是一波三折
感觉这个面试官很忙的样子,听我讲话的时候并不是特别专心,好像还在跟别人聊叮叮之类的,所以我觉得他可能也只是随便面一下,照例问项目,然后我说的比较简短。
这个面试官对我之前在实验室做的项目比较感兴趣,但是那个项目我不是主力做的,所以有好多技术细节我不记得了。。。当时我就觉得这面可能过不了了。不过后来他又问了我另外一个项目的一些深入问题,我抓住机会多讲了一些。
时长大约1小时。
4.15-交叉一面
三面结束后当天下午又接到了杭州的电话,当时我以为是来约时间的,没想到是直接就要面试的。
照例自我介绍、讲项目,这个面试官跟三面面试官一样对实验室项目感兴趣,然后我又不太会。。。
这些聊完以后,他就问我有没有什么问题。我就问了他这面是交叉面吗?您是哪个部门的。大概这样的问题,然后就结束了,最后他说应该还有一到两轮面试。看来是过了,不过我内心。。咋都面了4面,还有。
时长大约1小时。
4.17-交叉二面
大概中午11:40的时候接到了来自杭州的电话,当时我以为是来约时间的,没想到是直接就要面试的,然后我就问他是技术还是HR,他说是技术,然后我就拿了耳机找了个地方跟他聊一下。我满心欢喜以为该进入HR面了,没想到还是技术面。
当时面的已经有些疲惫了。。
还是照例自我介绍、讲项目。感觉这个面试官对我的主要研究方向比较了解,除了问了我做什么,还让我讲了一篇我那个领域的经典论文,然后我也仔细读过,也没什么难度。
时长大约40分钟。
4.23-交叉三面
大概晚上8点的时候接到了杭州的电话,我真的没想到又来一面交叉面。
终于这个面试官不让我讲项目了,说项目应该前面问的差不多了。
首先是问了我对传统机器学习算法了解的怎么样,我说现在实验室都是以深度学习为主,所以接触比较少,他也表示理解。
又问了我了解特征工程吗,我说知道一点,说了一些我的理解。
问我知道LR模型吗,我问LR是线性回归吗,他说是logistic regression,我说知道一点,问了我输入输出,然后我又扯了一些什么是回归什么是分类之类的。
之后问了我一道场景题:
如果一个模型在线下测试环境的表现和线上环境很不一致,会有哪些原因造成,我列举了好几种可能的原因,他还是让我继续说,这个应该比较考验经验,我大概说了这几种:
- 训练超参有问题,过拟合
- 存在数据泄漏,线下测试数据与训练数据重叠
- 训练数据搜集时间与线上实测时差异较大,周围环境发生了较大改变,导致预测不准确
- 模型不合理,泛化性能差
- 数据不均匀,举例来说,线下数据多是A类,而线上多是B类。
- 可能尝试学习/训练的东西根本没有规律可言
还说了一些其他的,不太记得了
之后他给我出了编程题,大概是这样的
一个黑盒里有n个球,球分为三种颜色,RGB,乱序,每种颜色的球n/3个。这个黑盒有两个接口,一个接口可以获取第i个位置的球颜色,一个接口可以交换两个位置的球。通过这两个接口将球排序成RGBRGB这种的顺序。
面试官先上让我不考虑时间复杂度说出一个解法,我说了一个O(n^2)的解法。
然后他让我想想有没有更好的解法,我想了大概5分钟,恍然大悟,说了一个O(n)的解法。
面试官说,大体思路就是这样,不过写出来就没那么容易。
面试官说给我邮箱发了一封邮件,让我四十分钟内把代码写出来并回复邮件。
然后我马不停蹄开始写代码,结果还真的写出了bug。。。突然有点紧张,不过还好30分钟的时候解决了,发给他,面试结束。
4.28-HR面试
终于接到了HR面试的电话。
面试内容如下:
- 自我介绍
- 介绍简历上的实习经历、实验室经历,感觉是在验证简历是否有造假
- 实习的时候业绩怎么样,我说leader对我很满意
- 有什么缺点
- 老师和同学对你的评价
- 最大的挫折
- 英语怎么样,问完这个问题他就让我用英语做自我介绍,然后用英语尬聊了一下,不愧阿里国际化部门,还真的要考察英语口语
- 问了我毕业后的打算,愿不愿意来杭州,我说要看家庭情况,这些问题都如实说就好了
- 我问了他疫情期间实习的情况
- 大概就是这样
结果
等待HR面结果,不过我也不一定能实习,所以也没所谓。记得本科时面阿里一面就挂,这次能走到HR面已经是胜利。
总结
- 项目经历很重要,如果有项目经历,真的省事很多,基础基本不这么问
- 一定要对自己项目的每个细节了如指掌,要有一些有深度的思考,这是面试官期待看到的
- 阿里也没有想象的那么难,大家可以多尝试
- 阿里流程真的很长,耐心
关于交叉三面的编程题:
最大的思路:由于最终的排序是RGBRGBRGB,所以对于R球来说,其只能放在的坐标是0,3,6,9,而G球放于1,4,7,10,同理B球只能放与2,5,8,11,即可以直接记录遇到了多少次该颜色的球,求得下一次遇到该颜色的球应该放置的坐标。
if __name__ == '__main__': length = int(sys.argv[1]) box = BlackBox(length) print('before') box.show_box() ball_index = [0, 0, 0] # R, G, B i = 0 iter_num = 0 while i < length: iter_num += 1 color = box.get_color(i) if i % 3 is not color: # not in right position right_pos = ball_index[color] * 3 + color box.swap(i, right_pos) ball_index[color] += 1 color = box.get_color(i) if i % 3 is color: i += 1 print('after') box.show_box() if box.check_valid(): print('valid!') print(iter_num) else: print('fail!')
全部评论
(7) 回帖