程序员面试大揭秘——应聘微软、亚马逊、谷歌、苹果等IT公司你都要作什么准备?

对于多数求职者而言,面试好似一个迷局。你去了,见了几个面试官,答了一堆问题,而后,或两手空空离开,或幸运地拿到录用通知。php

你有没有想过:程序员

  • 面试结果是怎么得出的?
  • 面试官会不会互相交流?
  • 公司最看重哪些方面?

好了,不用再挖空心思,再三思索了,我来告诉你。面试

在本章,咱们邀请了来自顶尖科技公司(微软、亚马逊、谷歌、苹果、Facebook及雅虎)的面试专家来为你们答疑解惑,揭秘面试中的那些事儿。算法

这些专家会让咱们了解各家公司的面试流程,帮助还原那些发生在面试会议室以外的事情,以及面试结束后的事项。数据库

这些专家还会告诉咱们各家公司面试流程的不一样之处。好比,亚马逊的“调杆员”是怎么回事,谷歌的招聘委员会是如何运做的。是的,每家公司各具特点。了解这些“怪癖”会让你更加成竹在胸,不会被突如其来的亚马逊“调杆员”给吓住,也不会对苹果竟然同时派出两位面试官来考察你而感到意外。编程

① “bar raiser”(调杆员)的概念来自亚马逊美国总部。这个词原指在跳高比赛中,一次次将杆调高的工做人员。而亚马逊的调杆员则是一群在招聘过程当中负责从企业文化以及行为准则的角度考察应聘者,从而维护招聘质量的人。在招聘中,调杆员会用很苛刻的眼光考察应聘者是否在至少一点上高过亚马逊的平均水准,若是是,那么雇用这样的人实际上就等于在提高公司的能力,这就起到了“抬杆”的做用。——编者注缓存

此外,这些专家也强调了各家公司的面试重点。尽管这些顶尖公司都喜欢考察求职者的编码能力和算法基础,他们其实也各有侧重。无论这是源自各家公司的技术背景或是历史,至少你知道该如何作好准备。网络

**接下来,让咱们一块儿揭开微软、亚马逊、谷歌、苹果、Facebook和雅虎的“面试迷局”吧。**架构

微软面试

微软喜欢招聪明人,尤为青睐计算机极客。求职者必须对技术满怀热情。微软的面试官不大会问你一些C++ API的个中细节,而是直接让你在白板上写代码。分布式

参加面试时,求职者最好在早上约定时间以前赶到微软,先填好一些表格。接着你会和招聘助理碰面,他会给你一个面试样题。招聘助理主要是帮你热热身,不大会问技术问题;就算真的问了几个简单的技术问题,也是想让你放松心情,等到面试真正开始时,你就不会那么紧张了。

对招聘助理必定要以礼相待。说不定他们会帮上大忙,在你首轮面试表现欠佳时,他们有可能帮你争取从新面试的机会。夸张地说,他们甚至还能左右你的应聘结果。

面试当天你会接受4到5轮面试,面试官通常来自两个团队。许多公司会把面试安排在会议室,而微软的面试通常在面试官的办公室进行。你正好能够借机四处看看,感觉一下他们的团队文化。

一轮面试事后,不一样的团队,作法不同,面试官可能会根据我的习惯决定是否将你的表现反馈给后续的面试。

完成全部面试后,你有可能会见到招聘经理。假如真是这样的话,那但是好兆头,这意味着你经过了某个团队的基本考察。接下来,就要看招聘经理要不要录用你了。

快的话,面试当天你就会知道结果,慢的话,则可能要等上一周。要是等了一周还没收到人事部的通知,不妨发封邮件,客气地问一下进展。

若是你没有立刻收到回应,有多是由于招聘助理太忙了,这并不表明你就没戏。

必要准备事项:

你为何想要加入微软?

提这个问题,微软是想了解你是否对技术满怀热情。一个比较好的答案是:“自打接触计算机以来,我就一直在用微软的软件,贵公司开发的软件产品使人赞不绝口。好比,我最近一直在Visual Studio开发环境中学习游戏编程,它的API实在是太好用了。”注意这个答案是如何展现你对技术满怀热情的。

独特之处:

若是到了招聘经理这一关,说明你面试表现得不错。这但是个好兆头!

亚马逊面试

亚马逊的招聘流程通常从两轮电话面试开始,期间求职者会接受某个团队的面试。偶尔也会出现面试3轮甚至更多轮的状况,多是有位面试官对你的评价不高,或是别的团队对你有兴趣。此外,还有其余特殊状况,好比求职者就在亚马逊总部所在地西雅图,或他之前面试过其余职位,也许一次电话面试就够了。

在电话面试中,面试你的工程师一般会要求你经过共享文档工具(如CollabEdit)写些简单的代码。他们问的技术问题可谓五花八门,意在探测你究竟熟悉哪些领域。

接下来,若有一两个团队根据你的简历和在电话面试中的表现相中你,你就要飞到西雅图接受4到5轮面试。在白板上写代码是少不了的,有些面试官会着重考察你的其余技能。每一轮面试官都会侧重不一样的领域,因此他们的提问会截然不同。在提交本身的评价报告以前,他们看不到其余面试官对你的评价,并且公司也不鼓励面试官在面试过程当中互相交流,一切讨论都得等到几轮面试所有结束后。

