面试经验分享平台

将近几年的名企精品面试汇总、筛选、整理,再分享给大家
经验详情
一篇大神的面经 秒杀ms google facebook总部


这几天宅着人都变懒了,还是更新一下日志吧。

Google是我面试的第二站。18号面完MS,19号从Seattle飞到San Jose,一切都很顺利。值得一提的是美帝的飞机上是可以用wifi上网的,可惜不免费。

面试安排在21号,所以20号可以自由活动,我决定提前去Google Campus里踩点+蹭饭。

Google的Campus也很大,building外放着免费的自行车,让人们可以很方便地在园区里穿梭。

在42号楼等张懿的时候,我还发现building的玻璃门上贴着很多通知,各种公司组织的活动,例如免费观看电影什么的,真不错。

中午和张懿在Google的其中一家餐厅吃海鲜火锅。在这里吃饭都是免费的,早中晚顿顿都是自助餐。我们拿了好多海鲜和蔬菜,吃得那叫一个爽啊~而且冰箱里还有各种饮料,另外还有水果,甜点什么的,随便拿!(后来听HR说Google的园区里有20家餐厅,各种菜系,满足你各种不同的口味,太给力了!)

吃饭期间遇见了7年多没见过面的尹振华同学,当年一起搞竞赛的日子又浮现眼前。

吃完饭我就去旁边的计算机历史博物馆逛了两小时,那里实在太大了,看到一半我就困得不行了(时差还没倒过来),便打车回了酒店睡觉。

晚上仍然很精神,第一次倒时差果然是困难重重,不过怎么也比面MS的前一晚要好吧,无论如何要秒杀他们!

==================================================================

Google的onsite面试很短,只有3轮,从上午10点半到中午2点,比MS厚道多了。

HR先是跟我描述了一番Google有多好多好,她已经在这里爽了8年了。例如环境优美,伙食无敌,娱乐丰富等等,还说一进来就会给你发一台Macbook(后来我去了张懿家才发现,他们家的头戴耳机,蓝牙耳机之类的东东,都是公司的……)。HR还说硕士生一进来年薪就有6位数,还有些股票(说得真好听,其实就是10XXXX,交完税只剩下6万了)。

第一位面试官迟到了,HR还联系不上,我们只好等。HR说这里的人都迟到,我之前还以为外国人比较守时,看来和国内一样……

她为了避免冷场就和我扯东扯西,我困得要死,真想跟她说咱们能静静地等么……

==================================================================

等了15分钟,第一位面试官终于来了,是个外国帅哥,口音纯正。

由于时间不多了,我们没有任何交流和暖场环节,直接开始说题目。

他的问题刚问完,我心里就乐开了花。这次是我给提高组的小朋友们讲课的一道例题。rp爆发了,有木有!!!

不过不能太嚣张直接写code秒杀,波兰mm楚楚可怜的样子还萦绕在我心头啊~

我强压住内心的喜悦,装思考状。数到快30秒的时候,跟他说我有一个想法,但不知道是不是最好的,能不能说一下。(太虚伪了,有木有!!!)帅哥当然很鼓励。

然后我就说了一遍算法,中途还装作有些不确定要思考一下。(可以拿影帝了……)

说完后帅哥很满意,说他觉得没有比这个更好的算法了。哇哈哈哈!

然后就是code了。前半部分很快就写完了,但是后半部分卡了一下,比较失误,递归的时候需要返回两个值,比较麻烦。帅哥让我可以考虑用非递归写。我就开始写非递归。写了一半发现卡得更严重,丢人丢大了!又改回递归,用一个自定义的struct作为返回值。囧啊!!!

不过还好都写出来了,本应秒杀的题竟然费了不少周折。想问题的时候特别困,明显感觉脑子转不动。建议大家有条件的话尽可能倒完时差再去面试!

然后我们就进入聊天环节,这个帅哥是做Google社区的,当时第一反应就是这难道不是Google里最悲剧的Team之一么。然后我就跟他扯利用社区里的用户信息来做精准广告平台之类的事情,这也是我最想加入Facebook做的事。

我们聊着聊着,第二个面试官就来了。

