感谢拼多多,算法菜狗的第一个实习oc(内附面经,持续更新)
菜狗终于接到了第一个offer call,感谢拼多多,整个流程下来拼多多给我的面试体验是极佳的,在流程安排上也非常高效,除了对实习生一视同仁的11116工作制以外,对我而言真是无可挑剔了
其他几家的面经持续更新,不过由于本人之前没有完整记录每场面试的习惯(比较后悔这点,之后需要养成),会比较模糊(而且说实话招聘季到了现在这个时候面试官到底具体问了哪些东西已经不重要了...)
只有以下几点感想,虽然算是马后炮,但还是希望能对每一个看到的,还在继续或者之后会进行面试的人有帮助:
1. 趁早,趁早,趁早。一定要趁早,无论是投递还是准备,时间是每个人都能轻松拥有的、无比重要但很多人却错过了的资源。思前想后,我最大的遗憾就是在三月才开始关注实习生招聘,下旬才开始进行投递,错过了太多机会了。
2. 对你的项目(论文)了如指掌。至少对算法岗而言,除了顶会大佬和竞赛大佬,每一个有一定项目数量的同学,在学校档次差不多的情况下实际上简历的份量可能都没有太大差距。个人的经历是,大多数面试都有一半以上的时间花费在项目介绍上,如果你能够把你的项目讲得生动、深入浅出,想必就是极好的一块面试基本盘。不少企业面试的时候允许进行文件演示,可以考虑为你的项目制作一份介绍ppt,以技术细节为主,或者准备一份项目技术笔记当作小抄。
3. 剑指offer的68道题,至少我遇到的大部分手撕算法环节都没有跳出这本书的范畴。至少把其中的每道题的思路都掌握是十分必要的,其中提到的一些手撕算法环节和面试官的互动技巧也非常有用。
4. 练级。我的第二次面试和第二次笔试发挥和第一次都是天壤之别(这也导致我的T和A的面试黄了一大半),适当地多投,先从一些小厂开始面起,都是极有好处的,面试和笔试都是非常有效的练级时间,唯一浪费的可能就是填简历的那二十分钟吧。
先更这些,这几天继续...
1. 拼多多 算法实习生
4.10 笔试,1 + 0.95 + 0.5 + 1
三次技术面+一次hr面
一面:4.18,1h
一面问题以机器学习算法为主,带有一些开放性质,还记得的包括如何处理样本不均衡问题(数据增强、过采样、负采样等等),模型评估标准(RUC和AOC曲线,不过这里我讲得不够直观清楚),等等。手撕了二十分钟的项目,接着问了一些基本的数据结构(本科非计算机科班,这块没有非常系统地学过,hash表是答错一次之后在面试官的引导下回答正确的)。总的来说拼多多的面试官无论你答不答得上来都会始终引导你的回答,会比较关注基础知识。
下午收到二面通知,本来约当晚六点二面(还是八点来着?),但因为面试官临时没空而改约到了22号晚
二面:4.22,1h
首先详细介绍了几个项目(似乎占了三十几分钟),之后是一道手撕代码,假设一个字符串中除了一个字符外每个字符都连续出现正好两次,找出那个字符(例如aabbcdd,accbbdd等)。先写了一遍O(N)的解法,然后在面试官的引导下想到了O(logN)的解法(二分查找,注意可以根据当前字符的前/后位置是否重复以及位置的奇偶性判断下一次查找的方向)。映像中也问了一些关于机器学习算法的问题,但并不困难。面试官非常热情,在反问环节中详细介绍了他组里的主要工作业务。总的来说可能是由于这一轮面试官对项目比较感兴趣,个人讲解的状态也比较良好,是比较顺利的一轮。
三面:4.29,45min
面试官集中询问了一些基础知识,包括大端小端等问题,似乎打算由此出发询问一些计算机网络相关的问题但我实在是不会(偏科)而作罢。看我研究生阶段一直在外做项目,问我如何学习,答曰网课和看论文。通过一个项目说明如何通过这种学习方式去解决一个实际问题。之后是一些比较简单的机器学习问题。手撕代码阶段,问题是寻找一颗树中两个节点的最深公共父节点。比较紧张,最后磨蹭了大概十分钟之后实现了一种从根节点进行BFS找到两个目标节点之后比较路径的解法。反问阶段,面试官说计算机网络之类的基础知识的缺失虽然对算法岗的实际工作来说可能没有太大影响,但之后若要成为leader更进一步那就势必要具有更深的技术栈。总的来说,不太顺利的一轮,但收获也很大。
hr面:5.6
能不能接受拼多多的11116,对之前在项目中去过的公司文化有何看法,blabla,聊得还挺开心的
总的来说,拼多多的面试比较关注基础知识和项目,看得出来偏重实用。面试官都非常Nice,很有耐心且循循善诱,唯一的遗憾是pdd自建的面试平台确实不咋地。
2. 阿里
面试阿里的历程比较坎坷,当时还有些拖延心理,3.27完成投递,4.8参加笔试,下手晚可能导致错失了不少机会
4.8 笔试 0+0.3
这是春招找实习第一次参加的笔试,再加上当时还是挺想去阿里的,十分紧张,第二道题尽管想好思路但优化做得不足只通过了30%,接下来回头去做第一道题,结果不小心点了提交,剩下二十分钟干瞪眼
(不过当时想了半天第一道题也没做出来,其实还是挺简单的一道题,不用想得过于复杂)
4.15 一面
4.13和面试官约的一面时间。一面大概持续了30分钟左右,基本上一直在谈项目,加上对项目中用到的一些模型的理解。毕竟阿里的面试大多是电话面试,不借助其他方式很难进行手撕算法环节
当天下午接到了二面面试官的电话,约在周五下午进行二面
4.17 二面
持续40分钟左右,形式几乎和一面完全一样。这一轮的面试官显得更有热情,围绕项目和比赛中所用的模型提了不少有趣的问题。之后反问环节中非常详细地介绍了他所做的工作和工作中的主要挑战。
4.23 三面(挂)
突然袭击的电话面试,持续了二十分钟左右。当时没有问面试官的具体职位,想来那可能是一次leader面(毕竟如果是交叉面那大概是不会挂人的555)。这一轮面试的问题显得较为开放,包括自己正在做的研究课题、毕业论文的方向,对bert、ernie等预训练模型的简单阐述、作为一个本科物理的计算机研究生对自己的优势和劣势如何看待(答曰计算机基础知识有所欠缺,数学sense尚可)等等。在最后的反问环节中,面试官肯定了我对自己的看法(基础确实8得行),并指出之前的回答中有些错误之处,日后还需不断努力提升。实际上当时我的自我感觉尚可,没有意识到只持续20分钟的面试可能是一个危险的信号。五一假期之后正式得知自己三面挂了orz
5.7 转部门一面(也可能算三面?)
非常奇特的的一轮,首先问了有啥其他offer不,之后具体深挖了一些项目中的模型,并需要把它们和搜索推荐系统中的实际部署联系起来,但我之前对于搜索推荐只是略有接触,答得并不好。奇葩的是这一轮面试留了不少作业(可能是因为我笔试做得很差而布置的),手写的数学题+阅读笔记,不过做下来还是挺有收获的。至今尚无后续。
总的来说,面试阿里转BU十分自由,只要对方BU有意向和HC再进行操作即可。但阿里的流程容易拖得很长,因为leader面、交叉面和hr面安排起来可能都比较费时,而且hr面之后挂人的概率也不低,因此如果想要多几次机会的话要趁早。如果面试官对你的项目感兴趣那很可能会围绕项目发问,否则就看个人喜好了,个人感觉阿里的面试官水平都十分扎实。
美团 nlp研发工程师实习生
投得比较晚加上人比较菜,面试了两轮之后在池子里泡了快一个月,昨天才被捞出来发了offer
可惜和pdd的时间冲突(而且已经签了),感觉走两边可行性比较低,那估计还是选pdd了,虽然美团的技术方向还是挺感兴趣的。如果pdd干不动的话,希望有缘秋招再续。
4.16 笔试 5题,2AC+0.5+0.5(好像)
其中前4题都挺简单的,但没能通过所有的case。第五题有一些难度,第一时间没有明确思路索性放弃。