首页 · ·
【毕业季】一个CS 硕士FB、谷歌、LinkedIn和摩根斯坦利的面试总结
发布时间:2015-03-02 来源:美国留学
 先报下本人背景,国内中山大学软件工程本科 GPA3.2,美国NYU CS master GPA3.85,大四一年实验室经历,暑假Amazon SDE Intern。无ACM和数学竞赛经历。之前发过Amazon intern面经,很遗憾的是没拿到return offer。重新申请要等6个月的冻结期(这个相当恶心),但是我不可能等那么久了。准备情况大概是careercup 5th edition 80%的题刷过一遍,leetcode刷过95%的题(新题一出就刷,保持状态),加上glassdoor的面筋。总共面了10多家公司,挑选了几家映象比较深刻的写在这里,一共7个onsite,两个offer,分别是Linkedin和Goldman Sachs。最后从了Linkedin。
On-campus:申请Intern的时候面过他家,当时是纯behaviorquestion。不过这次风格完全不同了,老美面试官上来寒暄两句后,就问了几道Java概念题,比如static,synchronized,interface的定义。然后拿出纸笔让coding,binarytree的遍历,还有道应用题,大概是给一个map,和一个数字t,找出map里最接近t的value对应的key。题目无比简单,唰唰地写完,面试官也给予了肯定。但是这一面还是挂了,我觉得莫名其妙。问了问同学,他们没答对题的拿到了onsite。事后想想可能是因为我后面问的问题不太妥当,令面试官难堪了。唉,那时还是面试经验不足啊,果断转化为经验值。
Linkedin官网投的简历,两个月了才被鸟。
Phone interview:电面前recruiter会打电话来做最基本的phone screen,然后会发给你面试官的linkedin链接,让你做好迎接老印的准备。. from: 1point3acres.com/bbs
1. 电话对面两个面试官,老中+毛子,collabedit上写题。第一题,验证一个string是不是valid number,需要考虑正负和小数,不用考虑指数。第二题也是被问烂的,print a binary tree in levelorder。感觉发挥得不好,虽然写出来了但是被指出了几个bug。当时脑袋犯糊涂了做过的题竟然都写得不顺。
2. 本来以为上一面跪了,结果一天之后HR又约了第二个电面。老印+毛子。第一题,求pow(n, x),要求O(logn)解法。第二题,maximumsubarray。第三题,实现singleton并让其thread-safe,还问到了lazyinitialiation的和volatile关键字的意义。这一面相当顺畅,没有任何差错。
Onsite:Mountainview总部,一共五轮,除了第一轮,每轮两位面试官,时长一小时,看来2v1是他们的特色。虽然每轮有两位面试官,但是其中一个是shadow,全程基本不发言,也就是来学习面试流程的,所以不用慌张。从这些shadow的脸色来看,他们其实比你更紧张。当我问他们问题的时候,他们的回答都是都结结巴巴的。当然主面试官还是相当老练的。因为签了NDA,而且拿到offer了,为了以防万一,下面的题目故意写得模糊些。
-
老印,主要问简历,每一项都被问到,而且非常细节。要求画出实习project的架构图。
-
老印+老印,依然是问简历,基本同上,并且要求你从algorithm和design的角度说出怎么improve你的project。面完以后被其中一个老印带去lunch interview
-
老美+老中,两个coding题,一题简单10分钟,一题复杂30-35分钟,题目就不说了,leetcode上有类似的。
-
老美+老中,也是两个coding题,难度基本同上。
从电面到onsite,见过的coding题都是leetcode上的类似题,所以各位应该知道我的意思。我比较惊讶的是linkedin竟然这么重视design,甚至重于coding。虽然前两轮都是问简历,但是都讨论到了很多design方面的问题。所以整个面试应该是三轮design和两轮coding。Onsite结束后一星期,recruiter打电话来follow-up,说feedback没齐。第二个星期来了口头offer,说是还要跟hiring manager电话聊一聊。聊完之后给了正式offer。我被分到的组是Core team里面的presentation team,做profile page的,也就是个人主页。感觉这个team相当不错,离用户最近,impact大,也符合我的兴趣。版上好像有个帖求证Linkedin的package,这里报一下fresh master的,以作参考:105k base + 1500RSU/4yr (worth 170k) + 10% target bonus + 10k relocation。除此之外,公司三餐免费(不过很难吃),还有免费饮料和零食,报销公共交通,入职发macbook,假期很多。公司里面的文化相对于大多数tech公司比较formal,办公室非常整洁,没有那么多geek元素。老印很多,但是我遇到的都很好。
老美+老印,design题,如何设计一个web的多人在线游戏。写出所需的类和data member,还要画出系统架构图。
找学校的professor内推的,他是GoogleNYC的一个engineer,而且我上过他的课。内推的效果真不是盖的,不到2小时就被recruiter联系上。面的是NYCoffice的一个组,由于飓风Sandy的原因推迟了一周。
Phone interview:一下约了两轮
-
老美,求一个数n的所有prime factor。比如输入96输出2 2 2 2 2 3。google doc写代码真心不如collabedit好用,本来15分钟可以做完的题硬是写了30多分钟。
-
老美,先写大数加1,然后写两个大数相加,面试完发现有个小bug,但是来不及改了。
Onsite:电面后等了整整两个星期,还以为挂掉的时候,来了NYC office的onsite通知。看来对google而言,不像网上传说的那么恐怖要bug free,至少电面是这样。虽然签了NDA,但是既然挂了就无视之。
-
老美,第一题,写一个PeekIterator,包装一个普通的Iterator,要实现peek()方法,返回当前iterator指向的元素,但是不能移动它。除此之外也要实现hasNext()和next()方法。第二题,给一个BST的Node,有父节点的指针,求该Node的下一个Node。这一面感觉不错。
-
老美,写一个EvenIterator(汗,这年头这么流行考iterator么?),包装一个普通的Iterator,只返回evennumber。要求实现next()和hasNext()方法。这一面感觉不太好,没想到先写个简单的方法。最后时间到了还是有bug没有修改完。
-
老中,被带去吃午饭,期间都说的中文。然后参观了下NYC office
-
老黑,求一个逆波兰表达式的运算结果,用stack就可以。follow up是怎么处理invalid input。这一面感觉也还行。
-
老美,一个比较复杂的题,不太方便说。大概是有一个游戏,游戏的每一步都是一个state,从这个state可以有很多种走法,从而走到下一个state,要求输出游戏结束时所有的states。我刚开始给了个暴力递归搜索加回溯的算法,然后经面试官提示加了剪枝的优化。但是即使这样我也不确定是不是最优解。
google的recruiter和interviewer都一再强调,结果不是最重要的,重要的是你的想法和交流能力。我觉得确实如此,从面试官引导你的方向就能看出他们确实想知道你的思路。即使你想不出最优解,他们也会给你很多的提示。当然了,我觉得自己面的不好,有一面相当糟,不出所料一周之后recruiter打电话来告知被拒。
Recruiter从Linkedin骚扰。Facebook开始大肆扩张了,据说他们今年要达到5000人的规模(from 3000)。虽然知道自己的水平是被虐的份,但是抱着让人生完整的精神去尝试了下。
Phone interview:老印,判断一个string是否回文,要求ignore cases, spaces and punctuation,O(1) space。题目虽然简单但是edge case有点多,写出了好多bug。虽然最后写出了个正确的版本,但是跟老印交流有问题,浪费了好多时间,只做了一道题。2天后被告知挂了。
本文来源一亩三分地论坛
- 上一篇:sat1和sat2的区别有哪些?
- 下一篇: 红狮高中招生官来华面试【3月23】