===================================================================

第二个面试官看起来30多,有一定资历了,但是只在Google工作了一年半,在Youtube Team,负责视频版权审核的后台部分。他是从Apple跳过来的。我当时马上就问他Apple这么nb,为何要跳槽。他说在Apple里面,开发计划是绝对不可能完成的。每天都处在赶进度的状态,长时间下来就非常累了。而在Google里任务是有可能被按时完成的,所以他就过来了,而且很enjoy。(果然是领导人决定了公司文化,乔布斯都快累死了,底下的员工肯定没好日子过的……)

还记得刚开始创业的时候,没有任何管理经验。制定任务计划这种管理中最重要的知识自然就需要花大力气去学习了。任务如果定得太松,员工会产生惰性,效率会低下。但是并不是说计划定的越紧效率就越高。如果你的计划总是无法按时完成,员工会失去激情,缺乏成就感,并且久而久之还会产生“反正任务肯定完不成,还是慢慢来吧”的想法,这样就失去意义了。

闲聊了一会儿后他开始问问题,先是数据结构的问题,虽然涉及到一些比较复杂的数据结构,但是不用写code,因此轻易秒杀。

然后就进入coding环节。问了一道普及组难度的题目,当然可以有提高组难度的解法。我先说了最简单的算法,然后再说nb的算法。但是就在“Matrix”这个词刚说出口,他就马上打断了我:"No no no, don't do that!"

原来面试的时候并不是一定要实现最fancy的算法,他们考察的很有可能是你在处理一些简单问题时思维是否严谨。还记得我在国内的Freewheel面试时,一位面试官就跟我说,他不懂什么算法,他们用得最复杂的算法就是一个0-1背包。

code很快就写完了,他检查了两个别人最容易错的测试数据,我的程序都通过了。因为我有一个习惯,就是写程序的时候会别写边想测试用例,尤其是边界情况。

然后他又给出设计某个网站的需求,问了一些数据库设计类的问题。这一年架构师还真不是白当的,轻松秒杀。

接着又是一些操作系统的知识,由于不是很深,还是秒杀。

他看我啥都懂,就问了一个C语言比较偏门的知识,依然秒杀。

最后我都忘记他说了多少次terrific了。反正这应该算是面得最最顺利的一次,面完之后睡意全无,信心暴增。

==================================================================

接下来就是午饭时间了,一个Google员工会带着我去吃午饭,当然不像MS那么变态,Google的午饭不是面试环节。

我一看门外来了一个亚洲人,还以为又是上海人,很鸡冻啊!可是他跟说我英语,口音还挺重,真失望……是个南韩人……

然后我们就闲聊啊,原来他和唐灿是同一个大学同一个专业的,搞密码学的博士后。后来他毕业后发现他研究的东西根本用不上。业界都喜欢用现成稳定的技术,例如加密就是AES,DES,哈希就是SHA-1,MD5,PKI就用X509,Kerberos之类的。就算你研究的新算法更安全,别人也不一定相信,更不愿意去更换。

我以为我小学3年级开始学编程已经够早的了,结果他6岁就开始学了,真bt……不过现在的90后00后应该更早吧,我大舅的儿子3岁就开始天天玩电脑了……

中途我们也免不了会议论其他公司,例如MS和FB之类的。Google有很多人跳槽去了Facebook,估计都是奔着股票去的。而且Facebook的待遇比Google还高。但是他所在的Search Quality组一个跳槽的都没有。他说他们组做的事情很有意思,也很有成就感,大家都不愿意走,建议我去他们那儿。他还说现在Facebook的泡沫很大,股票也快分完了……

吃完饭我们回到building里继续聊,不得不说Google的工作环境实在是工程师的天堂,非常舒适。

MS很有钱,刚进去的new grad就能有私人office,但是这样不利于交流。而Facebook虽然很open,但是略显简陋,一个大工厂摆了若干排桌子,一抬头就能看见上百人。Google介于两者之间,有完全open的工作环境,但是不大,也有几个人的房间,很有利于交流,大部分都不是私人office。

