- 参加谷歌的面试经验分享 推荐度:
- 相关推荐
关于参加谷歌的面试经验分享
如果你幸运地得到谷歌公司的面试机会,而这是你一直以来梦寐以求的雇主,你会如何准备自己的面试呢?下面小编为您带来参加谷歌的面试经验分享!
尝试在自己的博客上搜索点东西,结果发现 4 年多以前还在博客上写过一系列的 recruiting events,把大四时候参加过的各种笔试面试都记录下来了。我从去年准备离开百度开始,到现在总过面试过 4 家公司:Google、Microsoft、Yahoo、Facebook,原本去年也想把面试经验写一写的,结果一拖就拖到现在。我不想写面试经验,因为我个人不喜欢漏题和背题的做法。我自己作为面试官,知道要设计出来一道好用的题目有多难,所以我希望面试者都是如实表现自己解题能力的。我更喜欢写面试体验,就是在整个面试过程中一家公司给人的印象是怎样的,HR 和面试官是否专业,能否让人信服这是一家值得长期工作的公司。
我想写的第一家公司是 Google,因为它是我在想要离开百度时第一家联系到我的公司。2012 年 12 月底的某一天早上,我突然感觉到我应该离开百度,因为如果这个时候已经没有勇气离开这家公司了,很可能就不会再想要离开了。当天中午在百度大厦西餐厅吃午饭,接到一个 Google 上海 HR 的电话,问我有没有兴趣去面试,我想既然你打电话来的时机那么好,我就答应你去面试吧。(在那一天之前,我对猎头的标准回复是「有美国或者香港的职位吗?」)她问我将来希望在北京还是上海工作,当时我对北京的厌恶程度还没有现在那么高,同时觉得搬家到上海又比较麻烦,于是就说在北京,接着我就变成跟北京 HR 沟通了。
Google 的 HR 会负责做两件简单得不需要面试官做的事情,这能够很好的提高招聘流程的效率。第一件是确认你能够适应工作环境中的英语,为此 HR 要我用英语跟她对话两三分钟,主要就是让我说说工作经验和其中的亮点。习惯在私企工作的人不要以为外企对英语的要求很高,其实大多数长期在中国工作的人说话或者发邮件都会很 Chinglish 啦,所以关键是要敢于用英语进行沟通。
然后 HR 发了一个 Codility 的地址给我,让我有空抽时间去做题。一个小时 3 道难度相当于 OI 基础题的题目,平均 20 分钟一道。最简单的题目一看就知道是 O(n) 能解决的,最复杂的题目看上去是 O(n^2) 但想一下就能优化为 O(n log n)。对于有算法训练背景的人来说,这样的题目会让人感觉到很有把握。对于没有经受过算法训练的人来说,掉进陷阱里是很容易的。很可能没有把 O(n^2) 优化为 O(n log n),结果超时;可能没仔细看题目说明的数值取值范围,某些变量选错了数值类型,结果溢出。考虑到 Google 重视算法的程度,再加上 Google 中国面试的额外难度,算法训练还是很必要的。
匹兹堡的Google新办公室
在我通过 Codility 测试后,HR 问我了对题目难度的反馈,然后约了一轮电话面试,并且告知面试主要围绕算法、数据结构、系统设计、编码来进行。Google 面试的格式都很固定,45 分钟内期望你能做出 3 道题来。这 3 道题最起码要能把人人都能想出来的「笨办法」用代码写出来,否则会让面试官感到不满意。如果有些题目能够比较快地做出来,面试官就会让你优化。就算你第一次给出的答案已经是业界已知最优解,面试官都还是会让你优化,因为谁也不知道有没有人能在面试过程中突然爆发,想出一些过去没人想到过的解法。如果面试官心中已有优化的方案,在你想不出优化方案时他可能会给你提供一些提示。
一轮电话面试后,HR 就开始约到 Google 办公室的面试了。第一次约了下午 3 轮面试,还是那个很固定的格式:每轮面试 45 分钟,两轮间隔 15 分钟。整个面试流程让人感觉到很人性化:在 Google 签到后,HR 会先带你去 kitchen 拿点吃的喝的,然后把你带到面试所用的会议室。多轮面试的话,HR 中间还会来问一下你要不要去洗手间,或者多拿两瓶水。面试完毕后 HR 会来问你感觉如何,同时也会让你知道面试官的初步反馈是否跟你的感觉一致。我在 3 轮面试中有一轮感觉不太好,因为面试官只给了 2 道题,并且我最终都没办法解出来,HR 也确认了就是这一轮的反馈不好。
此外,Google 的招聘流程还让人感觉到很有效率。作为面试官,我也知道自己写面试反馈有多喜欢拖延,而且公司填写面试反馈的系统越不人性化我就越想要拖延,然而公司内部系统做得人性化的又实在罕见。Google 的面试基本上隔天就有结果,然后 HR 就会约下一轮的面试。因为我在百度的时候每周哪个时间没有会议是很确定的,所以我总是选择下周同一个时间段来面试。在经过总共 4 轮面试后,HR 说因为前面有一轮的面试官反馈不好,所以希望再加一轮面试。因为前面反馈不好的面试官比较 senior,所以这次找了一位同样 senior 的面试官来面试,于是我又去了一次 Google 办公室。
完成 5 轮面试后,HR 把材料提交给 Google 的北京招聘委员会,结果没有通过。HR 说,因为 Google 都是按照后端工程师的标准来招聘,看重算法和数据结构,前端工程师要通过不容易。因为 Google 没有专门的前端工程师,只有一个软件工程师职位,所以所有人还是必须按照一个标准来衡量。她问我如果找到专门需要前端工程师的团队,并且需要额外再面试的话,我是否感兴趣。当时 Google 是我的第一选择,我当然说感兴趣啦。
后来 HR 跟我说,她帮忙问过 Google Maps,可惜对方说不要专才只要通才。又过了几个星期,HR 发现 IME 需要专门做前端的人,于是帮我再约了一轮面试。这轮面试是在 Google 办公室做的,但实际上是视频会议,因为面试官在美国。(不确定面试官是在美国出差,还是美籍华人。)面试过程跟电话面试类似,用 Google Docs 写代码,比电话面试要好的是说话时能够见到人。
这一轮面试结束后,我的材料再次进入 Google 的北京招聘委员会。HR 说这次专门找了对前端有经验的人来审阅我的材料,结果顺利通过了。接着 HR 问我要了一大堆的补充材料,包括高考成绩和 GPA(连同成绩单),还包括当前薪酬和竞争对手的 offer(我当时有 Yahoo 的 offer),甚至包括过去的获奖和晋升经历。所有这些材料都会发往 Google 美国总部审阅,具体流程 HR 没有细说,但看 Don Dodge 的文章可以了解一些。最后我被 Google 美国总部给拒绝了,然后 HR 还是一如既往地及时沟通,并且安慰了我几句。
整个 Google 招聘流程下来,可以感觉到人性化和高效率,同时也能感觉到 HR 确实在很努力地为候选人争取机会。可以说,无论是否通过,Google 招聘流程至少能给候选人一个很好的印象。据我所知,尽管 Google 声称全球招聘标准一致,但因为中国聪明且懂算法的人实在太多,所以难度更高是很正常的。能够在 Google 中国以外的地区应聘的话,应该会容易一些。
谷歌技术岗位实习生面试经历及收获分享
我非常喜欢Google公司,也想进Google工作,于是想在大三下半学期去Google实习。当时正好有师兄在谷歌里面,就请他帮忙推荐了一下。本来有了这个便利是可以不用笔试的,不过想想还是靠自己的实力吧,于是还是参加了宣讲会和笔试。
笔试
我感觉Google的笔试重视的是CS所学的基础知识,特别是选择题、操作系统、编译原理、编程等都考察到了,而且在网上搜笔经的时候有看到其他人说起过,如果笔试时候的选择题没达到要求的题目数,就会被直接cut掉,不看后面的主观题。虽然无从验证消息的真实性,不过大家做笔试的时候还是要多加小心。
笔试的主观题一般似乎都是考的算法,对于平时没怎么写过算法题目的同学会比较难,不过我认识的一起去笔的ACM的大牛们都觉得很简单,所以建议以后想去笔g家的师弟师妹们还是要好好准备下算法这part,g还是蛮重视这方面的。
顺利通过了笔试,然后就是面试了,这是偶的处女面,当时心里超级紧张,签了保密协议就在那里等。
一面
第一面面我的是stephenGe,问了我一个很经典的算法题目的变种,属于该经典问题的一个特殊情况,不过由于签了保密协议就不在这里说了,如果有看过《具体数学》这本书的话应该有看过类似的变种,是有O(1)的算法。
可惜我当时真的是太紧张了,虽然看过类似的题目也想往那个方向想,可惜还是没能想出来,于是只能从头开始推,最后勉勉强强在错了几次和面试官的提醒下,推出了个O(n)的,然后就结束了。其实我想应该会面两道的,不过可能因为我的时间已经用完了,所以面试官没有再问。
然后当天回去后以为要当炮灰了,结果过了几天好很惊异的发现自己收到了二面通知,当时真的是很开心,估计是因为我的答案虽然没有最优,但是O(n)对那个经典问题的一般情况可以算是最优的,所以被放过了吧。
二面
二面我的是wang chaogg,很nice的一个人,问的问题也不难,方法一下子就想到了,不过我还是经验不足,写代码的时候写出了很多小错误,影响了这面的成绩。
这里提醒一下大家,要面Google、微软这类公司,可能会要求你当场写出可运行代码的公司的时候,最好在去面试之前好好练习一下,先自己习惯一下在纸上coding的感觉。我就是训练得太少,结果当时出了很多低级错误,例如把a<;<;=1写成了a<;<;1之类,搞的每次改完一编wang chao都会问我,"你要不要再检查一下",然后还每每能找出我的错误,弄得我当时完全郁闷了……
还有就是Google对细节的要求是很高的,记得当时我代码当中写了一句int n=lg(s)/lg(2);然后面试官就当场就把我的代码敲了进去测试,把结果给我看,原来是想告诉我这句可能会有精度问题,话说我虽然平时也知道会有这种问题存在,可是没想到会要求到这个程度,还好我接着说那就加个1e-7之类的就好了,似乎面试官觉得这个答案还可以,没继续追问……
然后就拿是拿到了Google的实习offer,去了北京。
实习收获:这里再说一下实习里面学到的东西。
1.好的coding style,这是我之前比较欠缺的一方面,也是我本科很少训练的一方面,之前都是觉得写个程序能把结果弄出来就是了,其实一个好的coding style会使你的代码易读性大幅度提高。
2.文档和注释的规范化,在那里第一次体验了写文档和写注释比写代码花费更多时间的情况,无数次被老板让我改注释,话说我之前写程序都是很少写文档的同时也很佩服engineer们对代码的严格要求,严格到了就算注释里面少打了一个空格都会很细致的给我指出,有时也许会想,也许就是这些对无数性能和细节上的精益求精,才造就了Google今天的成功吧~写出这些是希望师弟师妹们吸取我的教训,在coding的时候也注意下这些方面~
3.intern的conversion,也就是申请full time再加的两轮面试,不过其中一面面得不好,于是fail掉了。
Google的面试制度
最后再介绍下我了解到的Google的面试制度,一般申请full time最少要面4面,由4个不同的enginner来面。面试的内容和范围不定,不过一般都会根据你简历上写的来问,所以如果自己没做过的项目,不擅长的方面就不要往上写了……
如果你是本科生没做过什么项目,又除了学校教的一些基础知识外没学过多少课外的东西,那么一般一开始都会被问到算法,我自己碰到的难度感觉上大概是poj上那些三四百人过的难度,不过在水木看到有人说碰到的难度和top coder srm div1的250分题目差不多,这个难度对那些平时搞算法的大牛估计就是秒杀的难度了,不过如果是平时比较少玩算法的,可以针对上面的难度准备下。
【参加谷歌的面试经验分享】相关文章:
2016参加谷歌的面试经验分享04-05
参加谷歌的面试体验分享11-19
2016参加微软的面试经验分享04-05
面试经验分享08-10
飞利浦面试经验分享12-01
经典通用的面试经验分享11-20
雀巢面试经验分享12-09
TCL面试经验分享04-05
宝洁面试经验分享04-01
IBM的面试经验分享11-20