当前位置:首页 > 面试技巧

案例:Facebook是如何面试的

最初接受 的邮件后,我回信说愿意聊一下,然后跟他约了一个时间进行电话沟通。因为 Facebook 总部在美国西岸,所以之后的电话沟通和电话面试都约在了早上 8:00.尽管这导致他们要晚一个小时下班(按朝九晚五算的话),不过 HR 也很通情达理地接受了。(我猜大多数工程师都不会采用朝九晚五的正常作息时间吧。)

HR 在电话里先简单介绍了一下 Facebook 现在的情况,然后说明这是 Menlo Park 总部的职位,让我确认如果顺利应聘的话我会愿意到美国去。接着 HR 问了我两个很基础的 CSS 问题:display block 和 inline 有什么区别?position 有哪些取值?我觉得 HR 能够问这样的问题对于工程师来说是很爽的事情,因为纯粹的小白就被过滤掉了,也不需要浪费工程师的时间来面试。随后 HR 问我还有没有什么不明白的,或者关于 Facebook 想要了解的,我说没有了。HR 的最后一个问题是「你为什么选择 Facebook?」我当时心里想的是,「是你主动联系我的,我没想过这个问题哦」。于是我跟他说,「我暂时没有答案。我现在工作很开心,不过我也乐意多地了解 Facebook.」

facebook

电话沟通后,HR 给我发了两道 puzzle,选做其中一道就可以了。两道题目都是前端相关的,其中一道需要设计一个简单的算法,另一道则需要支持移动设备触击交互。这种解 puzzle 的面试方法我不是第一次遇到了,4 年前申请 Google 的 Web Developer 职位时也遇到过类似的 exercise,只不过题目只有一道,没有选择的余地而已。相比起 4 年前 Google 的 exercise 而言,这两道 puzzle 的考点更加 update.(4 年前的 exercise 还需要考你如何做圆角和背景渐变,现在都是用 CSS 3 搞掂的了。)

我花了一周的时间完成了一个 puzzle,搞定了算法设计和界面实现,连 unit test 也都写了,然后提交给 HR.HR 在 review 的结果出来后,把我介绍给另一位 HR,说她会帮我安排接下来的面试。第一轮面试感觉有点像 Google 的,主要由 3 道题目构成。题目的考点设计得很好,基础知识能被覆盖到,常用技法也需要用到,但又绝对不需要某一方面很高深的知识。(设计得不好的题目往往是依赖于面试 官很熟悉的一个难点,如果你不知道这个难点,或者你的理解跟面试官不一样,你就完蛋了。)

第一轮面试的最终通话时间为 90 分钟,我猜这意味着我做得不够好,因为如果以 Google 的标准来衡量的话,45 分钟解 3 道题才算及格。经过后面几轮面试我才发现,原来 Facebook 面试一般是要求 60 分钟解 2 道题。第一轮的面试官之所以给我加了 1 道题,估计是因为第 2 道题我做得不好,所以他相当于换了一道题给我做。面试结束,面试官又问了之前 HR 问过的问题,「你为什么选择 Facebook?」我还是那样子回答。

面试一个星期后,HR 邮件跟我说,我通过了上一轮面试,接着要安排下一轮面试。第二轮面试感觉跟第一轮差不多,包括长度和难度。只不过这次就是 60 分钟 2 道题,估计是因为我 2 道题都解出来了吧。面试结束时面试官又问那个问题了,我决定反过来问他是否喜欢 Facebook 的工作。他说 Facebook 的工作很好,周围的人都很聪明,能够从他们身上学到东西,同时公司提供一天三餐,福利好到觉得自己被宠坏了。我其实不是很在乎福利的部分(豌豆荚又不是没 有一日三餐),我更在乎的是人是否聪明,合作的过程中他们是否总能教会你一些你过去不知道的事情(这是我现在在豌豆荚拥有但离开就可能失去的部分)。随后 我跟他说,我在乎的是能否跟聪明人一起工作,听他这样说感觉 Facebook 不错。

又过了一个星期,HR 邮件跟我说,需要安排我到美国面试。我一开始对这件事也不特别在意,觉得那你就慢慢安排吧,有人报销机票让我到湾区旅行就是好事情。在随后的电话沟通里面 HR 跟我说,因为今年的 H–1B 签证配额已经花出去一半了,如果按照这个速度估算的话可能到 5 月底签证配额就会花完,所以希望我尽快到美国面试。(如果签证配额花完了,有没有 offer 都没意义了。明年 4 月才能申请明年的配额,申请成功也要等明年 10 月签证才生效,就算公司很想要你,也只能先安排你在海外办公室工作一年。)于是我就连忙办签证 5 月下旬飞往美国参加面试。