Google的building里有各种娱乐设施,我和那个韩国人聊天的时候,旁边就有几个人在打桌球,还有很舒服的沙发,茶吧之类的。乒乓球,健身器材,甚至还有专门的免费按摩间(要给小费)。实在是太爽了!

==================================================================

中午1点15分是最后一轮面试,这次是一个Search Quality组的一个女生,也迟到了一点点。

她又问了我一道我给提高组小朋友讲课的题,这次我就懒得装了,直接说算法,写code秒杀。最后杯具地发现题意理解错了,口音害死人啊有木有!

题意一变这算法就不太一样了,不过我在一分钟内又将她秒杀了,马上写code,无bug通过。她称赞说写得真快,写两个程序还比别人写一个快……

其实还是很丢人,同一个错误犯了两次了,无论你有多激动,都一定要和面试官确认好题意,以及数据范围,然后再秒杀。

接着她问了一些搜索方面的知识,这个我可是有备而来的。面试前基本上把google的核心技术都过了一遍,什么MapReduce, BigTable之类的,所以很轻松就答上来了。

她很满意,看着还有时间,就又问了一个普及组难度的题目,用她的原话说就是"Candy Question",让你爽一爽的。

===================================================================

结束后是两点多,和张懿挑了一家餐厅聊天。发现人还不少,Google工程师真是自由啊。那家餐厅下午会有各种免费的鲜榨蔬果汁供应,非常健康~

从Google的两轮电话面试和三轮onsite面试来看,普遍比较简单,但是范围很广,如果你什么都懂点,那么面Google应该会比较轻松。

再次感叹Google员工的生活质量,真的是天堂,被评为最佳雇主的Google确实名副其实!

===================================================================

后记:面试结束后的3天都是休息时间,自己去San Francisco玩了一天,和张懿夫妇,尹振华夫妇,还有Helen夫妇去Santa Cruz的海边游乐场玩了一天,晚上回来还吃到了美味的海鲜粤菜。湾区真是个好地方!





美国面试之旅——微软面试 2011-04-29 17:57 | (分类:默认分类)
微软的总部在西雅图,也是我的第一站。

西雅图是著名的风景胜地,雪山,湖泊,森林,让人充满期待。

第一次出国的心情是很复杂的,尤其是在飞机快要降落那一刻,看着地面上陌生的景色,心情非常激动。

16号中午到达西雅图,18号上午面试。

重感冒非常难受,每天一大卷纸的消耗速度,本来唐灿还想带我去吃海鲜,看来这只是个遥不可及的梦想了。

另外时差是个很严重的问题。晚上会很精神,难以入睡,而白天则昏昏欲睡。特别是17号的晚上,11点就躺下了,可是一直睡不着,直到早晨7点,也就是天朝的晚上10点,我才勉强入睡,但是面试时间是上午10点,所以9点前就要爬起来了。精神状态实在是太低迷了。早饭两杯咖啡下肚,把后面的精力先透支一下吧!

于是我就在睡了2小时的病号状态下,在微软从上午10点面试到下午6点40,近9个小时啊!惨绝人寰啊!!!有木有!!!

去MS的路上还下着雨加冰,很冷。对于我这种不喜欢下雨的人来说,西雅图真不是一个理想的地方。 


去到微软后我的HR接待了我,一开始念错了我的名字,直接遭到了我的无视…… -_-b

然后HR就跟我介绍了一下今天的面试安排,她和我一样也感冒了,所以话说得不多,没怎么吹嘘微软有多好多好。但是却告诉了我一个很蛋疼的消息,我被安排成面“软件测试工程师”职位!

这实在是太蛋疼太吃X了。我申请的明明是开发工程师,却让我面测试工程师。并不是说在微软做测试不好,但是我对测试完全不感兴趣啊。这不是摆明了忽悠我吗?!

但是我并没有很生气,心态很快就调整过来了。因为我去MS面试的目的只有3个:报路费,调时差,练手。所以面开发还是面测试,也无所谓了。

微软的campus非常大,环境也无敌好,空气冷冷的,很清新。园区里的building有很多,去别的building都要坐车。微软雇了一群人在园区里开shuttle,免费带着你到处去,真tm有钱!

===========================================================

