最近有粉丝朋友希望我写一些互联网公司的技术面经,现整理一波面经供大家参考,希望大家能有所收获。本文分享阿里巴巴的算法岗面经,后期会继续分享如腾讯,字节,百度等互联网公司的面经。
阿里巴巴我总共被捞2轮,总共7次面试(含笔试)。总的来说,阿里的笔试和面试题都难度较大,笔试题的难度我感觉仅次于字节,面试的问题很有阿里的风格,面试官希望你能答出问题的本质,并且能有一些自己的思考。
先介绍下本人情况:学历背景为双985,方向为nlp/推荐广告,3篇一作A类SCI论文,有国奖。第一轮内推的阿里淘系部门,第3面的时候挂掉,第二轮转到另一个淘系部门,最终拿到offer。
一、笔试
我是8月24号参加的阿里笔试,其实这时候时间已经很晚了,因为很多同学都面试完成了,我拖这么晚主要是想准备充分一点,然而也并没有很充分……大家明年投阿里一定要早点参加笔试呀。
阿里的笔试是分场次的,一周有好几次,官网查看场次,任选一场参加就行。笔试时间一个小时,写两道算法题,题目难度较大。我做的两道第一道是DFS的题目,花了接近30分钟AC。第二道是一个三维动态规划问题,用python写的,AC了20%提示超时,应该算法优化有问题,没想出最优解,本来想改成C++看能不能多AC一些,可惜后面没时间了。
笔试结束的第二天下午快到5点的时候接到阿里的电话,通知明天早上面试。有趣的是来电显示居然被标注了诈骗……,但我看是杭州的,还是接了……
二、面试
这面是电话面,也叫简历面,全程快1个小时。先是做了一个简单的自我介绍,然后让我介绍一个我认为最满意的项目。这轮没有深挖项目,主要是问在这个项目中,我解决了什么问题,为什么要这样解决,为什么其他人没用这种方法等等。主要是考察在项目中遇到问题,解决问题的能力,以及一些处理问题的思路。最后让我写了一道算法题:二叉搜索树删除一个节点应该如何实现,由于我之前写过很多次,所以比较顺畅的就写出来了。
这面结束后两、三天收到下一面通知。
三、面试
这轮面试的面试官人很和善,问的问题虽然很深入,但都是以一种相互讨论的形式进行。首先还是做一个自我介绍,然后介绍一个相关的项目,开始深挖项目。
接下来是一些基础的机器学习问题,大致如下:
1、处理过拟合的方法
2、正则化,L1和L2的理解和区别
3、介绍一下Adam优化器,再推一下Adam的公式
4、逻辑回归为什么损失函数是交叉熵
5、数据维度爆炸怎么办
6、讲一讲Bert的原理,画出计算的流程图
最后是算法题:最长回文子串:给一个字符串,找到其中最长的回文子串。
用动态规划比较顺畅的就写出来了,面试官问还有不有更好的方法,我说了中心扩散法,可以把空间复杂度降下来。面试官说不错,只讲了下思路没有写代码。
上午面试结束后,下午就收到了感谢信......第一次感受到了面试时谈笑风生,反手就被挂的感觉……不讲武德啊......
四、面试
第一轮挂掉之后不甘心,又在牛客上找了一个淘系部门的直推。第一天按照指定邮箱投递过去,第二天就接到电话面试。
这一轮是HR打来,声音很温柔的小姐姐。先是问了一下基本情况:学校,成绩排名,论文,哪里人等等,然后聊了聊简历上的内容。最后HR居然给我出了一道业务题,让我谈谈我的解决方案,题目大致是怎么在现有的基础上优化搜索。最后HR说,她听不懂,就只想看看我解决问题的思维方式。这时我内心OS:阿里,不愧是你呀......
第二天通知面试通过,准备下一场。
五、面试
还是常规的自我介绍,然后介绍项目,随后面试官开始深挖项目。对项目里面用到的技术问得很深,会让你说明为什么要这样做,这样做准确率具体能提升多少。
问了一些深度学习的知识,印象深的问题如下:
1、为什么神经网络的权重参数不能初始化为0
2、为什么线性回归和逻辑回归的权重参数可以初始化为0
3、把神经网络的前向、反向传播、梯度下降大致描述一下。
算法题:给一个二叉树,返回节点值的锯齿状层次遍历。
这面算法题难度不大,用广度优先搜索写出来了。过了几天通知面试通过。
六、面试
这轮应该是leader面,后面问HR说是个P9的大佬...
还是常规的自我介绍,再介绍项目。项目介绍完之后,面试官说不是很关心项目,主要是看候选人的思维发散和解决问题能力,于是上来就给了一个实际业务题。
某宝里面有一些不遵守规则的用户,可能会发布一些虚假的链接或者色情的链接,怎么样高效的把它们检测出来,说下思路和具体方法实现。如果用户数据很大,比如上亿级别,应该怎么处理。
这个问题和面试官讨论了接近40分钟,从最开始的数据处理,到后面模型训练,提升,优化。最后面试官说这轮可以了,不考算法题了。过了几天通知面试通过,HR小姐姐还发微信说好好准备下一轮。
七、面试
这轮是其他部门的leader交叉面,大概面了1个小时,这轮主要是考察的对技术前沿方向的把握。上来还是先自我介绍,让我在简历上挑一个项目讲。让我讲清楚项目用到的技术,有什么突出或者领先的。
然后问我最近的nlp技术发展是怎么样的,如果现在不考虑其他限制,让我选一个nlp的方向,我会选哪个,为什么。
再后面就是问了下觉得笔试题难吗,谈一谈对所投部门的看法,以及对以后自己技术成长上有什么希望。这一轮对前沿技术和部门发展讨论的比较多,也没有写代码题。
接下来就是漫长的等待过程,大概过了一周多,一个部门的师兄加我,说面试通过,让我等着offer审批就行。然后又过了一周多,等来了意向书。
总结
总的来说,阿里的难度较大,面试官都很有阿里的风格,不会局限于一些表面的问题解决,面试官希望你能答出更深层次的原因和解决方案。
记得在第二轮第三面反问环节中,面试官说现在并不缺普通的算法工程师,希望能招到一些真正解决技术痛点的人才。所以大家以后投阿里,可以多往这方面准备,有针对性的准备才能有满意的收货。
听说转发、点赞的人都能收获满意的offer,你的点赞,转发是小哇创作最大的动力,我们下期再见。
(你好,我是小哇同学,是一名算法工程师,学历背景为双985,曾获国家奖学金。在2020年秋招中收获了一些互联网大厂的offer,包括:BAT,字节跳动,拼多多等,多数为ssp。我曾参加过一些知名公司举办的全国人工智能算法大赛,多次取得top1%的成绩。我会在gzh:【小哇同学】,分享计算机领域学习干货,互联网内推名额,大学、读研规划)