4 轮面试安排在一天内完成,Facebook 委托旅行社安排好往返机票和两晚住宿,随后我就出发了。因为害怕迟到,又因为美国郊区的公交又是一小时一班的,所以面试当天我早早就起床了,结果发现酒店 门口是长期有出租车的,打车到 Facebook 后等了一个多小时才到原本约定的面试时间。HR 在见到我后先把我带到 micro-kitchen 让我拿吃的喝的,并且问我那么早来是不是没有吃早餐。我说确实没有,然后她就让我拿一些食品做早餐。(其实我应该在酒店叫早餐的,因为 Facebook 允许每天报销最多 $75 的餐饮开支。)随后她把我带到用作面试的会议室,给时间我解决早餐,并且跟我简单说明了当天的安排:早上 2 轮面试,结束后她会来带我去 Facebook 餐厅吃饭,然后下午还有 2 轮面试。

总体上来说,4 轮面试的形式还是一样的,每轮都是 60 分钟解 2 道题目。所有题目都是前端相关的,HTML + CSS + JS 都会考到,不过不涉及 HTTP.最后一轮的面试官有点特别,他先问了一个很古怪的 CSS 问题,然后又跟我讨论了一个跟前端不相关的编程问题。之所以说他那个 CSS 问题古怪,是因为在现实中大家都不会那样写 CSS,但他写出来了问你会显示成怎样,不是非常熟悉 CSS 标准细节的人又很难完全答对(我也有答错了的地方)。至于第二道题,他说他是突发性想出来的,他自己也不知道最优解是什么,就是想跟我讨论一下能够如何优 化,我就跟他讨论了几种可能的优化方式。所有他又说如果把常数 k 改为可以变成任意大的 n 怎么办?我就说 n 的问题能够分解为 n/2 的问题,因此能够通过二分法来优化。

通常情况下,如果由于面试而进入一家公司的话,HR 所做的只是把你从 A 地带到 B 地,保证你顺利完成面试。如果是朋友带你参观公司则会很不一样,他会带你去看有特色的东西,并且告诉你这个好玩那个有意思。Facebook 的 HR 给人的感觉更像是后者,她向我介绍 Facebook 墙上的涂鸦,带我去天桥上看 Hacker Square 全貌,并且告诉我每次 hackathon 开始时大家就会聚集到 Hacker Square 上来。除了 HR 以外,也有一些面试官会提及他们喜欢的 Facebook 特色。这让我觉得 Facebook 里面还是有不少员工挺喜欢这家公司的。

面试结束后,HR 跟我聊了一下,告诉我如果有 offer 的话接下来会需要什么。根据之前 Google 面试的经验,我猜 Facebook 会不会也要我提交一大堆的材料,HR 说只要提交申请签证所需的学位证就可以了。之后 HR 让前台帮我叫出租车,在等待的过程中前台还很好人地问我是否需要拿喝的,需要的话可以在大堂冰柜里面拿。

随后的周末是美国的亡兵纪念日,周六到周一连续放假三天,我则利用这个长周末去参加湾区的各种好友聚会。周一中午 HR 打电话来说要发 offer 了,待细节确定后下午再打电话给我告诉我具体的数字有多少。我当时就在想,难道 Facebook 的面试官和 HR 周末都工作?这个效率很高呀。只要面试官稍微拖一下,周五的面试就必须等到下周才能有结果。而且确定 offer 细节估计也要经过几个人审批吧,节假日发 offer 就意味着大家都要在节假日处理工作了。

总体上来说,Facebook 面试过程中对候选人的关怀做得很好,效率也不错。让我「大开眼界」的是面试题,原来真正好的面试题并不在于它有多难,而在于它有多简单,简单到熟悉这个领 域的人一下子就明白到你在说什么以及想问什么。能够进入 Facebook 的人应该都觉得面试不难,至少跟中国的面试对比起来如此,那是因为 Facebook 把觉得面试有点难的人都过滤掉了,而中国那些很难的面试反而没什么区分度。

 



>> 上一篇:
HR面试时最不容易注意的细节
>> 下一篇:
那些校招中常常听到的故事

>>推荐阅读文章:

  • 微信咨询,获取团报名额
    领取更多优惠!
    了解同学资源!
  •    

更多疑问 全面解答

在线为您解答所有疑惑

免费咨询