第一个面试官是个波兰mm,很pp,而且很热情可爱,经常自己说着说着就high了……-_-b

一开始都是一些暖场性质的问题,不过当她问我"Why SDET(软件测试工程师)?"的时候,我就特别囧rz了。我告诉她我申请的是SDE,然后就轮到她特别囧rz……

接着就是coding环节,第一道题很简单,属于我给普及组的小朋友们上课的难度。我啥也没说直接在白板上写程序把她秒杀了。不过由于题目她没说得太明确,我写完后才和她交流,发现一些参数的范围和我预设的不同,于是又稍微改了一下程序。

她教育我说要think it loud,不要上来就写程序,应该把想法先说出来。如果我早点和她交流,就不用写完又改了。这个确实是这样的,虽然我一直觉得上来啥也不说直接秒杀比较cool,但是万一你方向搞错了,就丢人了。于是从这次面试起,我都牢牢记住了think it loud这条法则。

第二个问题是我在系BBS上看过的题目,心里很happy有木有!这次我就不直接写code了,向她请示了一下说“我先说说我的想法?” 她也很happy,脸上写着一副孺子可教的表情~ 但是这副表情在我说了几句话之后就彻底改变了…………

她崩溃了,她抓狂了,是的,她被秒杀了………… =.=

她很沮丧,连"it sucks"都飚出来了。她说她很沉醉于引导面试者的从2b算法想到nb算法的思考过程,结果我直接轻描淡写三言两语就把nb算法说出来了,让她太没成就感了!(废话,哥哥我就是搞算法的)

我一边安慰她别沮丧,一边问:“我现在开始写程序咯?”

她貌似还没缓过来,很激动地说:“不用了亲!不用了!”

由于两题都秒杀,所以面试时间剩下不少,我便和她搭讪聊家常,逮到一个美女不容易啊~ 哇哈哈哈!!!

她来美国的原因是为了加入微软,加入微软的原因是工作压力小,福利非常好,生活非常爽。

===============================================================

第二轮面试叫做lunch interview,就是一个面试官和你一起吃饭,然后问你一大堆问题。当然不是coding的问题,而是问你一些职业规划啊,遇到一些工作中的场景或问题你会怎么做啊之类的。

面试官是一个上海人,于是我们就直接讲中文了,还是挺爽的。这位面试官在交大毕业后就去日本了,然后来了美国,在MS工作了10年。

由于是自己人,我就很放松,说话基本不经脑子…… =。=

他说我的职业规划是他以前面试从来没见过的,没有人在面试微软的时候会说自己5到10年后要创业。(估计大部分人进MS就想着养老了,那些要创业的故意都隐瞒了一下,我太诚实了!有木有!!!)

然后聊到了西雅图著名的常年雪山,他说如果你喜欢滑雪,可以早上开车20分钟去雪场滑个雪再来上班,有不少人都这样。(MS太nb了,怪不得效率低啊!生活这么爽,人就懒了。回想这一年来创业的苦日子,每天9点按指纹,就怕晚了1分钟扣工资,差距好大啊!有木有!!!)

==================================================================

第三轮面试是一个在微软工作了二十多年的Test Lead。她从波兰美女那已经听说了我申请的是SDE,没有test相关知识。可能就要求放得比较低吧。

在我秒杀coding环节之余,她还耐心地教我一些Test方面的常识,很nice。

在她面前感觉就像小孩一样,霸气比较收敛,很难形容那种感觉。

==================================================================

第四轮面试是最有意思也是聊得最high的一轮面试。

面试官也是一个Test Lead。在MS十多年了,个个都很资深有木有!

他刚把我领进他的办公室,就马上坐下,腿就放到桌子上了!相当随意啊,这才是搞技术的有木有!!!

照例相互自我介绍了一番后就是coding环节。他说他知道我很喜欢这个环节,我说是啊,边说着就已经开始兴奋加期待了。

和前面的coding环节一样,仍然是华丽丽的秒杀,他很满意,我也很爽~

然后就问了一些测试方面的问题。其中一个问题我说我会雇佣一个人来进行压力测试,看看我测试的那个东西在使用多少次后会坏掉。他很疑惑地问我为何不用机器来测。我说,在我们天朝,人力比机器便宜多了!……他爆笑~~

之后我们就开始聊工作聊生活,他说他喜欢做测试工程师的原因是因为他喜欢发布bug,以及在别人提交修复这个bug的代码的时候,再挑出这段修复代码中的bug……@_@ 很绕的感觉,说简单点就是三个字:爱找茬!

这个computer geek和我当初在MS实习的mentor感觉很像,透着一股nb的气场,我很喜欢,我们聊得很开心。

==================================================================

第五轮面试是一个80年代就在微软实习的人,那时候他参与到了Windows 1.0的开发,真nb!现在他已经是一个Test Manager了。

这轮面试是让我最难受的一场,一来精力消耗得很厉害,脑子有点迟钝了,二来这个人有一个很让人痛苦的面试技巧,就是无论你说啥,他都会问你一句:“Why?”

这是很让人难受的,因为当你说出一些很自然不需要任何原因的话后,被人问个why,就有一种被雷到的感觉,然后自己想半天也想不出个为什么,因为这就是很自然的有木有!!!

不过我算是学会了,以后我面试人也要这样,搞死他,哈哈哈哈!

这次的coding我还是直接给出了算法,然后很快就实现了。不过这次的代码出现了一个小bug。搞了半天没找到,最后还是他告诉我的,唉……失败啊。

中途他问了很多你可能从来不会去想的问题,让我很痛苦。最后他又问我有没有更好的算法。我就想啊想,头都想爆了,只想到一个很小的优化,非常小。最后他看我还是想不出来,就说算了。

到面试的最后环节,他问我有没有问题要问他,我立马就问那个更好的算法是什么? 结果他说他也不知道,我的这个算法已经是他知道的最好的了,而且我给的那个优化也已经是比他以前知道的优化都要好了。我顿时有一种上当的感觉,白白死了一大堆脑细胞啊!!!坑爹啊!!!!有木有!!!!!

===================================================================

当我面试完走出building,已经是6点40了。可以说早晨那两杯咖啡很给力,我还是撑过来了。

微软给我的感觉还是没什么变化,跟我3年前在那里实习一样。生活悠闲,福利超好,工作环境好,压力小,很适合养老的一家公司。但是缺点也是明显的,就是效率低下。还记得当初我实习的时候,mentor布置我一周的任务,我一个下午就完成了。我在定开发计划的时候,MS的员工看了都大呼aggressive,连连摇头,最后我还是提前完成的。在我刚去实习的时候,mentor说希望我能每周发布一个版本,结果后来是每天就发布一个,我走的时候那个软件的完善程度已经大大超出了他们的预期。

我想我还年轻,刚刚毕业,不想在这样的工作环境中开始我的carrer。我理想的工作环境是很忙的,总有做不完的事情,每天都有进步,精神饱满的来,成就满满地回去。

===================================================================

后记:我在回帝都那天收到了MS的通知,HR说我的面试反馈显示,他们一致觉得我更适合做开发工程师,另外有一个开发工程师的团队很想招我进去,希望能在这周再安排两场live meeting的面试。

MS是在是太蛋疼了,绕了一大圈得出这么一个结论,我本来就是去面开发工程师的有木有!!!真是劳民伤财。我想我不会再参加额外的这两场面试了。Facebook和Google已经能让我很满足了~





美国面试之旅——Facebook面试 2011-05-06 12:18 | (分类:默认分类)
郑重声明:

1. 本人由于跟每一家公司都签署了保密协议,无法透露任何具体的“有用信息”,如具体的面试题目,被问到的具体问题等等,敬请见谅。尤其是Facebook的保密协议非常狠,以下是原文摘抄:

“Applicant will keep in strict confidence all information (whether of technical, business or other nature) observed by Applicant while onsite or disclosed to Applicant by Facebook or any of its employees, agents or contractors (collectively,“Facebook Parties”).”

“information”这个词实在是太宽泛太狠了!有木有!!!所以我写这些日志其实是有点担心会出问题的。



2. 写这几篇日志的主要目的是分享一下onsite面试的所见所闻所感,对于那些希望得到有用信息的同学,我会在之后发一篇面试经验总结的日志,里面会说说怎么准备面试,以及面试时需要注意的一些问题,同时也会推荐一些有用的文章和网站。当然,这只是我的一些个人观点,不见的都对,不过不管怎么说,总比这几篇破日志实用得多,敬请期待。



3. 也许有人会觉得日志有装B嫌疑,我只能说我可以保证日志所述内容100%真实,无任何夸张成分。各位看官如果实在觉得恶心不能忍,请直接无视+绕行。

==================================================================

Facebook的面试安排在了25号,面完第二天就回帝都。

面试前的几天都在玩,面试前一天见到了朱家杰,自从本科毕业后就没见过了。他在UCLA博转硕去年加入了FB。我们聊得挺high的,中午去吃川菜,晚上海鲜自助。还参观了他租的房子,和前几个朋友一样,房子都相当不错,但是70多平米一个人住,未免空虚了些。

也许是MS和Google面得太好,让我信心暴增以至于觉得不用任何准备了,天天吃喝玩乐,也不练英语了,好不快活。

Palo Alto据闻是个富人区,但东边有一片治安不太好的区域,大家都叫我别去哪儿。Stanford就在Facebook的边上,和我住的酒店就隔着一条街,我想在面试前一天好好逛逛这所让我仰慕已久的大学。

Stanford的西北角有一个Plaza,家杰推荐我先去那边逛逛。这个Plaza环境极其优美,有非常多好看的花,在这种环境下逛街简直就是心旷神怡啊!不过碰巧那天是周日+复活节,好多店铺都没开门。

逛完Plaza之后想去逛Stanford的校园。但是走了十多分钟后发现Stanford实在是太大了!如果生生走一圈看完整个校园的话,至少一个多两个小时,非累死不可!最后决定放弃返回酒店宅着,等以后过来了买辆自行车再好好逛逛。

=================================================================

Facebook的面试11:15开始,2:45结束,也是3轮面试。

目前Facebook还不算大,只有两座building(各两层,一座是工程师,另一座是诸如HR,市场,销售之类的人员)。我去到后就在门口的接待处等着。这时候和我一样在等待的面试者还有一男一女两人。

过了一会儿,Aimee出来迎接我了,更准确的说是迎接我们3个。她带着我们3个人先是逛了一遍Facebook,看看大家的工作环境,给我们介绍各种相关信息。来面试的那个女生还会不时问些小问题,听口音是美国本土的。

Facebook的工作环境有点像一个工厂,一排一排的桌子,每排桌子两边都可以坐人,各坐4~5人左右,中间没有挡板。整个就是一大开间,容纳了上百人。(Mark就在一个大家都能看见的玻璃间里工作)。员工之间一扭头或者一转身就可以直接交流,非常open,因此沟通的效率会比较高。

Facebook的设施比较简陋,我只看到有一张乒乓球桌,外面一个篮球场。可能还有一些没看见,但是不管怎么说,和Google比起来就差得不是一点点了。不过最基本的饮料和零食还是必须有的。总的来说,工作环境就是一家创业公司。

Aimee带我们逛完一圈后就领着我们去饭堂吃饭。Facebook只有一家饭堂,而且比较小,很匮乏啊!不过据家杰说每天都会有不同口味的菜,大厨也是从Google挖过来的(原来Facebook不仅仅从Google挖工程师……orz)。

吃饭的时候我们3个candidate自然免不了会闲聊一下,同时还有一男一女两个FB的员工坐过来和我们聊天欢迎我们。

最先的问题自然就是你从哪里来,在那个大学之类的。我好奇地问坐我对面的那个女生,毕竟搞CS的女生不多。她说她是MIT的。wk,我的霸气顿时少了一半!有木有!!!这还不要紧,她话音刚落,旁边的那个女生就来了一句“me too”。wk,霸气全无了!顿时觉得矮了一截啊!!!

她们问我是哪个学校的(唉,躲不过啊),我说我从清华来的,这时候引来了一小会儿的沉默,来面试的那个MIT女大有准备低头继续吃饭的趋势。看来她是没听过清华了,但是我没忍住又问了一句:"Have you heard about it?"。MIT女很无奈地表示没有听过……囧rz,就知道是这样的,就知道是这样的,干嘛还问,叫你嘴贱!!!

不过另一个MIT女帮我圆了一下场,说她听说过清华,她以前在MS北京工作过。

一顿饭下来霸气值被清空了……Aimee很热情地带了一些纪念品过来送我,有T恤,笔记本(不是电脑!),还有一个水壶。然后带我去面试的地方。

=================================================================

第一轮面试的面试官一进来,我就被镇住了! 因为这已经是我第3次看见他了!第一次是在门口等待的时候,第二次是在Aimee带我们参观楼下的时候,但三次就是现在了。这么多人,谁我也没记住就记住他了!因为他特点太明显了!

他的体型和超人是一样一样的!!!比我高一个头,那肌肉,是在是太猛了,随便一站就霸气外露啊!那胸肌,简直就可以把你的头夹爆啊!!!

和他聊了几句话之后,我还发现了他的一个特点,他不会笑的啊!!!我说笑话他也不笑,而且是没有表情的啊!!!搞到我好像面对着一个黑社会的猛男,好紧张!!!

他问了我一些比较general的问题,不用写code。我突然发现玩了几天没说英语,口语能力下降了……

然后他又问了我一个智力题。这道题还是挺popular的一道题,估计很多人都见过。我心里在偷笑。

他说完我就开始在白板上说解题思路,然后列方程,算结果。后来他说结果不太对,我有点晕了,感觉没什么不对的啊,然后就胡乱改了改,自己都改蒙了,然后他说改对了,晕!!!他说我的思路是对的,让我证明。我觉得挺明显的,都不知道应该怎么说,我的思考过程其实就已经是证明了啊,最后就胡乱说了一通,糊弄过去了。

直到面试结束,脑子里还是一团浆糊,我到现在还是觉得我一开始的做法和答案都是对的。。。

这轮面试旁边还有一个监督方,不过是监督他不是监督我的。估计是因为面试官还算是一个新人(工作了8个月),需要考核他的面试能力吧。

================================================================

第二轮面试的面试官就是专门面试code的了,问了我两道code的问题,都是秒杀。

第一道题我碰巧在当天早晨上网的时候看到了,很走运有木有!

算法和写code都很快,不过出了一些小bug。他没有发现,我发现后说我程序是有bug的,他还觉得没有,后来我就举了个反例,然后说,看!出bug了吧?!他说是啊是啊。(怎么好像反过来了……囧rz)然后我就改了一下把bug修复了……

第二道题碰巧和我第一轮电面的那题很像,我就直接写了答案。

之后就和他闲聊,聊他在facebook的工作,问他facebook有什么不好的地方,我还给他讲去年创业时我们封闭开发那一个多月每周工作110个小时的经历,让他觉得facebook其实也不算很累,哈哈。

================================================================

马上就是我在美国的最后一轮面试了,万万没想到,这轮面试我彻底杯具了……

第三轮的面试官是个亚洲人,听英语的口音有点像香港人,不过我没去问。他一进来就问我,刚刚那个面试官是不是问了一个之前第一轮电面问过你的问题。我说是,不过条件有些变化,并不完全一样。他很严肃地跟我说这样十分不好,我应该告诉他这道题我被问过,否则到时候面试反馈汇总后会特别难看。我顿时变得好后悔好担心,我以前还真的不知道有这么一个规矩,sb了……哎~

然后他开始自我介绍,他4年前加入的fb,在App Team。(又是一个年少多金的牛人啊)然后他说他是Stanford的,我顿时霸气又掉了一半……(为什么要告诉我!!!)

然后就开始了coding环节。他问了一道题,我之前没见过,只能现想,不过相关知识都是比较简单的。不过他不仅规定了题意,还规定了函数的API,也就是参数和返回值都是定死的!但是仅仅使用那么少的参数和返回值,根本无法解决啊,又不能用全部变量,我好几次尝试问他能不能自己定义返回值类型,增加参数等等,每次都被他无情+鄙视地say no了。

我一下就陷入了困境之中。不过他只是规定了API,并没有说不能定义private function,所以我问他我可不可以写多个函数,他说可以,于是我如释重负……

但是即便如此,我的慌乱已经让我视野急剧缩小,写了一个很烂的算法,足足用了3个函数,最坏情况O(n^2)。他让我改进,我便又改成了O(n)。他还不满意,让我继续改进。

这时候我又说回最开始我的想法,他终于忍不住了,告诉我我的思路完全不对,按照这样的思路是不可能想出最优解的。我听后很沮丧。他引导我在白板上画图,我画完后茅塞顿开,终于想到了O(logn)的算法,然后实现了。

为了这道题,我前前后后写了8个函数,累死了……最重要的是自信都没了……(后来在回去的路上回过头来想想,其实这道题不过是我讲课例题的一个变种而已,换一个角度去思考,其实是一道非常简单的题目,唉,太没状态了。)

然后他问了我第二道题,我说了自己的想法后就开始code。写完代码他问我对自己程序有多大把握,我又看了两遍,觉得不大可能有错,就说99%。他笑了笑,让我编一些测试用例。我就开始编,编了好几个,感觉都没啥可以继续编的了。这时候他有些不耐烦了,说他让我编测试用例是尝试让我找到bug,但是我编的用例都没有达到目的。语气和表情都充满了鄙视……T_T

面对这一波接一波的打击,我只能硬撑着重新审视我的代码,大概十多秒后我突然找到了那个bug,实在是太粗心了!不应该啊!唉……

fix完bug后他又问我有多大把握,这次我都不太敢开口了,但是觉得就这么一个十多行的程序,不可能还有问题了吧,就说还是99%。后来他说这程序已经没问题了,我长舒一口气……

(我依稀记得之前在系BBS上看过学长分享的面经,说一个面试官问你how confident的时候,如果你答了一个很高的值,一旦出了问题,就会被扣很多分,死的很惨。面试结束后想起来真是肠子都悔青了……)

最后面完他问我有什么问题问他,我问他是哪个team的,他说一开始已经告诉过你了,是App Team。啊啊啊,好尴尬啊,我脑子都已经彻底混乱了,感觉实在是糟透了。

最后走的时候我跟他说“I feel bad”。他问我why,我指着我写的code说:“it's ugly”。他说:“interview is difficult."

我在回去的路上想了想,看来是彻底杯具了,他没有说"I don't think so.",而是用一个婉转的方式对我的ugly表示赞同,悲催啊……TOT

==================================================================

结束后终于见到了Laurie,我的Recruiter。她是我这辈子第一个电话面试我的人(其实就是问了一些情况),当时觉得她声音好好听啊~!见面发现果然是个美女,乌黑的长发,标准的瓜子脸,不过皮肤不白,估计是南亚人。

她问我面得怎样,我很沮丧地说“Not good”。我告诉她好多题我一开始都没想到最好的做法,还犯了很多低级错误。她安慰我说其实很多人面试的时候也很难一下就想到最好的做法,如果到时候面试结果汇总后,面试官们意见不一,有人觉得你很适合,有人觉得你不适合,很有可能会追加一些电话面试,叫我不要难过。我当时觉得这纯粹就是安慰了,因为我清楚自己的表现实在是糟透了。

回到酒店后很郁闷,心情十分低落。我最想去的还是Facebook,没想到搞成这样,真的觉得特别遗憾。然后大家都用Google也很不错来安慰我,不管怎么说,还是很不爽的……

==================================================================

后记:

面试完等通知的日子是和煎熬的,总是期盼着能收到邮件,无论去到哪儿都惦记着看邮件。

回到帝都后的第二天,Laurie给我发来邮件说:“the preliminary feedback from your interviews looks fairly positive”,然后开始问我要2到3个reference people做背景调查了。我当时看了好惊讶,当然也很开心。也许是因为最后那个面试官把我虐爽了,甚感满足,回去写反馈就心慈手软了。也或许真的就像Laurie所说的,秒杀并不是必须的,可能我对自己的要求定得太高了。

Anyway,结果很好,我很喜欢!