百度实习生面试总结

October 10, 2016

原计划本学期赴日交流,因毛概课学分不能转换,而我之前又推掉了这学期的所有事情,因此数模国赛之后开始正式找实习。

昨天正式收到百度实习生 offer,移动应用部推荐算法实习生。总结一下这几次面试,供一些同学参考。

我投了百度的两三个部门吧,为了防止混乱一个部门面试你时其他部门不能面,所以我这次拖了比较久。

我投的都是机器学习相关的职位,虽然现在很多人不看好百度,但在 AI 时代,百度是中国最有力的竞争者(可以关注下百度无人车、Andrew Ng、百度大脑、百度凡尔纳计划、IDL、百度开源的深度学习框架 PaddlePaddle 和硬件基准 DeepBench 等),这也是我只投了百度的原因。

百度糯米

HR

学长内推,HR 打了一个电话聊一聊简历,然后觉得可以说给她上司看看,之后一直没联系我,却忘记解锁我了,导致后来系统部安排面试后发现还被糯米锁着,然后系统部面试官出差……很遗憾这两个部门最后一直没面上。

最近糯米要被卖给新美大这个问题传的比较凶,也是一个考虑因素。

首页业务部

第一个正式面试是来自首页业务部,另一个学长给我发的 jd,我觉得可以先面试看看。

一面

  • 自我介绍
  • 聊项目:主要是了解这些项目是做什么的,你在里面是什么角色,团队情况等等
  • 找到数组中出现次数为奇数的那个数,其他数出现次数为偶数:位运算异或,空间复杂度 O(1)。
  • 楼梯有 n 阶,每次可以上 1 个台阶或 2 个台阶,问多少种走法:斐波那契数列。我给的方法是 DFS。
  • 我简历里写掌握四种编程语言,问四种编程语言的区别,然后根据你的回答再问,比如说问我为什么 Java 比 C++慢
  • 我简历里提到了 socket,问socket 的原理(就是介绍下 socket 相关知识,具体怎么问的忘了)
  • SQL 中 group by 内部怎么实现的,如果自己实现会如何实现
  • 多个文件同时找到出现次数最多的信息:这题聊半天我也没太懂是什么意思,应该是实际业务中的问题。我提出可以用 MapReduce,面试官说不用 MR 想怎么实现,我说聚类吧,同时访问次数最多的 IP 之间应该会有相同的特征(实在不懂这题的意思)。
  • 比较百度和竞品(如今日头条)的推荐效果的标准(最简单是比较点击量):这是发散题目,网上有很多专业讨论,我提出了 2 小时内访问量、时事热点推荐、地区推荐、根据百度账号信息可以获得更多特征等的答案。
  • 说出你觉得个性化推荐效果好的产品
  • 说出你觉得百度最好和最烂的产品
  • “你还有什么问题吗”

我最后问了一下他们部门具体的工作内容,实际上是开发一个数据平台,处理大数据,并不涉及到机器学习的算法,这和我的预期不符。

多说几句,我比较重视工作内容,在准备实习前老师说可以推荐 IBM 研究院,但是是主机相关的职位,然而我并不感兴趣,有的同学为了刷经验可能会选择名气大的企业。如果不是喜欢的工作内容的话,就算是 Google 我也不会去……

然后我联系了 HR,要求解锁,因为还要面试其他部门(当时十一前,时间很紧),HR 问了下我期望的工作内容,之后推荐了手机百度,因为经理第二天要休假,所以当晚直接三面。

移动应用部

三面

  • 自我介绍
  • 为什么选择百度:之后跟我聊了一些深度学习的局限性,这些问题我之前确实没考虑过,介绍了一些业务。
  • 聊项目:主要还是介绍项目的内容,你在其中的工作,项目的规模。
  • 在线写代码——二分
  • 在线写代码——实现一个栈,插入删除取最大值都要求 O(1)

三面面试官还是以聊天为主,会跟你讨论一些东西,看似闲聊实际上观察你的语言表达能力,思维深度,技术视野等方面。

一面

  • 在线写代码——归并排序
  • 聊项目
  • 聊机器学习:讨论了下 LR 和 RF,还有现在做的一些数据挖掘比赛的情况,包括特征工程等方面
  • 求两个有序数组的中位数:这也是网上有的题,不过我并没做过,在面试官的不断提示下给出了三种解法(时间复杂度递优)。

二面

二面谈人生……没聊技术

  • 自我介绍
  • 每天的时间安排
  • 项目都是几个人的,怎么分工的,怎么开始的,怎么结束的
  • 你队友怎么评价你
  • 介绍微软俱乐部/微软夏令营
  • 人生规划

我提取一下二面面试官的考察重点:

  • 团队合作能力
  • 沟通能力:主要是团队间的沟通或分工安排
  • 领导能力:社团人数规模、办过的活动、怎么组织起来的

这里多说一句,我负责的是和 MSRA 合作的微软俱乐部,所以才往简历上写,其他社团不建议写上简历。

总结

除了花的时间比较久以外,第一次找实习的经历还算顺利,总结一些经验吧:

  • 计算机基础知识很重要:我之前看章博亨学长(跟我面的职位差不多)写的博客问了很多 ML 相关知识,所以一直在准备 ML 算法,只在 LeetCode 上刷了几道简单的题(当然我是 ACM 出身 =。=)结果考察 ML 相关知识比较少,主要是数据结构、算法、计网、操作系统、数据库、设计模式、面向对象等基础知识,这点我比较意外,我以为会一直问 ML 的算法……
  • 项目要理解清楚并且能说清楚:第二个比较意外的地方是,我下面写了一些比赛的获奖情况,所有面试官都没有问这些比赛是做什么的,你怎么实现的等情况(当然并不意味着获奖不重要,如果没有这些证书可能简历都过不了)。面试官都是在围绕项目问问题,自己一定要能说明白(你在项目的作用,遇到了哪些问题,怎么解决的,项目成果等)。
  • 沟通能力、语言表达能力、组织领导能力等软技能很重要:“企业内部业务是需要多部门合作的,每天的沟通会占据很多时间,你这些项目都太小了,团队就几个人”(from 三面面试官)。具体内容参考二面面试官的问题。
  • 要有引导面试官的能力:这个属于面试技巧了,突然出来一个不会的问题,要有往自己会的方向上引导的能力,多说自己会的并且不要有太大偏差,这叫“带节奏”。当然像三面经理这种老人是不会被你带节奏的,而且也不是每人都有带节奏的能力……

对了,最后说一点,我现在是大三在实习,因为我手里已经有了保研名额,选择比较多,并且最近没什么安排,成绩不挂科就行所以才会选择实习。每个人都有最适合提升自己的路,要做最有利于提升自己的决定。


Profile picture

Written by Armin Li , a venture capitalist. [Weibo] [Subscribe]