编者按: 有关FAANG面试流程的指南数量众多。然而, 这却是最为彻底、最为详细的一份指南, 原因在于这是专为面试者制成的仅有的一份指南, 编撰者耗费了数百个小时, 跟数十位现任以及前任FAANG面试官探讨了他们的面试流程。在这份指南里, 你能够看到对这些面试官的大量直接引用, 他们运用自身的话语描绘了每家公司流程以及标准的特质, 这些第一手资料极具价值。文章源自编译, 鉴于篇幅关系以七部分依次刊出, 此为第二部分。
Meta/Facebook面试流程与问题
Meta, 也就是Facebook(为了表述简便, 往后便统一称其为“Facebook”),它的面试进程涵盖了如下这些步骤:
这里存在一些为关于 Facebook 招聘流程、评估标准以及面试官的一般说明, 在我们针对每个步骤展开详细介绍以前。
为Facebook面试官所遵循的行动指南, 乃是其口号: 快速行动。所有人类群体皆有以之作为运作方式的隐喻。Facebook既非家庭, 亦非军队。Facebook是一支结构有序的一级方程式车队, 他们投入大量精力落实保障措施, 而后全力以赴。在Facebook, 取胜之道在于速度。
在Facebook这儿, 由于流程属于集中式, 因而不像其他某些科技公司那般, 能拥有同时与多支团队开展面试访谈的机遇。你大概每隔3至6个月会有一回面试机会, 具体情形取决于表现。
Facebook 面试官的提示
要是你经由了Facebook的现场面试, 然而却没接纳offer, 那么你“现场面试通过”的状态有效期限是一年。要是你不接受他们的offer, 而后又在一年内挑选重新加入, 那就告知他们的招聘人员“我已 passed 现场面试”, 并且尽量略过先前的步骤, 因为这般通常是可行的。
摆脱困境的秘诀
在前往Facebook进行面试之际, 需认真仔细地去聆听面试官所给予你的那些极其精细微妙的线索和暗示。Facebook是属于FAANG之中唯一的一家对于面试官有着良好且严格要求的公司——假若不能够给出良好优质的提示, 那么便无法成为面试官。
第 1 步:招聘人员电话面试
请参阅第一部分“有关招聘人员电话面试的说明”。
第 2 步:技术电话面试
Facebook进行的技术电话面试, 属于编码面试, 其时长是45分钟, 着重关注数据结构以及算法。
美国社交平台脸书的技术电话面试借助在线代码协作及评估平台CoderPad开展。要是你从未使用过该平台的话, 那么最妥当的做法还是在正式开始进行电话面试之前先行前往他们所提供的沙箱环境当中体验一番, 借此熟悉熟悉整个操作环境。美国社交平台脸书借助在线代码协作及评估平台CoderPad施行面试时会存在一个问题, 具体而言就是在面试的整个过程期间, 他们会选择关闭代码的执行 - 倘若你之前曾经使用过该平台, 而且在过往的面试期间已经养成了通过运行代码以此来测试代码是否正确的习惯的话, 那么你就需要通过不断地练习来逐步适应这种状况。
面试刚开始的时候, 面试官会问你一两个跟简历以及最近做的工作有关的问题, 这些问题对于面试结果而言没有任何意义, 它仅仅是用来打破僵局并且让你开始说话的一种手段, 关键之处还是在于技术部分。
第3步:现场面试
典型的 Facebook 现场面试一般包含以下内容:
Facebook 面试的类型以及预期
要是你申领Facebook的工程岗位, 你会碰到四种主要类别的面试, 编码面试, 行为面试, 还有系统设计或者产品设计面试。以下是每一轮面试里预期会出现的状况。
编码面试
Facebook的流程是高度标准化的, 所以编码面试的问题以及主题常常会出现重复, 编码问题是要经过预先批准的, 不过这并不表明面试官就没有自由了。
Facebook 面试官的提示
Facebook会给面试官提供可提出的、能够进行修改的问题, 然而, 他们不会在面试维基当中告知你答案, 至于让你设计关于问题的路径, 提问方式以及回答方式都由你自己决定。
Facebook 面试官的提示
面试官彼此之间存在着一定的差异, 每个问题通常大概需要 20 分钟左右, 并且一般而言是比较简单的。他们期望你能够知晓该运用何种算法, 进而实现基本的解决办法。
空输入以及超出范围的输入, 像是空数组及 null 这样的情况, 是可以被接受的 bug。然而, Facebook 通常不会接受不完整的算法。他们期望你能够将任务快速完成, 为了达成这个目的, 你可以在一定程度上牺牲整洁性。
Facebook 面试官的提示
这里存在一条规则, 我觉得是这样的, 在进行编程面试之际, 面试官得问两个问题, 这是必然的。并且所提问题要做到平衡, 这一点也很关键。第一个问题应当具备一定趣味性, 其测试的是解决问题的能力, 身为面试官, 在实现过程中允许出现些许错误。从算法层面来讲, 第二个问题相对而言较为容易, 然而这个问题的目标在于评估应聘者能够写出多少未经调试且能完美测试通过的代码。要是应聘者搞不定这两个问题, 哪怕他们在其中一个问题上表现出众, 都会被判定为“不聘用”。
这并非是那种鼓励出现故障程序的意味, 而是指他们乃是与众不同的具有自上至下清晰指引的唯一那一家公司, 在某些特定轮次里, 有时出现故障程序是能够被接纳的, 其他任何一家公司均不存在如此状况, 脸书放宽了对毫无差错代码的限度, 目的在于让求职者编码能够更为迅速。
最后的那一点, Facebook并不会去问动态规划方面的问题, 实际上, 他们将提出此类问题予以禁止了。
系统设计或产品设计面试
在通常的认知里, Facebook 会招聘两种类别的后端工程师: 系统通才以及产品通才。对于系统通才而言, 需要参与系统设计面试。然后产品通才需接受那种名称让人产生困惑的产品设计面试,要知道在大抵多数的其他情形下, 产品设计所指的是 UI/UX。
面试类型由招聘人员依你的经历来定, 若你开发过诸多产品功能, 那你会接受产品设计方面的面试, 要是你曾做过大规模分布式系统相关工作, 那你便得接受系统设计面试。
Facebook的产品设计面试, 和系统设计面试有相似之处, 然而, 却有着一些关键的不同点, 这些不同点是存在的:
Facebook 面试官的提示
关于产品设计, 其与数据库关联不大, 更着重关注数据流,会将更多时间耗费在API的细部内容上面(比如说那些存在于要进行传递的参数之中的)。而系统设计, 则更侧重于关注数据库, 对于API的细节部分并非那么着重关注, 更多的是聚焦于扩展性之类的方面。

