面试体验:Facebook 篇

 

 

 

 

Google、Microsoft 和 Yahoo 都是去年的事情了,接下来讲说今年的吧。其实我在豌豆荚很是爽,跟身边的设计师和工程师合做都很愉快,因此惟一可以诱惑我去面试的就只有 Facebook 了。最初接受 Facebook 面试邀请的缘由并非追求它的 offer,而是我就想了解一下 Facebook 是怎么面试的,有什么是值得豌豆荚招聘借鉴的。前端

过去在百度作面试官,只是面试而已,公司招不招获得人我没什么感受。我以为公司招不到人就招不到人咯,咱们不必扩张得那么快啊,先专一于作好手头上的项目再说嘛。豌豆荚其实不是着急要招前端工程师,咱们仍是坚持只招一流人才,只不过长期发不出 offer 仍是让人感受招聘有问题——咱们浪费了大量的资源在面试上,发不出 offer 意味着回报率低,所以咱们总要想办法研究如何提升回报率。linux

回到正题上来,我选择参加 Facebook 的面试,就是想看看他们是如何选拔人才的,他们所使用的题目是如何设计考点的,是否是设计得比咱们的要好。所以,在收到 Facebook HR 的邮件后,我回信说愿意聊一下,而后跟他约了一个时间进行电话沟通。由于 Facebook 总部在美国西岸,因此以后的电话沟通和电话面试都约在了早上 8:00。尽管这致使他们要晚一个小时下班(按朝九晚五算的话),不过 HR 也很通情达理地接受了。(我猜大多数工程师都不会采用朝九晚五的正常做息时间吧。)面试

HR 在电话里先简单介绍了一下 Facebook 如今的状况,而后说明这是 Menlo Park 总部的职位,让我确认若是顺利应聘的话我会愿意到美国去。接着 HR 问了我两个很基础的 CSS 问题:display block 和 inline 有什么区别?position 有哪些取值?我以为 HR 可以问这样的问题对于工程师来讲是很爽的事情,由于纯粹的小白就被过滤掉了,也不须要浪费工程师的时间来面试。(我在以前的文章中说到过,在中国大多数面试前端工程师职位的候选人没法回答这两个如此基础的问题,不知道在美国是否也如此。)随后 HR 问我还有没有什么不明白的,或者关于 Facebook 想要了解的,我说没有了。HR 的最后一个问题是「你为何选择 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 把以为面试有点难的人都过滤掉了,而中国那些很难的面试反而没什么区分度。另外顺便给你们推荐一个交流学习群:812--855--908

《面试体验》系列文章到此就结束了。接下来有时间的话或许我会写写跟应聘美国职位有关的事情,例如 H–1B 的周期和配额是怎么样的,选择什么时间面试对你比较有利,拿到 offer 以后该如何为新的生活作准备等等。我知道对于不少在中国读书或工做的人来讲,直接应聘美国职位看起来门槛很高,那是由于你身边不多人这样作因此你不了解而已。只要你愿意花时间去了解清楚,你会发现这件事其实没有你想象中那么难。若是你对这个话题感兴趣的话,能够订阅我,或者留言提问。

写完以后以为小编以为本身作的不对,有点失去了诚信,可是之后会更改,也但愿获得你们的支持和原谅。

转发点赞分享,没有看够的能够私信关键词linux分享更多,C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK技术,面试技巧方面的资料技术讨论。

相关文章
相关标签/搜索