2018春招即将拉开序幕,你还在千辛万苦地寻找面试经验?面试前还在因未知而焦虑不安?

这个招聘季,我们为你整理了各大公司的面试流程与特点。所谓知己知彼,百战不殆,对于不同特点的公司采取不同的求职策略,这会让你的求职之路多一份淡定与从容。

SDE方向

 

 

Google总体的招聘特点是要在教育和项目背景上寻找TOP candidate

简历关比较好过,着重关注简历上的项目经历。公司看重整体能力和潜力,对于非科班背景出身的同学不会有限制。

对算法能力很看重,算法面试难度也会更高一点。尽管单纯的几轮算法面试很难准确判断候选人算法能力与综合能力,但Google坚持这样的考核制度是为了考察候选人头脑是否灵活,具有短时间内解决问题的能力。

Google的整个面试周期很长。因此,应届生在找工作时要妥善安排面试顺序。另外,Google也是比较注重refer的公司。

电话面试会用Google doc。难度会有波动,基本都是medium或者hard。也会遇到电话面试第一道题就是DP的情况。所以建议大家在面试Google的时候一定要准备充分。在还没有充分准备的时候面试Google不是一个明智之举。

Onsite面试会以来讲基本上考算法面试为主居多,5轮都是算法题的情况也是很常见的。算法面试中,虽然有题库,但很多面试官不从题库中抽取题目。基本考察以general knowledge为主的算法,难度普遍偏高,对候选人的期望值也会比较高。

面试T3 ,T4可以选择是否参加系统设计轮面试,如果选择考系统设计并且表现比较突出,package会高一点。选择不考系统设计,package不会给到特别高。

Google和Facebook都是general hire,但是Facebook有bootcamp。Onsite通过后,HR和recruiters会在这个过程中协助候选人完成team match。背景不强的候选人,分组时会被分到发展比较受限的组,并且会给出候选人可接受的范围之内给偏低的package。从这个角度来讲,刷题和项目同样重要,代码能力和项目水平都很关键。初期做准备时,除了刷题之外也要仔细地整理自己做过的项目。

Lunch buddy方面:Google的中午环节不写feedback。但其中仍有很多注意事项,如要积极跟Lunch buddy交流,比如问现在工作中比较challenging的地方在哪。候选人会在交流的过程中观察候选人是否和公司的文化,价值观相吻合,也就是culture fit in。

 

 

Facebook对于应届毕业生来讲不像其他一些大公司一样看重出身,比如GPA和学校的排名,但会比较看重内部推荐。不同的学历在面试fulltime和intern的难度是差不多的。

比如在简历很普通的情况下,如果碰到更好的候选人,那简历就会被筛掉,也没有面试机会了。但如果有人强推,是比较容易通过hiring committee的。从另外一点来讲,强推进Facebook还有可能升level。若之前不幸进入冷冻期,那么在冷冻期间有人强推的话,是有很大的可能性可以减短冷冻期的。内部推荐的另一个潜在好处是,如果有Reputation高的人强推,有可能就会免掉电话面试的环节直接Onsite。

Facebook这种大型公司,面试有以下几个特点

一、算法题是有题库的,但比较难预测。

因为有些面试官比较喜欢用题库,有些面试官就偏向于自己出题。题库里面的题目可以帮助面试官判断候选人的水平,因为同样的一套题可能已经测试了几十人,面试官会有一个更客观的标准,所以FB的面经存在有意义。Facebook,或者说任何考察白板编程的面试官都会看重在面试过程中的思路和沟通交流的能力。

Facebook在面试过程中比较在意三点,一是能不能快速的思考,二是思维方式是不是全面,三是在面试过程中能不能一边在白板上书写,一边和面试官交流。

二、编程题目的难度比较大,但整体比Google稍简单一点。

刷题是必要的,只靠刷面经风险很大。有经验的面试官比较喜欢问DP的问题。

Facebook的电话面试用的是CodePad。电话面试基本会刷掉75%的人。电话面试开始会出一道esay的题目让面试者迅速找到状态,之后难度会上一个等级。

Onsite基本是两轮coding,一轮design,还有一轮manager面试。其中senior级别的职位在面试过程中会有两轮的design。

Manager面试轮大概50%是考察的英文能力。是否可以讲英文作为工作语言进行流畅沟通,所以讲题过程中也需要和面试官多交流。另外50%的时间则是项目问询,也就是说面试官也会让写一些简单的coding,所以项目经历每一条都要准备的非常充分。另外一点是在面试过程中有些面试官给的反馈会影响到以后拿offer or package。所以每一轮都是很关键的。senior级别的职位在面试过程中会有两轮的系统设计。

三、Facebook的招聘是general hire,即统一招聘,不分小组。

进去之后会有六到八周的boot camp,训练营结束了之后,可以根据的兴趣和简历上的项目去找有空缺的组,通过双向选择的过程去拿到team match。New grad来讲一般从intern选取。社招如果有人推荐,在之后team match的过程中相对来讲容易一些。

 

LinkedIn是general hire统一招聘,非按组招人。简历筛选上侧重整体背景以及做过项目的难度

电话面试只有一轮,使用collabedit。题目通常有两道,包含一道简单,一道中等难度。在面试中遇到面经中题目的概率很大,因此建议在面试前多看些面经。

Onsite有两轮coding,一轮系统设计,一轮hiring manager,还有一轮technical communication。除了hiring manager这一轮之外,其他轮都会有两个面试官。

Hiring manager轮主要聊技术,写code的可能性不大。Manager会问到算法和简历上的项目以测试候选人的综合能力。Hiring manger这一轮是最重要的,起到决定性作用。Technical communication这一轮会把简历上的项目过一遍。会追问很多的细节,如过程中遇到的问题怎样被解决的。也会问些简单的behavior question。

LinkedIn是很看重系统设计的。面试中一定要和面试官多沟通,了解有哪些假设,哪些限制。

整体来讲,LinkedIn的面试透明度很高,hiring committee负责汇总所有面试官的意见。出结果也很快。切忌不要在LinkedIn加面试官,问面试结果。

 

Amazon招聘特点是快速寻找到适合职位的人,快稳准

Amazon有正规面试比较搞怪的面试。正规面试即包含phone screen和Onsite。校招基本上是在线测试和Onsite。

首先,在线测试题目不难。有很多的小要求,比如OA测试前要将电脑拿起来转一圈,以确保周围没有人协助,符合要求才可以开始做题。做题过程中要保持电脑摄像头处于打开状态,全程会有人监控。

在OA过后或者之前会有HR轮电话面试,问一些基本情况,也包含一些基本的behavior questions。Amazon的leadership principle是面试的常考题,考点包含leadership principle的内容有哪些,共有多少条?以顾客为中心的公司会很在意culture fit in。应届毕业生不会有系统设计,但是会有些简单的设计题目。

Onsite共有五轮。其中一轮是Amazon有个特有的bar raiser面试。Amazon bar raiser基本由等级比较高的工程师来面,都接受过面试方面的培训,有比较恒定的标准。Bar raiser具有一票否决权,目的是确保候选人的水平符合公司的标准。

群面,也是搞怪面试。共有两轮,是在现场进行面试。Onsite过程中,二十个人到二十五个人会被分派到一个房间,里面有六至八名面试官,三至四个HR。

群面第一轮是小组项目。首先是组队,每组三人。每队的题目相同,但面试官会给出三种不同的解法。每一个解法会对应不同的时间复杂度或是空间复杂度。小组三个人需要讨论给到的时间复杂度是否正确,并对三个方法进行排序。在讨论排序过程中面试官会来回走动,观察并记录个人表现。交流方式会影响们小组的最终成绩。因此, 切忌在这个过程中不主动,或是过于强势。另一个问题是,面试官也会观察团队经过商议推选出最终汇报人的过程。全部排序后,每个组会通过presentation将最终排序结果展示给面试官。在汇报过程中,要讲清排序的原因。

第二轮基本上是个人面试,每个人都会有一台电脑,在规定时间内做出三个milestone,前两个是required,最后一个是加分项,就要看个人的时间和能力了。每个任务之间是相关的,第二个题目以第一道为基础。做题目的过程中需要和manager进行讨论。做完第一个题目需要和manager交流一下,是如何完成题目的?第二个题目打算怎么做?为什么选择了这个数据结构和算法?交流保持在15-20分钟。

Amazon Return Offer的比例较高,但是拿到实习的同学也不要掉以轻心。公司中午提供午饭,可以利用中午时间多了解一些讯息。

 

Apple招人的特点是简历筛选上注重工作经验和所做过的项目的难度

Apple电话面试是按组招人的。不同的组的风格不太一样。如果面的好,一轮就过了。如果面试不好,有加面,最多加面3轮。上一轮的面试反馈会给到下一轮面试的人手中。CodePad答题,难度上medium居多。如果电面答题答的快,也有可能考察简历上的一些内容。

Onsite面试基本是五轮,其中至少会考三轮算法一轮系统设计。系统设计基本上是根据简历上的项目提问,会要求画架构图。这个要在面试前做好准备。准备时可以问自己三个问题:第一是在这个项目中都做了什么,个人贡献是什么?第二点都用到了哪些技术栈。用NoSQL型数据库为什么不用SQL的数据库?这些东西准备要充分。最后一点是画架构图,思考如何优化。还有一轮是和manager聊天。通常一半时间是问一些behavior question和另外半轮是系统设计。

Apple面试周期较短,基本上三天到一个星期就会有最终结果。面试的时候也要看运气,不同种族的小伙伴面试难度会有差距。Apple分组面试的好处是一个小组挂了,如果其他小组有开放的职位还可以去面试。

 

微软简历筛选没有什么特别,也是会注重项目的难度不太注重referral

微软有在线测试,在线测试有时会替代电话面试。OA完了之后可能直接Onsite,也可能还需要电话面试。OA时长一个小时,会考三道题,对速度要求高。如果仅完成二道以下的题目,不通过的概率非常大。这三道题基本都是medium的难度,没有题库。会用到collabedit写代码。

微软是按组招人。Onsite通常有五到六轮,其中一轮是behavior question。会有一些Hiring event,比如200人的organization需要招人,如果指标是招三十个人,会选五十个应聘者来参加。五十个应聘者在一天完成面试工作。每个candidate基本上是4轮,半天结束。面试者每个人有自己的小房间,面试官来回走,大家轮流面试。Onsite四轮过后是在一个大的organization进行team match。

面试特点也是以general knowledge为主,算法难度中等偏上,对面试者的期望值稍高。系统设计针对有经验的工作者会比较多。微软Onsite面试也是没有题库的。微软是hiring manager和feedback招聘制度。每一轮的面试官会把反馈给下一轮的面试官,如果中途又一轮表现非常不好,公司会直接中断面试(early termination)。

 

Paypal是按组招人。内推和一些内部的消息会加速面试过程,team match上也一定优势。简历筛选上按照skill set来筛选看重学校的排名和项目经历

电话面试使用CodePad编程,中等难度。时间是45分钟两道题,考察答题速度。一道题需要有两种解法,速度慢并且思路问题会直接被淘汰。如果只是速度问题有可能会被加面。

Onsite有四到五轮。每轮都是45分钟白板做两道题。如果前四轮有一个面试官给的评价特别糟糕,面试会直接结束。有一个小的暗示是如果能到第五轮(manager面试)基本是会拿到offer的。对于应届生,有四轮算法题,没有系统设计题目。对于有经验的求职者是三轮算法面试,一轮系统设计。

Lunch buddy:由于是分组面试,午饭基本上分到一个人带领,也可能就是下午的面试官。午饭聊天的过程中一定要谦虚谨慎,但是也要谈笑风生,大方得体。

分组面试的好处是,如果一个组面试失败,只要另外一个组有opening,还可以 投递简历。进到公司后会有4天的culture training,之后会分组。每个人都会有一个导师。

 

SAP的简历筛选比较严格,背景非常符合才会发面试邀请。

电话面试方面,会用企业版的Skype。电面会针对简历上的项目问的很详细,基本不考算法。Onsite面试会持续3-4个小时,一上午(9:30-1:30)或是一下午(1:30-4:30),会有两轮算法题,一轮系统设计,一轮manager面试。

目前来讲在冷冻期内的同学比较多,但是也有特别优秀的同学拿到了Offer。面试有些时候不走寻常路。有时候会有群面的可能性。

针对应届生, SAP有一个next talent program。这个项目入职培训需要轮岗,第一年会在四个组之间轮换。之后要进行方向选择。项目的优势是一年之内会到四个不同的组去体验,能接触到很多工业级别的项目,写在简历上也是非常漂亮的。缺点是在每个组体验时间很短,可能跟每个组的领导者和同事建立的联系不会很深入。而选组完全是依据和领导的交流。如果选择的组恰好有位置,是比较容易拿到offer的。也存在没有选到组的情况,对此大家要做好准备,在项目过程中尽量好好表现,展示自己的长处。

 

雅虎虽被收购,但待遇还是不错的,员工福利也很好。简历筛选上看重过去的经历,尤其是做过的项目的深度

电话面试流程比较常规,45分钟左右,会考察1-2道面试题,考察点基本上是算法加上闲聊一些简历上的东西。

Onsite基本上是五轮,四轮算法加上一轮和manager漫谈。算法每轮都是45分钟两道题。上午是三轮背靠背算法面试,背靠背的意思是三轮连接非常紧,两轮间有短暂间隔。这里的一个小建议是每轮后一定要留有至少5分钟的休息时间,以保证体力。第二点是,要准备纸和笔。面试官可能不会提供纸和笔。作为辅助没有问题,主体内容还是要在白板展示出来。

中舞会在公司吃饭,下午考算法和与manager聊天。算法难度不会特别大,如果出现了hard也是比较常见的hard的问题,基本上不会出现难题偏题怪题,但是会把这些问题包装成一些现有的问题,需要自己要去分析。

 

不在意的候选人背景和专业,只要能力过关即可。

面试没有题库,难度比较普通,没有很多难题或偏题。对于应届生,流程是校招后进行在线测评,然后是onsite。对于社会招聘会有一轮电话面试。onsite包括两轮技术面,一轮manager面,一轮HR面试。

两轮技术面都是中等难度题目。第三轮manager会聊一些兴趣爱好,出一道简单题目来考察code style。最后一轮是HR面试。

Coding是写在纸上而不是白板。和PayPal比较相似的是,如果面试到manager那一轮还是非常有希望拿到offer的。

比较特殊的是有时候会出些智力题。建议平时多去搜一些brain teaser题目。也会问behavior question,有一些leadership principle。

入职后CS背景的同学会有1个月的boot camp,非CS背景的同学会有2个月的boot camp。Boot camp最后会有一个分数,低于80分会直接被淘汰。Boot camp之后就开始选组。

Data Engineer方向

 

Google的Big Data Engineer面试会有1-2轮算法题,1轮系统设计题。

系统设计题非常体现面试者对开源框架的熟悉程度和对整体数据架构的把握程度,且不像是算法题reverse a link list,它本身没有标准答案。比如,如何设计一个vending machine的数据系统,这个题目比较偏向于OOD的形式。系统设计重点考察解决问题的思路。算法题刷到中等难度就足够了。

Big Data Engineer的系统设计和软件工程师相比更注重数据伸缩性,即面对系统的数据量快速增长的情况应该如何设计。系统设计可靠性也非常重要,设计的时候一定要考虑到高可用性,有些机子挂掉了,是不是还能保证很多系统正常运转。

 

 

Facebook首先是两轮电话面试,各45min。可以选择同一天back to back两轮电面,或者是分开两天进行电面。两轮电话面试面分别是Coding 和 SQL。

第一轮 Coding Interview: LeetCode Easy难度的题

第二轮SQL:车轮式SQL面试。45min内平均可以完成7-10道SQL题目。考核内容分为:group by, having, inner, right/left/full join与where clause类似的statement。

Onsite前会有preparation call。会有一名工程师来聊一聊面试的流程, 还会给些preparation material。里面包含五个面试要考察的方面:商业/产品思维,数据可视化,数据建模,SQL,编程。值得一提的是,在business/product sense里,recruiter会提出好几个公司最近的Earning Report,这个一定要好好看好好领悟,面试题基本上都跟ER里面提到的维度,metrics有关!

Onsite共三轮,强度要比面Software Engineer小很多。每一轮面试难度和模式基本一致。过程基本是面试官提出一个很粗略的问题,比如产品经理要看用户的日活/周活/月活,应聘者考虑其中涉及的维度。这些维度,如用户的国家、年龄、性别、所用设备等,在ER中都有所提及,因为ER要仔细阅读。

随后面试官要求用图表显示data,一般都是用Line, Bar,最多用到Pie。比较流行的数据可视化工具,比如Tabulae里面fancy的图表都用不到。数据可视化这一块考的会很“朴实”。很多来BitTiger做讲座的面试官也提到,Facebook内部一般用自己开发的可视化tool,就足够满足平常的需求了。

和面试官讨论清楚dimension和最终的图表之后,面试官会要求进行数据建模和建立 ETL pipeline。这里的ETL步骤简单很多,基本上一到两步就可以完成,其中SQL也没有那么多复杂的逻辑。在Facebook,data engineer每天的coding并不是最重要的,重要的是和product多打交道,多多深入了解product,这也是为什么data engineer属于product,而不是engineer部门。