Facebook 面试官的提示
众多人觉得, Facebook仅仅会问高级系统设计方面的问题, 比如说“设计Twitter”, 或者“设计Facebook Feed”。然而实际并非这般。他们同样会问低级问题。于E6或者更高的面试里, 你极有可能会被问到“设计Redis”, “设计Kafka”, 或者“设计Memcached”。在极少的情形下我甚至见到E5应聘者会被问到低级系统设计问题;低级问题在E5以及更低的轮次中不太常出现。
Facebook 面试官的提示
对于你而言, 你得提出某些需要进行粗略估算的问题出来。好多高级工程师都不太乐意去做这样的事情。实际上呢, 我自己也挺厌烦此时所涉及的这个情况。这分明就是在白白浪费大家的时间。我来讲一下之所以要问的缘由, 那是因为有相应规则严格要求我必须去做这件事。然而, 认认真真去做是没有任何实际意义的。我们理应花费5分钟的时间去深入探讨一番关于真正情况下的系统设计。假定我们一定要把系统从初始的0状态扩展到类似谷歌那般庞大的级别程度, 所以可以明确地说, 进行估算纯粹就是在无端浪费时间。
摆脱困境的秘诀
你去问询你的面试官, 你说, 你真的期望我耗费几分钟去做测算吗, 跳过这个环节我是能够接纳的, 然而要是你有了解的需求, 我也能够进行测算。倘若我们略过这一步骤, 或许能够花费几分钟探讨一下怎样扩展这个系统, 这说不定是一场更为有意思的对话。
摆脱困境的秘诀
倘若你不清楚于E5 Facebook系统设计回合之际该去谈论什么样的事物, 那么不妨去讲讲用户体验, 探讨一番你能够做出的两个选择, 接着深入阐释一下首选的那一个, 由于它能够给予更为优良的用户体验。
Facebook的面试官要求你去回顾一下自身过去所做过的一个系统, 这是颇为常见的, 而这又被称作逆向系统设计面试。
行为面试
针对技术问题而言, 存在差异的是, Facebook存在的行为问题并无标准化之态势。具体表现为, 面试官能够询问你任何他们自己想要去问的问题。在Facebook这个平台上, 行为面试所具备的重要性处于中或者低这样的水准。其重要性程度比不上技术面试, 然而实际上确实还是拥有一定可观的分量的。
以下是帮助你入门的问题列表。
Facebook 是如何做出招聘决定的
Facebook的候选人审核流程, 以及反馈流程, 通常全然是异步的, 有时, 他们也会现场汇报, 然而这种情况少见, 这意味着面试官为应聘者“争取”资格可能性很低, 具有社会影响力的面试官在此不会走得太远。
填完现场面试后反馈表时, Facebook会要求面试官给出信心分数, 这在FAANG公司里是独一份。所以, Facebook对于失败面试轮次更宽容, 因信心分数低意味着失败轮次权重小。而且, Facebook是唯一直接问面试官是否要将应聘者降级的公司。
Facebook 面试官的提示
用来决定“我们该不该录用这个人? ”的是编码, 致力于决定“我们该如何给这个人定岗? ”的则是系统以及产品设计, 是的了。
编码面试时, 面试官得先给出个结论, 这个结论是“雇用”或者“不雇用”。之后在评论里, 他们要表明对所下结论的信心程度如何。“雇用”亦或是“不雇用”属于官方给出的数据指标, 然而信心分数并非如此, 它不属于官方指标。
对于系统或者产品设计面试而言, 面试官需要首先给出“雇用”或者“不雇用”这样的结论, 之后他们还得讲一讲是不是应该考虑将应聘者放置到另外一个岗级。
所以, 最后的决定大概会是这般模样: “不雇用被判定为E5, 只不过对这个结论欠缺足够信心。‘聘用’被认定为E4, 对这个结论满怀十足信心。”。
要是招聘小组没办法确定下来, 那他们有可能会提出再开展一回后续面试, 借此来协助他们赢得更多信号。
Facebook 面试官的提示
面试反馈系由系统设计以及行为面试官展开讨论, 此等面试官对于聘用决策还有应聘者岗级具备最大发言权。要是面试官发觉自身尚未获取充足信号, 且应聘者最终抱持观望态度, 招聘人员会促使重行开展一轮面试。参考提示: 要是后续你还需额外面试, 表明面试官意见或有分歧。
Facebook 面试官的提示
就资深(Staff)及以上这个级别而言, 在应聘者这里, 如果其并未通过两轮系统设计面试, 那么是不会被录用的。
Facebook 面试官的提示
对于E6及以上岗级的应聘者而言, 若你在某一轮系统设计面试中遭遇失败, 然而在其他轮次里表现出色, 你仍会拥有一次机会, 他们能够让你再度参与一轮系统设计面试。可是行为面试并非如此, 要是你面试失败, 便再也没有机会了。倘若你在行为面试轮次失败, 得出的结论将会是“不予录用”。
团队匹配以及训练营(Bootcamp)
和别的FAANG公司不一样, 在Facebook这儿, 一般情况下, 你会在晓得最终会跟哪一个团队合作之前就收到录用通知。收下录用通知之后, 你要参与为期六周的"训练营", 接受关于Facebook工程基础设施以及系统方面的培训。训练营结束以后, 还会有为期两周的团队匹配阶段。
Facebook 面试官的提示
在多数公司, 于你开启第一天工作之前, 便会拥有认识自身团队的契机。然而在Meta这儿, 得先历经那所谓的Bootcamp。你先是加入Meta, 接着与团队碰面, 随后决定为谁效力。我发觉此种做法相较与招聘经理聊30分钟电话要好——谷歌便是如此挑选团队的。我更青睐Facebook的做法,因为在你挑选团队之前能够获取更多数据;你能见到他们的宠物, 你能查看他们的代码等等。
团队匹配的进程, 有点类似于速配约会, 你要与招聘经理碰面, 以此来衡量匹配程度以及化学反应, 而为了推动其向前发展, 你们两人都得做出选择并加入其中。
Facebook 面试官的提示
市场形势处于良好状态之际, 你能够于Bootcamp同步跟20支各异的团队展开交谈。
也有例外情况, 存在这样一些人, 他们具备特殊技能, 这些人当中, 有部分在进入训练营之前, 会被某一支特定的团队聘用, 然而, 即便如此, 他们依旧得参加训练营, 只是, 后面还需要进行的团队匹配环节, 他们就不需要再参与了。
Facebook 面试官的提示
虽说整体流程没太大变动, 然而针对E6及以上级别, 级别越高这种情况出现的可能性就越大, 在此情况下应聘者有可能在流程起始之前便被分配至一个团队。举例来讲, 你有可能面试到特定团队, 并非通才型的软件工程师。这在E6及以上较为常见。
我只遇到过一位E6工程师, 就我的经历来讲, 此工程师属于在训练营选择团队类型, 并非一开始就被分配到某个团队。
Copyright © 2018 All Rights Reserved 版权所有 宁国人才网 苏ICP备2024139598号-6
地址:安徽省合肥市瑶海区 EMAIL:
Powered by PHPYun.