• 美国面试之旅——Facebook面试(转)


    郑重声明:

    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,结果很好,我很喜欢!

  • 相关阅读:
    CAS简介
    Volatile的3大特性
    dsf对矩阵进行搜索
    JVM
    REST风格
    自定义Starters(自动配置Bean)
    反射和注解的原理
    mybatis的注解开发
    Java的多线程安全
    mybatis(3)
  • 原文地址:https://www.cnblogs.com/mfryf/p/2707638.html
Copyright © 2020-2023  润新知