鉴于前几篇日志仅仅是分享了面试的经历,并没有太多实质性的“有用信息”(当然面试流程,公司概况等等信息其实也是有点用的,不过远远不够),如果不写一篇有用一点的日志,估计要遭大家扔鸡蛋了。
很少有人国内毕业直接申请国外的公司,一般都是先去国外读书,然后找工作。或者加入该公司的中国分公司,再Transfer过去。因此我想总结一下这3个月来的面试经验,希望能给那些想毕业直接出国工作的同学一点实质性的帮助。
==================================================================
1. 申请
申请一家公司是有一定技巧的。首先,无论任何都要找到一个人帮你内荐。这点非常重要,盲目投简历很有可能别人看都不看,找内部员工推荐一来可以保证过掉简历关,二来可以帮你缩短面试流程。例如我Google的on-site面试只有3轮,应该就和有大牛推荐我有关系(感谢张懿同学,不过最后没接Google的offer,让你损失一笔小横财,实在抱歉,过去后请你吃饭)。
很多人说简历控制在1页以内,但我觉得这个并不是硬性要求,简历就是个敲门砖,我的简历就写了两页多,不过尽可能把重点内容放在第1页倒是有必要的。
我当时投了3家公司,主要是减低风险,如果一家公司面上的概率是50%,那么3家都面不上的概率只有12.5%,风险就小很多了。建议多申请几家,但是也不要申请太多了,除非你体力很猛,舟车劳顿和时差以及面试对体力的消耗还是不小的。
顺便做个广告,如果有人想去Facebook,欢迎找我内荐,不过前提是我认识你,或者我认识的人向我推荐你。
==================================================================
2. 相关知识准备
面试需要准备的知识是由职位决定的,而即便是同一个职位,不同的公司可能在面试时涉及到的内容也会有所差别。不过有一些知识是共性的。
数据结构与基础算法,这些知识是必考的。基本的数组,链表,堆栈,队列,二叉树,图必须要掌握,而且还要会写。算法的话考得最多的就是二分查找,排序,递归等等,像动态规划这种在OI中很pop的算法,一般在面试的时候不会考。
在这里要隆重推荐一个非常非常有用的网站:CareerCup(需要FQ)
这个网站上面有来自几十家公司的几千道面试题,主流的大公司几乎都有。我在onsite面试时就被问到过这上面的题目。这些题目的来源是互联网上的用户,大部分是去参加了面试,然后回来就把被问到的题目分享到这上面了。我们姑且不去评论道德方面的问题,不可否认作为面试者的我们是很喜欢这群人的…… =.=
面试前可以在这个网站上看一两百道最新的面试题(不一定局限于你要面的公司),一般都会有热心的网友解答,无论会做不会做都可以看看别人的解答,经常会看到一些让人心旷神怡的惊艳答案,很爽!对于一些自己觉得有必要写一下的面试题也可以把自己的答案post上去练练手。
我之所以前几篇日志没有透露具体的题目,一来签了NDA协议不便公开场合说,二来我被问到的题目很有限,远不如这个网站上的面试题丰富,CareerCup足以满足大家的需求。
(感谢朱家杰推荐了这个网站给我,对我面试的帮助还是不小的)
除了数据结构和算法,面试中问得最多的应该就是面向对象设计类的问题,以及一些计算机核心课程的知识(如操作系统,网络原理等等),所以可以在面试前对本科的课程复习一下。
另外我还想推荐一篇对我启发很大的文章:http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions
这篇文章是一个Google工程师写的。Google中的一些面试官电话面试了一些人,觉得他们不错,就让他们来参加on-site面试,结果来了之后才发现这些人表现很差,有各种各样的知识缺陷,于是作者针对这么一种现象,写了一篇文章,指导面试官们应该如何进行电话面试,应该从哪些方面来考察一个candidate。
文章提到了5个方面来考察一个面试者,我觉得写得非常好。如果你发现自己在某一个方面做的不太好,那就可以有针对性地充实一下自己了。
最后罗嗦一句,就是面试前尽可能每天写写code保持状态。例如我就是把Facebook官网上的Puzzle都做完了才去参加面试的。
==================================================================
3. 英语
由于申请的总部的职位,所以无论是电面还是on-site都必须用英语交流。如果是在国外念书,英语就肯定不成问题。但是对于像我这种从没出过国的人来说,听力和口语就可能比较欠缺了。
我头几次电面都因为听力不好让面试官和我都比较郁闷,基本上以sorry和excuse me贯穿始终。
为了提高英语我尝试去背TOFEL的单词(我没考过GT),但是效果相当不明显,基本上都记不住……
比较有帮助的是听VOA来提高听力,我一开始听VOA Special(听力实在很烂没办法),后来能力提升了之后再听的VOA Standard。每天坚持听,同一篇文章反复听,实在听不懂就看原文,争取听懂每一个单词。
除了听,还必须会说。首先要保证日常生活你能够比较自然地表达出来,然后就是专业知识你也能够表达出来,例如描述一个算法之类的。如果有些专业词汇没学过,建议专门补一补。
最好能够找到人陪你练习口语。我gf正在英国学同声传译,是个非常perfect的练习对象,每天一个多小时电话用英语聊天,明显感觉口语提高得很快。从以前的不太敢说到面试的时候能够很自然地和面试官聊天拉家常,偶尔讲个小笑话啥的,效果还是非常明显的。(感谢gf的耐心和对我的破烂级别口语的容忍。)
==================================================================
4. 电话面试 与 签证
一般通过简历关后,公司就会安排两场电话面试,45分钟一场,内容和上面说到的差不多。如果两轮面试都通过,公司一般会邀请你到总部进行on-site面试。这时候你需要有能够去美国的签证。我当时是让微软给我Fedex了一份邀请函过来,然后申请了一个B1商务签证过去的。邀请函只要一份就足够了,签证一旦申请下来。可以一年内多次入境,单次入境的滞留时间长达3个月,足够你面试n家公司了。
这里要特别提醒一句,如果可能的话,当你一旦确定能去美国面试,就预约签证。我当时犯了一个很脑残的错误,以为必须材料都办好后才能预约签证。其实随时都能预约,你只要保证面签的时候材料齐全就可以了。(如果时间来不及,可以考虑找中介办签证加急服务,当时我就花了2500大洋办了个加急。)
===================================================================
5. on-site面试
能够去on-site面试其实已经很爽了,因为公司会给你包来回机票,给你订4星级酒店,包你餐饮,交通等各种开销,基本上就像免费旅游似的,很爽,所以不要有太大压力。
如果有条件有钱,建议多预留几天出来调时差。有些人一天就能调过来,我调了一周才调过来,请根据自己的身体情况安排行程。
面试的时候最重要的就是要有自信,不一定要霸气外露,但是绝不能自己支支吾吾地不确定。
例如我在微软第4轮面试的时候,面试官问我可以写程序实现一下吗,我充满自信地说:"Sure. Of course!" 然后他就很happy地说:“I love that 'Of course'"。所以有时后装B并不是什么坏事,关键是你要装得像。
另外一点就是在前几篇日志中也说到的,随时告诉面试官你的想法。不要只顾着想一直沉默,要让面试官知道你在想什么,让他了解你的思考过程以及你思维的敏捷程度,同时当你想偏了的时候他也好引导你给你帮助。
最后一点就是,秒杀不是必须的,关键是思考过程。万一你一开头没有想到很好的算法,先不要慌乱,面试官会引导你一步一步地改进,只要最后能搞出来,你就胜利了。(我想这点应该是对的,否则我就拿不到Facebook的offer了。)
===================================================================
啰嗦了这么多,都是自己的一些看法,不见得都正确,希望能给大家一些启发。也预祝准备出国找工作的同学一切顺利,成功拿到满意的offer!