来自:牛客网,作者:Mordecai
链接:https://www.nowcoder.com/discuss/52516
春招和秋招面了不少公司,已经正式上班,这里做个总结。实习offer有网易互娱,今日头条,Hulu,最终选了Hulu。
校招拿到offer的有微软美国,Hulu,Amazon,Freewheel,pony.ai,依图,商汤,网易游戏,腾讯,网易有道,完美世界,滴滴,百度,搜狗,宜信大数据,美团点评,搜狐,华为,基本都是SP。
1、实习
先从上半年找实习开始说起吧,因为实习的重要性大家都很清楚,如果特别想去这家公司,去实习是最稳妥的,而且最后的sp offer大部分都是给实习生,所以有的公司实习面试反而更难一些。我因为实验室不放实习的原因,所以投得很晚,有些同学已经开始实习的时候我才开始投,当时的目标是外企(比如Google,Hulu,微软)和国内一些很看重算法(这里说的算法是ACM算法,不是AI的算法)的公司(比如网易游戏,今日头条),那些面试喜欢问语言特性,操作系统,计算机网络等等的公司一个都没投,(这是个人偏好问题,并不是怕被问到这些,也不是说这些知识不重要,而是觉得面试全问这些问题很boring,一轮面试短短一个小时,我觉得只问这些东西真的看不出一个candidate的水平,特别是潜力,个人看法而已)。
所有事开头总是难的,3月初面Google北京,关于Google北京听过很多人的看法,有说非常难不是ACM金牌基本过不了的,有说只要够聪明刷一个月的题就轻松过的,也有说Google北京很无聊都是非常边缘的项目学不了啥的,我当时也没想太多,断断续续刷了两个月的题,也没啥信心,就当体验下,电面还算顺利,onsite两道题第二道没想出最优解直接打出gg进了waiting list,第一次面试就早早得结束了。
后面春招开始,一边忙实验室的事一边抽时间准备,算法水平也逐渐提高了一些,开始在一些oj上试试比赛,cf,tc,lc,hr等等都有练,见的题多了,一些套路模板题也能一眼看出来了,不过也渐渐发现跟那些高中开始搞OI的ACM Final大神比起来还是差不少,不过确实时间有限,就拿着练了几个月的半吊子水平开始了笔试面试,当时比较想去的国内公司就两家,网易游戏和今日头条(个人比较看重公司的门槛,面试的难度或多或少说明了以后同事的水平),所以看了很多这两家往年的笔试题和面经,算是准备的比较充分,这两家的笔试难度差不多,基本都是一或两道水题加一道偏难的题,过得还算轻松,面试的话网易游戏就一面,会问一些基础题,夹杂一两道算法题,不过都不难,最后拿到了offer。头条一共三面,前两面都是项目和基础知识,面完两面有点失望,感觉跟听说的不太一样,结果到了第三面写了一道很有意思的并查集+dp的题,跟面试官也聊得很开心,最后给的offer就是第三面面试官所在的组,应该是后台开发吧。
当时基本就确定从这两家中选一家去实习了,到了5月中旬我的一个去Hulu实习的好朋友内推我去面试,我就抱着试试看的心态去了,因为之前Google面得不好所以去面难度相当的Hulu也是不报啥希望的,不过因为当时手里有了满意的offer,心态就很放松了,就当是去跟高手切磋下。Hulu一共三面,第一轮电面就遇到了迄今为止认识的人里最厉害的ACM大神(后来成了同事),不过幸好题不是特别难,手写一道加口述思路一道,还算顺利得过了。后面两轮onsite,第一轮题还算常规,不过要现场跑通所有case,幸好最后把代码调通了,第二轮先简单聊了聊项目,然后口述了一道题的思路,最后手写了一道题,当时真的是灵感突现,一下子想到了最优解,不过代码写得比较慢,还出了几次bug,最后超时写完了,面完大脑都转不动了,不过还是比较开心的,至少题都做出来了,聊得也顺利,等了一个周末给了offer。最后选择去Hulu实习,也是综合了很多方面的因素考虑的,个人还是比较倾向外企的工作环境和氛围。
2、校招
下面开始是校招阶段,按照国内外公司和是否是创业公司来分,其中一些想法也仅仅是个人观点,仅供参考。
2.1 外企
Hulu(offer)
Hulu是我实习的公司,拿到了return offer,package非常有诚意,确实不愧是互联网含金量最高的offer,没有参加校招(不过听说校招的笔试最后一题考到了最小割,表示最大流的题迄今为止就写过一道T_T),所以给不了校招的经验,不过可以说下Hulu的实习体验。
首先跟之前听说的一样,非常正宗的外企工作环境,零加班,自由时间,最前沿的技术,很规范的工程管理,很nice的技术分享氛围,牛人非常多(有些是业界知名度很高的大佬),不过除了这些,我觉得Hulu最让我感动的是里面的mentor制度(我知道有些公司的mentor制度其实只是摆设,特别是对实习生),至少我在Hulu的mentor教会了我很多东西,不仅仅是技术,还有一些个人发展的看法,而且身边的同事真正让我体会到了跟聪明人一起工作是多么幸福的事,后面有时间再专门写一篇详细说下。
Google(已跪)
Google中国其实也没啥好说的。。除了在那实习的走实习转正流程,其他不管是不是内推的先过CodeJam(现在叫Kickstart)再说,我参加的是7月份那场,题比较难,名次不高,不过还是过了,然而先收到了笔试通过的邮件,还啥都没面就收到了HR发的据信,上来直接就Thank you for interviewing了,后来才知道之前实习面跪了会影响校招,大概是有冷冻期之类的,还让我无需参加后面的笔试了T_T。
我就没再管,也没参加8月份的那场Kickstart,不过后来又收到了安排电面的邮件,应该是第一轮的备胎批吧,早知道就应该参加8月份那场了,题比7月份那场简单不少,如果名次好的话就可以到第二轮的优先批了。目前面完了电面,是三番那边的中国人面的,面试体验比较差,首先是听不清,其次是面试官零交流,题很水,写完代码强行让优化了一波(其实就是考虑下特殊case),目前还没收到反馈邮件,应该是跪了。
最后,如果你真的特别想去Google,那就去美帝读个硕士开启easy模式吧:)
微软美国(offer)
微软从北京的工程院到最后美国西雅图岗位的面试,加起来一共面了9轮(:з」∠)
最一开始是由于之前找实习的时候在hihocoder上参加过几次编程挑战赛,名次还可以,7月份的时候收到了微软探星夏令营的邀请邮件,8月中旬进行的探星夏令营面试,算是微软的提前批吧。
面试一共5轮,2轮skype电面,3轮onsite,纯算法题,白板编程(有些人觉得白板写代码很蛋疼,不过我觉得白板写代码也有好处,就是不需要现场编译跑case,只要思路清晰,基本上都可以写出来)。
电面的题比较常规吧,属于那种不需要怎么想的基础算法题,是用notepad写,主要看白板写代码的基本功,写完面试官会看下,因为我写得比较快,所以两轮都留了不少时间跟面试官尬聊O.o
3轮onsite是在北京微软大厦,一个小厅等面试官来领人,第一轮是个非常热情的小哥,做题之前聊了很多学校实验室的生活和实习的事,一顿商业互吹,然后问了一些数据结构的用法和实现,比较easy吧,最后白纸上写了一道棋盘dp的题,也是很常见的题,一面就在愉快欢乐的气氛中结束了。第二面是个非常不热情的小哥,直接跳过了暖场环节开始怼题,先是一道LCA的变种题,然后是一道BST转有序双向链表,也算是比较常规的题,我看他好像不喜欢聊天,就切换成了严肃认真的神态写完了代码,然后看他一言不发检查完代码就结束了。第二面面完等了一个多小时通知去三面,就是部门主管面,面我的是做AI方向语音识别组的manager,先问我喜不喜欢搞AI,我当然说喜欢啊,然后拿着我的简历随便问了些项目,中间穿插了一道大数加减的水题,我以为后面没算法题已经准备笑嘻嘻地开始聊人生了,然而最后问我知道哪些高级数据结构或算法,我担心说一些常规的不够镇得住场面,就把我刷题遇到的和从ACM大佬那听到的都抖出来了,说完就后悔了,因为有些只是知道并没有写过,不过幸好manager问了个还算常见的线段树,让我实现下并说下优缺点和应用场景,我写完看他还算比较满意吧。
面完微软后我以为应该很快会出结果,然而等了好久,问了在里面实习的同学也说微软流程比较慢,就先不管了。后来收到邮件问想不想走美国招聘的流程,再后来收到了HR的电话,说我之前面得非常好,问我是选走中国的流程还是美国那边的,我选了美国,这样之前的面试成绩只能作为参考了,要等美国的面试重新面,这一等就等到了10月底。
美国的岗位是西雅图那边派工程师过来面的,一共四轮onsite coding面试,题目难度感觉不是特别大,不过对于口语不是很溜的我来说,如何跟面试官谈笑风生才是更伤脑筋的,而且10月底正好还有其他几家要面,所以并没有好好准备口语,只能匆忙上场,幸好题都做出来了,聊得也还算顺利,隔了一天发了offer。
Amazon(offer)
亚马逊就是乖乖走的校招流程了,没有内推,没有提前批。
先是9月5号参加了在线的笔试,在一个叫amcat的系统上,用过这个系统的同学应该都知道,体验很糟糕:(,不能切到本地写,这不算什么,关键是那个在线编辑器不好用,而且中途系统卡了有大半个小时直接啥都不能输入,不过幸好最后有惊无险三道题都AC了,一道约瑟夫环裸题,一道贪心,最后一道有点意思,是个图论里最大独立集的变体。
过了笔试一周后去参加了onsite,一共两轮。第一轮面试官很年轻,结合项目问了很多很详细的基础知识,幸好提前回顾了下项目,不然好多细节都忘了,然后黑板写题,一道把数字输入的钱转成中文读法的题,其实这题没啥难度,主要看实现,因为实现不好的话代码会非常繁琐,我一开始也没想到比较好的方法,就直接开写了,写着写着就知道哪里的逻辑可以优化,最后用了比较短的代码写完,还算比较顺利。第二面就是主管面了,可能主管看到了我上一轮面得比较好,就没问啥基础,主要问项目,并介绍了他的部门在做啥,这一面交流比较多,最后算是象征性地写了一道dp的水题结束。
Freewheel(offer)
Freewheel在8月份组织了一场open day,当天现场笔试,我由于在实习当天请不了假就没去,后面就没提前批了,全部要等到9月底参加笔试,他家的笔试虽然是在线的,但是以数理逻辑和数学问答题为主,没啥编程题,最后一道问答题是线性规划,用在线的编辑器写单纯形法打个表分分钟要崩溃(╯°□°)╯︵┻━┻。
两轮技术面试都是以项目和设计模式为主,其中二面会有一半时间是用英文交流,本来以为笔试挺难面试应该更难,然而面试官说看了我的笔试不需要问算法了,所以面试没啥有意思的问题,就不细说了。
Airbnb(已跪)
Airbnb入华时间并不长,目前office在望京那边,FTE很少,最近好像在大规模社招,国内的业务具体不清楚做得怎么样。我是走的提前批,不过联系得很晚,应该是提前批最后一批吧,当天除了我大概还有七八个人过去面试,三轮onsite的coding,需要现场写完代码,编译通过跑完case,需要三轮都通过才行,这里有个很看人品的地方,因为北京这边的工程师太少,所以面试需要三番那边的面试官过来,所以如果你的面试官是三番的,那么恭喜你,只要你系统刷过题,那么难度基本属于秒杀级别,如果是北京这边的,那么很可能遇到那种比较恶心的题,我就不幸在第一轮遇到了(╯▽╰),具体题目由于有保密协议不方便透露,解法倒不难想,不过写完代码corner case巨多,现场调bug一旦心烦气躁就很容易gg了,就算后两轮都是秒杀也还是跪了,不说了,都是泪╥﹏╥…
WAP(中断流程)
WAP是一家做ERP的日企,在上海有office,之前日元汇率比较高的时候给的还挺多的,最近两年不太清楚,这家挺神奇的,感觉一年四季都在校招,经常在朋友圈看到他家的宣讲海报,投了6月份的那批,笔试两道题,一道dp一道搜索,半个小时AK,难度中等偏低,后面发邮件说还有好几轮面试,好像还有短期实习啥的,好像很麻烦,正好那时候刚好开始实习了,就没去面试,直接中断流程了,果然最近他家又开始校招了( ̄. ̄)
Facebook(投不了)
FB在国内没office,之前有过三番那边直接来国内校招,不过那已经是三年前的事了,好像听说社招还在时不时得进行,反正找在那边的学长内推,并没有下文,意思大概是今年还是H1B只给社招那边,所以对他家有执念的大佬还是考虑去美帝多个研吧╮( ̄▽ ̄)╭
2.2 国内大公司
国内的公司面试不像外企那样以考察算法为主了,各家公司有各家的特色,我挑了几家印象比较深刻的写下。
首先,国内的公司我在投简历的阶段就比较头疼,因为要选岗位,之前投外企是不分岗位的,最多分个SDE和Researcher,而国内的公司各种分部门分岗位,前端,后端,算法,大数据,云计算等等,我真的考虑了好久到底投什么,最后还是没想好T_T,索性就根据各家特色投不同的岗位了。
以下公司按面试时间顺序排列。
今日头条(推荐算法岗,已跪)
由于之前拿到了头条的实习offer,头条的HR很早就打电话给我发了校招直通卡,让我参加8月中旬的提前批面试,我就从后台换成了AI部门的推荐组,过去面试发现人不是一般的多,直接在地下食堂排队叫号面,我以为我换岗要重新面三轮,然而第一轮面试官告诉我只有一轮,我还没来得及高兴,他就直接问我做了哪些推荐算法相关的工作,我一脸懵逼,只能说没做过,不过让我学可以很快学会,当时感觉到面试官顿时对我失去了兴趣,我说我算法基本功还可以,他想了想,然后问了我一道零碎链表重组的题,我想了会说可以转换成区间合并的问题用O(nlogn)解决,他愣了一会让我再想想,我不知道他想让我说啥,因为我觉得区间合并已经比较优了,暴力遍历还跟零碎链表的平均长度有关,他看我想不出来更优的就说可以遍历,我(O_o)??,感觉跟他不在一个频道上,后面的时间就是我们互相说服对方哪个方法更好,最后结果可想而知,怼面试官只有死路一条啦(^o^)/
搜狐(后台研发岗,offer)
搜狐也是面的比较早的,八月底就面完了,通过内推走的提前批,一次性面完两轮onsite技术面。
第一轮上来直接就是后台一个组的技术主管,不过好像工作时间不是很长,有点小意外,也是先商业互吹暖下场,我以为他会像其他大佬面那样结合项目经历问些哲学问题,那样虽然比较boring不过算是比较常规,然而他直接让我在黑板上做题,又让我意外了下,先是一道常规下雨盛水的题,大概是leetcode原题,思路很简单,就写了个stack的解法,然后一道二叉树翻转,也是几行解决,他看我写的比较快,就出了个代码量稍微大了点的搜索题,01矩阵,有一批0变1的操作,统计连续1的块数,我就用并查集撸了个,这时候写完三题我觉得差不多了,他应该也比较满意吧,就跟我随意聊起来了,我还是非常喜欢这个环节的,因为我觉得面试是个双方互相审视的过程,不过前提是让面试官先认可自己,所以我就问了他平时用的技术栈,问他是不是搞过ACM,他说只练过半年,不过平时也喜欢打打比赛,面试别人也只问算法,我觉得有共同话题了,就把刚刚他问我的第三题稍微变了下来问他,对01矩阵有0变1和1变0两种操作,实时统计连续1的块数,这是我在其他地方见到的,不过还没想到最优的解法,这就不能用并查集做了,而暴力搜索又太慢,离线的话好像也搞不了,他就跟我论了起来,讨论了大概10分钟,想到了一个搜索加cache剪枝的方法,两个人都比较认同,结束了第一轮面试,这也是我所有面试里唯一一次给面试官出题现场讨论的,所以映像很深刻。
第二面是另一个组的,算是交叉面吧,这一面就没啥特色了,非常标准的国内互联网式面试,先问简历,再问项目,再问基础知识,因为太没特色时间也过去很久了所以问题都忘得差不多啦,大概是以语言和网络为主吧。
宜信大数据(大数据研发岗,offer)
宜信也是找学长内推的,9月中旬面的,算是提前批吧,先是两轮onsite技术面,隔了一周再一轮大佬面。之前听说宜信面试很难,所以还是做了比较充分的准备。
第一轮的小哥并没有问出是哪个组的,做的东西好像跟前端有点关系,抓着我的简历一顿怼,什么都问,从实习经历,到项目,到点各种语言特性,到操作系统,到对各种前端开源框架的看法,而且问得都很细,细到差不多快把一个框架实现一遍了,感觉有点厉害,不过有个人愿意听我一顿巴拉巴拉聊技术还是挺爽的,我以异常快的语速说了大概50分钟,两人都挺满意的,他看时间不够,就随意让我口述了个杨氏矩阵找数的水题,结束了第一轮面试。
第二轮开始之前有个插曲,二面的面试官跟一面的面试官直接在门外讨论我的一面,可能他们不知道那个屋子的隔音效果不好,他们说的啥我都听到了 ⊙ˍ⊙,不过基本都是正面评价,我还是挺高兴的,其中听到不需要再问我基础知识,可以着重考察下coding,终于到了喜闻乐见的coding环节。
第二轮的面试官竟然是个看起来更年轻的小哥,也是上来先一顿商业互吹,接下来果然没有再问其他,直接给了个题目,一个矩形区域和无数个半径相同的圆(当然这是抽象建模之后说法,原题是他先说了一大堆应用场景),让我想个方法用尽可能少的圆去覆盖整个矩形,圆可以重叠,初看不像编程题,像计算几何的数学题,我想了会也没找到很好的方法,就在纸上画,然后就给了个从一个角开始以某种规则往外铺的方法,他好像还挺满意,我问他这是不是最优的,他没告诉我,让我回去再想想,说我的回答已经可以了。接着重头戏来了,题目变了下,一个二维区域里有很多大小不一的圆,可能有重叠,然后有一组点的坐标,让我返回每个点被哪些圆包含了,需要代码实现。我第一反应是离线,就脱口而出莫队算法,他有点惊讶我知道这个,笑了下让我再想想,我仔细想了下确实跟范围查询并无关系,就开始挠头回忆有没有看过类似的题,静下心想终于想到之前做过矩形重叠算面积的题,虽然跟这个不一样,但总感觉这种二维平面图形重叠的题有类似的地方,于是想到了扫描线,他还是挺满意的,后面就是各种细节实现了,把各种case都讨论了一遍,这一面超时了,不过面试官还是比较满意的,后面提问环节得知这是位Final大佬,他说一开始根本没指望我写出来,我(╯°□°)╯︵┻━┻,最后跟他聊了些ACM圈子的梗(大多都是从其他大佬那听来的),第二轮面试就结束了,这一面大概是我迄今为止难度排前几的一轮面试了。
第三轮是一周后的主管面,这一面就没啥技术问题了,以哲学问题和聊人生为主,问我为啥要做那么多项目,以后想做啥(我也不知道啊大佬ㄟ(▔,▔)ㄏ),其中他竟然对我之前写的一个玩具编译器感兴趣(这也是迄今为止第一次遇到对这方面感兴趣的面试官),他说他之前研究过LLVM(终于找到知音了大佬T^T),我们就聊了好久的PL,从编译器前端聊到后端虚拟机,再聊到Haskell和Ocaml,我几乎把我学过的看过的听PL大佬说过的东西都吹了一波,他表示赞同,不过给出建议是这些东西没多少学生愿意学了,两人哈哈大笑,总之是体验很好的一次主管面。
美团(前端岗,offer)
美团应该是我唯一一家面前端岗的公司(所以这里可以好好说下前端面试经验),在牛客上看到有帮内推的就随手投了,然而他家的内推还是得参加笔试,然后是三轮技术面,一轮HR面。
这里说下,国内公司不像外企,前后端分的很开,写前端的一般只写前端,不像外企大部分是没有专门的前端岗的,一般都是前后端都写的site组(有些直接叫vertical,加上移动端),所以一开始报前端岗的时候还有点担心,不太清楚国内前端面试问啥,万一被问到CSS布局啥的我就跪了,也懒得为了应付面试去复习了,被问到就直接说不会算了,当然最理想的是问我js,react之类框架的原理,node,nginx之类的,问算法就根本不指望了。
笔试就是常规的选择题加两道编程题,没啥特色也没好玩的题,就没啥说的啦。
前两轮面试是去酒店面的,排队叫号,不过还好流程比较快,没有等太久。第一轮上来自我介绍后问了一个跟网站相关的项目,然后开始展开问些基础,不过幸好没问啥CSS之类的,问的都是其他面经里的常客题目,像打开一个网页经历的各个过程,HTTP头部,HTTP2.0之类的,期间我各种暗示可以问些跟js或react有关的问题,不过面试官并不鸟我,大概是他已经准备好了题目吧,按照他的题库问完了就结束了,都是他问我答,很机械,不到半个小时就结束了。
第二轮面试官明显就没那么死板了,跟我有了不少互动,跟我讨论了下实习做的东西,问了很多细节,他还提出了改进意见,然后让我用js写代码,先是用setTimeout手动实现setInterval,很简单,直接闭包加递归,然后是实现一个监听滚动条开始滚动和结束滚动的监听器,也不难,就是写个监听器来监听scrollListener而已,再加个定时器,这两题虽然不难,但我感觉还是挺考验基本功的。接下来又聊了会redux的设计哲学,我就顺便把redux简单实现了下,他还挺满意的,结束了面试。
第三轮是隔了一周去总部面的,人还是挺多的,不过流程很快,面试官基本没问啥技术问题,全程基本是我一个人在聊项目,最后我赶紧抓住机会问了很多他家用的技术栈,跟预料的差不多,然后就结束了。
紧接着就是HR面,都是很常见的国内公司“HR式问题”,这些问题也都有“标准的campus式回答”,没啥好说的。
网易有道(后台研发岗,offer)
有道投的时候好像内推提前批已经结束了,就走的正常校招流程,笔试+四轮onsite技术面试+HR面。
有道笔试的编程题比我预想的难一些,第一题常规树形dp(后来看了题解发现想多了,好像直接贪心就行),第二题简单数学题,第三题当时没全过(后来看了题解发现规律找错了)。
过了一周通知面试,之前一直听说有道的技术氛围极好,里面牛人很多,面试喜欢现场coding,所以还是挺放松的,至少不需要刻意去看面经了,很喜欢这种让我improvise的面试。面试是周六,当时以为有道周六还加班,去了发现并没有,只有HR和几个面试官。我第一面在上午,面试官是个比较年轻的小哥,挺热情的,先让我挑个项目介绍下算是暖场,然后开始怼题,先是一道简单概率题,再是一道最短路搜索,很常规,优化直接可以双向BFS或者A*,不过这不需要现场写,最后是一道最大子数组和的变种题,求最小子数组绝对值和,这题还是挺有意思的,想了会,先给了个O(nlogS)的解法,S是所有数的和,就是直接对解二分查找,他估计是没想过这个解法,就先让我实现给他看下,写完后又让我想下有没有O(nlogn)的解法,然后我才发现刚刚脑子短路了,直接先求前缀和再二分找最接近0的解就行,他还是比较满意的(因为我给了两个还不错的解法)。
面完第一面已经中午了,HR把我们带到网易食堂吃,可能是因为是周末,感觉食堂一般啊。下午第二面的面试官是第一面小哥的同事,也是先聊项目再做题,题目很一般,棋盘dp,然后他稍微变了下,给每个格子加上权重,我就转成了图求最短路了,然后手写了个SPFA,最后聊了下有道目前的业务和技术栈结束了第二面。
第三面是另一个组的主管,毕竟有道,主管面也是上来先做题,给一张图,求每个像素的均值,其实就是二维矩阵求每个数与周围8个数的均值,很简单的题,先求二维的前缀和就行,代码也很好写。他看我写得很快,还算满意,就没再问算法了,开始跟我聊分布式的一些基础架构,这个我不是特别擅长,只能懂啥说啥了,说了些开源的框架,也不知道算不算答得不错,然后介绍了下有道目前在做啥,并着重说了下有道非常自由的技术氛围,不是那种以产品需求为主导的开发,并且如果干得不爽可以随时换组,这点还是挺吸引我的,最后问我以后想做啥,我说不知道,比较尴尬 (⊙ˍ⊙)
第四面是加面的,面试官是一个负责多个部门业务的大佬,问得比较随意,基本没啥技术问题,以聊人生为主,主要是看你对一些问题的思考深度吧。HR面详细得问了我其他家offer的情况和一些期望,也问得挺随意的。
完美世界(后台研发岗,offer)
完美我投的不是游戏部门,是互联网部门的后台开发,走的提前批,三轮技术面试,一轮HR面。
第一面是个年龄比较大的面试官,应该是title比较高的吧,很严肃,抓着各种基础知识一顿问,以C++为主,幸好C++用得多,应对得还算好,然后问了一道很常见的数学题,用12的砖铺2n的地板有多少种铺法,简单组合数学题,我以为他接下来要变成m*n的地板,那就是比较难的状压dp的题了,不过我还是挺希望他问的,然而并没有,问了个整数划分的变种题,给了个搜索加剪枝的解法,他还算满意,其他还问了些Linux内核的东西,只回答上了两个,结束了第一面。
第二面是个比较年轻的面试官,是做iOS开发的,所以应该算是交叉面,问了很多关于APP开发相关的东西,我虽然好久不写iOS和Android了,不过幸好一些基础还记得,后面扯到Dalvik,他好像对这个很感兴趣,就说了很多虚拟机的东西,最后算是面得还不错吧。
第三面直接就是完美互联网部门的老大了,完美的副总,不过是个很平易近人的大佬,所以聊得还是挺开心的,给我介绍了很多业务相关的东西,跟他之前做的项目,我就负责喊666就行了,比较容易的一面哈。最后HR面也聊得挺开心的,这个HR算是我见过的比较厉害的了,没有问那些明显是HR新手才问的问题,聊得很接地气,给个赞。
腾讯TEG(后台基础架构岗,offer)
腾讯我投的很晚很晚,那时候笔试都结束了,所以没来得及参加笔试,不过还是通知我去面试了,一轮onsite,一轮电面,一轮HR面。
第一面是去酒店面的,面试官先自我介绍了下(直接拿着百度百科介绍的Orz),是TEG北京这边的一个高级架构师,很认真地给我介绍了TEG北京这边做的东西,以基础架构为主,我还是挺喜欢的,就跟她聊了下实习的时候写的一个跟这个有关的项目,她也听得很认真,并给了些意见,当时就感觉我走大运了遇到一个很nice的面试官。然后给了我一道题,字符排序,她直接说了她不喜欢出难题,主要看代码实现,我也不敢大意,就非常小心地写完了代码,用的计数排序,而且用上了一切可以想到的规范代码的写法,并考虑了所有case,她看完还是比较满意的,给了我她的微信结束了面试,面试官热情又认真,个人感觉这一面面得很舒服。
第二面是电话面试,就在国庆前一天,深圳那边TEG的boss打过来的,先是问了些个人选择问题,问我为啥要投TEG,为啥没投阿里(哈哈,好问题),几乎没问啥技术,我答得也算中规中矩吧,实在没啥可以自由发挥的空间。
HR面就更迅速了,聊了大概20多分钟,就是一些个人信息,研究方向,以后的职业发展,目前有哪些offer之类的。
滴滴(前端转后台岗,offer)
滴滴比较神奇,之前内推投的前端,九月初通知去面试,算是提前批吧,然后一面面试官看了下我的简历,说我做的大部分不是前端的项目,推荐我去面后台,然后就喊HR过来改了我的岗位,我一脸懵逼(OO)?,我还啥都没说呢大哥,更扯的是HR说当天安排不了了,让我回去等通知,我(OO)?,这一等就等到了九月底,厉害了。
国庆节前去面试了,从上午9点一直面到下午6点,大部分时间都是在等,一面都是各种基础知识,很杂,题都记不清了,二面聊项目,用了40分钟好好讲了下自己的一个项目,很爽,三面基本都是听面试官在说,详细介绍了部门的业务,个人觉得还ok。
网易游戏(游戏研发岗,offer)
我对网易游戏是有一些情怀的,本科的时候一直是我的dream company,我投的是互娱,笔试加两轮onsite面试。
网易游戏的笔试难度还是有的,两个半小时5道题,A了4道,前三道水题,第四道是个模拟题,个人对模拟题比较拿手,所以过得还算顺利,最后一道是个与或二叉树,貌似之前在哪见过,不过当时并没有写出来。
今年北京这边的onsite安排得很晚,一直到十月中旬才开始面试。过去开始面试之前先要现场用纸写一道题,我那一场是连通分量,由于题很简单而且时间充足,所以可以慢慢写,尽量考虑好各种case,并优化下代码风格。
第一面面试官会先看下刚刚那道题,如果写的没问题就开始正常面试了。第一面问了超级多C++的问题,除了基础的泛型,多态,STL实现之外,还涉及到一些很tricky的技巧,有些是他工作中遇到的,我觉得我答得还算可以,还跟他讨论了一些编译器前端的东西。然后就问了些操作系统和计算机网络的常规题,还是老一套。终于等到算法题,先是筛质数跟爬楼梯,写得比较快,然后是硬币找零有多少种找法,直接无限背包,然后不让重复,换成了dfs加顺序剪枝,结束了一面。
二面面试官应该是深圳那边的一个技术主管,我以为大佬面不会怎么问技术了,没想到这一轮全是在做题,一共五道题,整体难度还是挺大的,第一题是实现一个可以拿到最大值的滑动窗口,比较简单,维护一个单调递减的队列就行;第二题是个并查集的裸题,没啥意思;第三题是凸包,因为我不是图形学方向,所以我写了个向量叉积的伪代码大佬表示还ok;第四题是个数学题,等概率在一个圆里面分布点,我想了挺长时间的,最后想了个先随机角坐标再随机半径开根号,他满意的,让我证明等概率,数学渣表示我不会证啊T^T,只说下了用向量密度敷衍了事;最后一题还剩5分钟,是个系统设计题,是他们开发中遇到的,大并发实时排序并求每个人的排名,我说了个改进红黑树的方法,他好像不是很满意,时间不够就结束了。这一轮面试虽然题不是特别难,但是全程无废话,一题怼完再来一题,爽爆。
网易游戏的效率挺高的,周末面完周一直接让去现场领offer,过去发现北京这边的诸多知名大佬们相聚一堂,商业互吹,互相打听各家offer,充满着快乐的气氛( ̄. ̄)
百度(后台研发岗,offer)
百度没有走内推,笔试加三轮技术面。
笔试很水,面试跟网易游戏同一天,而且都是周六上午,所以果断先去面了网易游戏,下午去百度的时候见识到了什么是人山人海 (⊙ˍ⊙),领到编号是9,发现周围的都是500开外,这一上午面了500人?(⊙ˍ⊙),抱着重在参与的心态去食堂面试 ,第一面面试官很奇怪,我手写了两道水题后一直在自己电脑上疯狂打字,让我等等,中途看我没事干觉得有点尴尬就又出了两道水题,让我慢慢写,我写完他还没打完,我兴趣大跌,就乖乖在那等他敲完了字,结束了这一轮,第二轮很普通没啥说的,第三轮面试官除了问技术还问我怎么看待百度的负面新闻,好尴尬 (⊙ˍ⊙)
华为(云计算岗,offer)
玄学招聘,很多人吐槽,我面了两面,本来是当天最早那批,结果第二面等到了下午4点,中途还跑出去面了个搜狗,两轮都是以聊人生为主。
搜狗(搜索研发岗,offer)
没有内推,笔试+三轮技术面+一轮HR面。
第一轮没啥说的,四题AK,题都是面经里的常客。第二轮由于水题写得比较快,面试官问了个挺有意思的题,杨氏矩阵(行和列都是有序的矩阵)找数,最快可以O(m+n)这没啥说的,怎么设计test case能保证最坏复杂度的查找,我想了挺久,面试官提示考虑两个相邻对角线,我恍然大悟,然后拓展到三维杨氏矩阵怎么设计case,那就是考虑跟主对角线垂直的剖面了,挺好玩的哈。第三轮系统设计,面试官全程在忙自己的事,这种感觉很不好,所以我也敷衍了事。HR面聊了很多,互相交换了不少信息。
2.3 国内创业公司
依图(offer)
因为上一届学长拿到了依图的offer,给得挺吓人的,所以就想看看他家的难度,四轮技术面,应该是我面过的公司里难度最大的,感觉遇到了整个上交ACM队Orz。
第一面是给个加权二叉树的中序找最大加权后序,当时脑子短路说了个Catalan暴力,面试官笑笑让我不要紧张,幸好没短路太久,发现是个区间dp的题,然后就顺手写下了递推公式,面试官挺满意的,不过因为要找最大加权后序本身,所以还是得写成top-down+memo,写得还是挺快的,这一轮算是开始进入状态吧。
第二面直接就是大佬面,因为大佬有事要先离开,所以提前面我了,大佬是原阿里云总架构师林晨曦大大那一系的,在google总部呆了三年回来在阿里云呆了八年,在分布式工程领域的造诣真的让我叹为观止,非常厉害,跟我聊了好多好多,从技术聊到人生,还有很多阿里云的前程往事,就跟听故事一样,很过瘾,着实让我大开眼界,跟这样的大佬聊天真是一种享受。
第三面回归正常算法怼题,我还没从上一面大佬的精彩分享中回过神,就被问了个二维矩形面积并的题(似曾相识),因为之前重点练过线段树,所以写得比较轻松,面试官挺满意的,就说我们不聊算法题了,我以为要开始聊人生,然而小哥笑着问我19世纪怎么测光速,嗯(O_O)?,这是在考我历史?还是物理?不过感觉挺有意思的,就开始回忆初高中物理课本,然而回忆了半天发现以前学的早忘光啦(╯°□°)╯︵┻━┻,所以只能用我那点可怜的天文知识开脑洞,他听我瞎扯了半天越说越不靠谱,就说可以用齿轮测法,好像高中物理确实学过,然我让我估算了下各种距离和转速结束了这一面。
第四面继续怼题,手写hashtable链表实现,讲了下莫队算法原理,然后出了一道ip地址掩码匹配查询的题,典型前缀匹配,我用Trie写的,他让我优化到4次查询,就是按字节查,然后存最后不匹配的所有可能情况,这一面难度挺大的。
这家今年给的offer很高,不过在大家都涨的环境下没那么吓人了,据说现在加班没之前那么恐怖了。
Pony.ai(offer)
投pony一部分原因是对他家做的事很感兴趣,还有一部分当然是对楼教主的信仰啦,pony里面一半的工程师是Google出来的,而且有很多ACM大神,所以也是做了比较充分的准备去面试。
投了简历,找了个师兄内推让我的面试提前了一些,三轮onsite。第一轮是个姚班出来的大神面的,直接怼题,一个小时4道题现场写完编译并通过所有case,一气呵成,除了最后一道二分的题想了会其他的题都还算常规,不过非常考验基本功。第二轮也是做题,不过换成了纸上写,先是一个折现找最多交点的题,然后是个凸包求交集,最后是个最短路加证明,感觉这一面偏理论,不过题都挺有意思的。第三轮的面试官是北美office过来的,问了些项目之后开始随便聊聊,聊了很多关于个人职业发展的想法,问他为啥要从Google总部出来,以及对智能驾驶的看法,颇有收获。总之是一次体验非常好的面试。
一周之后收到offer,HR通知是最高档,还是挺满意的。
商汤(offer)
投的是开发岗,笔试加三轮onsite,虽然拿到了offer,但是面试体验比较差,问的问题也挺无聊的,跟面试官聊天给我的感觉就是水水的,总体比较失望吧。
深圳寒武纪(offer)
这家是做智能家居机器人的,没有面试,他家CEO来我们校出差,就找了个咖啡厅聊了很久,因为这个大佬不是做技术的,就以聊人生为主,收货挺多的,给我的印象就是不差钱。
一些感想
能走提前批就走提前批,能内推就内推,不然会有很多意想不到的麻烦;有个比你厉害的好朋友很重要,平时多交流技术和心路历程,会发现自己永远需要努力;任何事情都有运气成分,何况面试,但是依赖运气的人绝对走不远;面试是个双方互相考察的过程。
—————————————
往期精彩: