2018秋招总结


秋招终于结束了,趁着还有些记忆写下这篇面经,希望对学弟学妹有所帮助。

首先先介绍一下个人背景,任何面试总结脱离了作者的背景都可能误导读者。本人本科期间参加了一年多(从入HDU校队开始算)ACM/ICPC比赛,最好成绩是区域赛银牌。硕士在浙江大学体系结构实验室,主要研究linux内核和虚拟化相关的东西。

然后列一下我主要投的公司和offer情况。我投递的公司不多,如下:

(注:sp=special 不确定是否是special offer的我都标了offer,其中的创业公司都是sp offer

需要注意的一点是,因为一些原因,本文不打算详细叙述面试过程中的具体题目。

1.微信:

微信是我最早拿到的一个offer,因为是实习转正。实习面试分3轮,2轮技术面+1轮hr面。第一面技术面之前会给30分钟做4/5道算法题,写在一张A4纸上,题目比较简单。然后开始和面试官唠嗑,第一面基本上是我在讲简历上的项目,印象中没提什么问题。第二面问了一些操作系统和算法的基础知识,不难。然后开始了在广州的实习,这次实习对我帮助很大,我感觉学到很多东西。

实习是在基础消息组,实际实习时间1个月,完成了一个c++内存泄露检测工具,由于业务需求,所以检测泄漏的时候用了一种比较创新的方法,特别是针对协程做了优化。当然这里面有同事们的帮助。由于实习面试、实习表现以及后续转正面试成绩很不错,进入了技术类实习生前两名,所以有幸参加了技术大咖的面试,不过遗憾的是面试挂掉了。

总的来说,微信的经历对我培养在强压力下工作的能力很有帮助,由于入职较晚,离考核只有一个月时间(最开始通知是三个星期),所以基本上那一个月非常忙。不过令人欣慰的是最后写出来的工具确实发挥了作用,检测出一些微信业务代码中的陈年内存泄露。特别是检测出了gperftools中的一个bug,可惜新版本已经fix了。

微信的用户量很大,但其实开发团队相对来说很小,所以很多地方有点像创业公司。招聘门槛也比较高,基本上从我了解到的信息来说,腾讯内部转岗都很难进。待遇上来讲挺不错,推荐大家前往。

2.Hulu Beijing

Hulu也是实习转正,不过是去年G20的时候去实习的。

实习面试:实习面试分三面,因为我在杭州,所以都是电面。每一面都是算法题。

转正面试:Hulu的转正面试是需要先提名的,一般来讲由你实习时候的manager发起提名。面试分3轮,因为人在杭州所以也是skype面试。2轮技术面+1轮boss面。2轮技术面都是算法,在线做题题目不难。

总体感觉,一般如果你申请的是SDE,那么面试是在一个共享文档上写代码,感觉我遇到的题都不难,题目比较注重基本功的考察。但是也有同学遇到比较难的题,这个应该和面试官有关,但是总体而言Hulu目前的面试难度没有五六年之前传说级那么难了。

总结:Hulu是家很不错的公司,技术实力很强。这一点从北京研发中心的员工构成可窥一斑,你身边会有大量清北的同事,甚至是姚班的大神。交流起来会比较顺畅。

3.阿里巴巴

阿里我投的是阿里云,让以前在阿里实习时的同事内推了一下。面试(我记得)分为4面,3轮技术+1轮hr。第一面面试问了我实验室的项目,然后一些系统方面的基础知识。最后写了一道基础的编程题。二面问了我除了内存相关的东西,对linux内核还有哪些了解之类的问题,由于对内核其他方面不是很了解,答的比较尴尬。最后问了OS中的一个基础题,我没答好。三面是交叉面,面试官好像是阿里云数据库团队的。具体问了啥已经忘了基本上是问各方面的基础知识。由于数据库我不是很懂,聊不起来。

总结:总的感觉是阿里云很重视你的既有经验,特别是在某个领域的深度,面试过程中很看重基本功,编程方面基本没问,可能是因为我简历上写了acm经历的缘故。阿里云现在还是比较缺人的,因为这几年发展的很好。我投的是内核团队也就是早前的淘宝内核组。面试通过后,会认真和你交流,实际选组比较自由,当我表达对分布式有兴趣之后,也让块存储的同事和我交流了,总之会比较尊重你的选择。

4.网易游戏

网易游戏让实验室学长内推了一下,由于在hihocoder上做了几场offer收割赛成绩不错,所以免去了在线笔试。onsite面试在网易杭州园区,分为30分钟的白板(纸上)写题+2轮面试。白板写题部分我遇到的是实现LRU Cache,我是用unordered_map+双向链表来做的,leetcode上有原题。然后是面试,面试时间很长,问了很多东西,首先是LRU Cache这题,review代码之后问我用单链表怎么做,然后还有OS、network、database、data structure/algorithm方面的一些基础。问了最长公共子序列,秒杀,面试官也笑了,觉得这题不该问。。还有一题是给出一个结构体的定义,现在已知指向该结构体的一个实例中的一个成员的指针,求出该实例的起始内存地址。其实这是linux内核中的链表经常用的一个技巧,对应的宏叫container_of,但是面试时候一直没想起来是怎么做的,后来发现关键点是把常数强转为指向结构体的指针,这样就可以知道给出的成员与结构体起始位置的偏移量。另外还有一题是告诉你地图上有很多怪物和玩家,用二维坐标表示,怪物和玩家都是运动的,当玩家距离怪物距离R以内时会察觉并攻击,问怎么维护这个关系。这题没答好。二面没有具体考察,主要是问我在微信的项目,对实习过的各个公司的看法等等问题。

总结:如果喜欢玩游戏做游戏,去这家不会有错。

5.依图科技

依图是一家人工智能领域的创业公司,第一次听说是去年CAD一位学长去面试了,和我说很不错,后来一位本科同学也跳槽去了,问了下感觉不错就去面了。我投了算法工程师和后台开发两个岗位,其实我并不懂机器学习,但是当时有转机器学习的想法。

依图面试

面试分为4轮,3轮技术面+1轮大佬面。第一轮是算法面,个人感觉这轮面试是我整个秋招过程中面试难度最大的两轮面试之一,另一轮是微软的第一面。当然题目仍然是leetcode水平,并没有真的很难。第二轮有点忘了,只记得问了道非常有意思的智力题,回答的不错。第三轮没问算法,问了system design:如何设计一个微博系统,用户10亿,DAU 1亿。听完有点懵,以前没想过这些问题。这一面答的不好。基本是是在提示下一点点前进。这一轮收获很大,以前从没考虑过这种问题。这样一个系统,需要哪些功能,QPS怎么假设,数据表怎么设计,需要多少台服务器,业务需要多少台,存储需要多少台,每台配置如何,何种外存,ssd还是机械盘,机械盘转速多少,怎么算出具体iops,容灾怎么做,网络瓶颈等等,非常具体。

总结:依图现在发展很好,而且薪水给的心服口服。

6.拼多多

同学面完后向hr推荐了我,听HR介绍了之后感觉公司不错就投了简历。

笔试题很不错,不是都很简单那种。其中有一道是机器人扫地的题目,让人感觉耳目一新。

onsite分两轮,第一轮面试官尝试问了我一些网络方面的问题,因为我这块不熟,所以一直尬聊。最后做了一道dp题,回答的比较好

总结:

7.google

参加了kickstart笔试,onsite是在上海。第一轮比较顺利,第二轮时候沟通有点问题,面试官在回答我clearify的问题时给了错误的条件。

总结:google题不难但是一定要注意理解题意,做题前和面试官沟通清楚。如果面试官自己也搞错了,那就没办法了。google今年似乎只提供了北京和上海的岗位,无法申请海外岗。

8.facebook

找了学长内推但是联系我的是facebook London的hr说可以提供伦敦那边的机会,很可惜电面挂了。面试题是leetcode难度,但是第二题题目理解错了,写完之后又重写,最后时间不够了。

总结:fb的hr做事非常高效。面试前发了很多相关资料,回邮件也非常快。面试的时候我是边说边写代码的,感觉其实是有难度的,因为很多时候头脑中有一个中文转英文的过程会打断思考。现在我的看法是先说完思路,写代码的时候就不要解释了,写完之后再对必要之处进行解释从我的经历来推测今年fb可能是不会为处于美国之外的外国候选者(应届毕业生)sponsor H1B。目前H1B政策前景不明的情况下,没有美国学位的候选人劣势很大。如果真想去这家,还是去美国读个研吧。

9.微软西雅图

这是我今年秋招的最后一个面试。最后也选择了这个offer。

由于google和facebook纷纷挂掉导致心情很差。痛定思痛,我打算好好复习准备微软的面试。于是开始刷leetcode的median题,我发现对于acm选手来说,hard题并不算难,因为很多都是acm竞赛中的一些套路。反而一些median题思路清奇,万一遇到又没做过的话临场很难想到最优解。于是面试前几个星期,我认真刷了array、linkedlist、tree、string等几个专题。并且复习了以前打比赛时候的一些算法,比如莫队分块、BIT、线段树、manacher、最小表示法等比较简单好写又非常实用的算法。然而这些都没有什么卵用。事实证明,好好刷leetcode就好了。

微软面试是在上海,面试分4面,都是英文面。算法部分不是很难。但是设计题感觉没答好。不过最后还是拿到了offer。由于签了NDA,具体题目就不透露了。

总结:据我目前信息来看,MS是今年唯一一家为中国大陆应届毕业生提供美国岗位的公司,可以说是良心企业在中国大陆招收的人很少,个人估计在20人以内。

10.Jane Street Capital

JSC不是我接触的第一家金融类公司,我记得去年去上海面试过JP Morgen的quant岗(实习),话说JPMorgen的面试非常有意思,面了整整一天并且全是英文面,到最后真的够呛。话说回来,JSC是美国一家对冲基金,在NYC、HK、London都有office。最早知道这家公司是因为浙大以前有个大牛叫崔天翼——也就是网络上背包九讲的作者DD(据说是他高中时候写的。。)拒了google的offer去了这家公司。后来姚班的刘佳倩在blog中也提到了这家公司。据说JSC的bar非常高,而且hack氛围很好而且薪水逆天。抱着试一试万一成功了岂不是很爽重在参与的心态我在官网投递了简历。我投的是软件开发岗,一星期后hr打电话来聊了5分钟,询问了一些背景情况,说如果有匹配的岗位会发起面试。几天后发来拒信。。。

总结:这家的软件开发岗位招的人极少,我感觉有些年份是不招人的,并且候选人的各方面要求都非常高,可以说是精英主义了。而且据说会OCaml并不会为你加分,实际上对方不在乎你会什么,有哪些技能等,而是看重你的聪明程度这个公司的信息较少,相关的面经可以看:

http://blog.sina.com.cn/s/blog_52f526870102wkca.html

http://blog.sina.com.cn/s/blog_72f8a5d00102w6p3.html

11,其他还投递了一些公司,比如今日头条,但是面试流程太诡异了。很早就让同学内推了,但是一直没任何消息。结果过了一个月hr和我说在人才库中看到了我的简历也就是说我简历挂了然后又内推了一次。之后头条到浙大宣讲,当场笔试。做完又没消息了。当时hr说只要以前内推过的就可以不需要当场再投简历我就没投。但是当场投的好像去面试了。。后来11月多了终于联系我面试。。因为已经决定去微软了,于是拒了面试。

总的来讲,找工作不仅是看实力,运气也很重要,但是实力是前提。人总有发挥不好的时候,但机会只有一次,所以better safe than sorry,准备越充足越好。很多学弟学妹咨询我赴美工作相关的问题,有些问题我自己也没有答案,所以很难给出令人信服的解答。但是一些方向性和操作性的问题我还是有点经验的,欢迎与我交流。

        另一方面,从目前的形势上来说,国内在一些方面是领先美国的,而且现在国内的待遇也上来了(很多创业公司开出了很高的offer,和美国那边差距在缩小。所以出国并不一定就好,关键是要找到适合自己的道路。就到这里吧,以后有机会可以再聊聊我的一些实习经历。

        btw,最近在做区块链,主要是智能合约相关的研究。有兴趣有时间的同学可以一起交流。