顾名思义,“调杆员”主要负责把控面试质量。他们受过专门训练,而且是从其余团队抽调来的,以减小面试中的主观倾向。在面试中,若是有位面试官风格迥异且要求格外严格,那他可能就是传说中的“调杆员”。这种人不只面试经验丰富,并且跟招聘经理同样,拥有生杀大权。不过,切记:这一轮面试表现磕磕绊绊,并不等于你的总体表现就不好。面试官会比照其余求职者来评价你的水平,而不是只看你答对多少问题。

等到全部面试官提交评价报告后,他们会在一块儿讨论你的表现,并决定是否录用你。

通常来讲,亚马逊的招聘团队都会很快给出录用结果,不多有耽搁。要是一周内都没等到结果,建议你发封措辞得当的邮件询问进展。

必要准备事项:

亚马逊是一家互联网公司,这也意味着他们很是关注“扩展性”问题。请作好相应的准备。固然,回答这些问题,并不要求你具有分布式系统方面的知识。具体建议可参看“扩展性与存储限制”一节。

此外,亚马逊还会问不少面向对象设计的问题。请参看“面向对象设计”一节,里面有一些样题和建议。

独特之处:

“调杆员”来自其余团队,旨在提升面试标准。他和招聘经理同样重要,请尽可能表现得出色一些。

谷歌面试

业界流传不少有关谷歌面试的可怕谣传,但多数也只是谣传。谷歌的面试与微软或亚马逊的并没有太大区别。

谷歌的面试也从电话面试开始,来面试你的人是技术工程师,所以免不了会问些技术难题,求职者切不可掉以轻心。这些问题也可能涉及编程,有时你还要经过共享文档工具写些代码。电话面试的问题和现场面试的相似,要求也同样。

现场面试通常有4到6轮,其中一轮为午饭面试。面试官之间不能透露本身的评价报告,所以每一轮面试你均可以从零开始。午饭面试不会有评价报告,你能够借机问些其余环节不方便问的问题。

谷歌不会要求面试官侧重不一样的领域,也没有所谓的标准流程或结构。每一个面试官能够自行决定问哪些问题。

面试事后,评价报告会以书面形式提交给由工程师和经理组成的“招聘委员会”,由他们做出录用结论。面试评价报告由分析能力、编程水平、工做经验和沟通能力等四部分组成,最后你会获得总的评分,在1.0到4.0之间。“招聘委员会”里通常不会有你的面试官。就算有,那也纯属巧合。

一般,在决定录用与否时,招聘委员会更看重那种有面试官给你打高分的状况,打个比方,若是你的得分是3.六、3.一、3.1 和2.6,效果要好过拿4个3.1。

也就是说,每轮面试不必定都要有上佳表现。此外,你在电话面试中的表现通常起不了决定性做用。

若是招聘委员会给出的意见是“聘用”,你的材料就会转给“薪酬委员会”及“执行管理委员会”。最终结果可能要等上几周,由于还有很多流程要走,等待多个委员会审批。

必要准备事项:

做为一家互联网公司,谷歌很是看重如何设计可扩展的系统。所以,务必掌握“扩展性与存储限制”一节的问题。此外,谷歌的面试官很喜欢问些涉及“位操做”的问题,也请重点复习这些方面的知识。

独特之处:

面试官不是决策者。他们只提交评价意见供招聘委员会参考。招聘委员会给出录用与否的决定,固然,该决定偶尔也会被谷歌高管否决。

苹果面试

苹果的面试流程与公司自己的风格很是相符,是最没官僚味儿的。苹果的面试官很看重技术功底,但求职者对应聘职位和公司的热情也很是重要。虽然成为Mac用户并非应聘苹果的先决条件,但你至少要对该系统有必定了解。

在苹果的面试流程中,招聘助理会先给你打电话了解一些基本状况,接下来团队成员会对你进行一连串的技术电话面试。

当你受邀去参加现场面试时,招聘助理会出面接待你,并介绍面试的大体流程。而后,你要接受招聘团队成员6到8轮的面试,其中这个团队的重要人物也会来面试你。

苹果的面试形式是一对一或二对一。请作好在白板上写代码的准备,交流的时候必定要把本身的思路表达清楚。你可能会跟将来的上司共进午饭,这看似随意,但其实也是一次面试。每一个面试官都会侧重不一样的领域,面试官之间通常不会过问彼此的面试状况,除非他们想让后续面试官就求职者某一方面多挖掘点内容。

当天全部面试结束后,面试官会在一块儿商议你的表现。若是你们都认为你表现不错,接下来会由你应聘部门的主管或副总来面试你。能见到主管也不见得你必定会被录用,不过总归是个好兆头。让不让你见主管的决定对你是不公开的,若是你落选了,他们只是默默送你离开公司,也不会透露你为何落选了。

若是你得以进入主管或副总面试环节,面过你的面试官会聚到会议室正式表决录用意见。副总一般不会列席,但若是你没能打动他们,他们照样能够直接否决。招聘人员一般会在几天后联系你,要是等不及的话,你也能够主动联系。

必要准备事项:

若是你知道哪一个团队会来面试你,务必先熟悉他们的产品。你喜欢该产品的哪些方面?你以为有哪些能够改进的地方?给出独到看法能够有力展现你对这份工做的激情。

独特之处:

在苹果的面试中,二对一的形式司空见惯,不过也不用太紧张——这跟一对一面试并没有分别。

此外,苹果的员工都是超级果粉,在面试中,你最好也能展示出一样的热情。

Facebook面试

Facebook的在线工程难题曾引起热议,其实这无非又是吸引眼球的手段之一。除了解答这些难题,你还能够经过传统渠道申请该公司的职位,好比提交在线职位申请,或者参加校园招聘会。

① 感兴趣的读者能够访问页面Facebook Engineering Puzzles:www.facebook.com/careers/puzzles.php。 ——译者注

一旦被Facebook挑中,求职者通常至少要接受两轮电话面试。不过,公司所在地的求职者能够少一轮。电话面试主要涉及技术问题,求职者一般要用Etherpad或其余共享文档工具写些代码。

② Facebook总部位于美国加利福尼亚州的门罗帕克市,地址为黑客路1号(1 Hacker Way)。——译者注

若是你还在上学,在学校接受面试,那你还要写代码。面试官会要求你在白板或白纸上写代码。

现场面试时,主要由其余软件工程师来面试你,不过,招聘经理有空的话也会参与。全部面试官都受过专业面试培训,他们只提供意见,对你的应聘结果不做决断。

现场面试的每一个面试官都各有侧重,以确保你们不会重复提问,并全面考察求职者的能力水平。面试问题主要分为算法、编程水平、软件架构/设计能力等几大块,同时,面试官也会考察你可否适应Facebook快节奏的开发环境。

面试事后,在交流你的表现以前,面过你的面试官会先提交书面评价报告。这么作是为了确保各位面试官能对你的表现做出相对独立的评价。

一旦收到全部的评价报告,面试小组和招聘经理便会商讨你的面试结果。他们会先达成统一意见,而后提交给招聘委员会。

Facebook很看重“忍术”(灵活应变)——也就是使用任何语言快速构建优雅、可扩展解决方案的能力。懂PHP并不会显得特别突出,由于Facebook也有不少后台工做要用到C++、Python、Erlang和其余语言。

必要准备事项:

做为网络科技的新贵及“当红炸子鸡”,Facebook也更青睐那些富有创业精神的开发人员。在面试过程当中,你要展示出本身热衷创造新事物的激情。

独特之处:

Facebook由公司统一招聘员工,而不是专门针对某个团队。面试成功并入职后,你会先参加为期六周的“新兵训练营”,帮你快速适应大规模的代码库。资深工程师会担任你的导师,辅导你掌握最佳实践和必备技能,最终让你能够游刃有余地加入本身喜欢的项目组。

雅虎面试

雅虎每每只招美国排名前20的高校毕业生,不过其余求职者仍可经过雅虎公开招聘渠道(或者,能够内部推荐的话就更好了)获得面试机会。取得面试资格后,你会先接受一轮电话面试。对你进行电话面试的通常是资深员工,好比技术主管或经理。

在现场面试中,通常由来自同一团队的六七我的来面试你,每轮面试时长45分钟。每一个面试官都会侧重不一样的领域。好比,有的面试官可能侧重于数据库知识,而有的面试官则会关注你对计算机体系结构的理解。每轮面试的时间安排大体以下。

  • 开头5分钟:通常对话。好比,自我介绍,聊聊项目经历等。
  • 中间20分钟:编程问题。好比,实现归并排序。
  • 最后20分钟:系统设计问题。好比,设计一个大型分布式缓存系统。这些问题每每与你以往的项目经历或面试官当前在作的工做有关。

当天面试结束后,你可能还会跟项目经理或其余人面谈一次。内容包括产品展现、你对雅虎的疑虑以及你手上有无其余公司的录用通知,等等。此次面谈旨在增进双方了解,一般不会影响你的面试结果。

与此同时,以前的面试官会讨论你的表现并尝试做出结论。最终录用与否由招聘经理决定,他会综合考虑面试官对你的正面及负面评价。

若是你的表现不错,有可能当天就会收到口头录用通知,但也不必定。也许他们要过几天才通知你,个中缘由不一,好比,你应聘的团队可能还想再面试几我的看看。

必要准备事项:

雅虎面试少不了系统设计问题,几乎成了惯例,因此,还请作好相应的准备。他们想要确认你不只会写代码,并且还能设计软件。要是没有这方面的知识,也没关系,你仍然能够给出本身的设计思路。

独特之处:

雅虎的电话面试通常由拥有决定权的人负责,好比招聘经理。此外,雅虎每每会在当天给出面试结果(若是你能入他们法眼),这一点很特别。在你进行最后一轮面试的同时,其余面试官也正在讨论你的表现。

 

本文摘自即将上市的《程序员面试金典》

相关文章
相关标签/搜索