招聘|面试经验:Facebook 喜欢什么样的人?

_原题为 面试经验:Facebook 喜欢什么样的人?

招聘|面试经验:Facebook 喜欢什么样的人?
文章图片
Facebook是很多人梦寐以求加入的公司 , 自然它的招聘也是非常严格 。 不过严格是有道理的 , 一位伦敦的女程序员讲述了她成功应聘Facebook的心路历程 , 希望对你有帮助 。

招聘|面试经验:Facebook 喜欢什么样的人?
文章图片
我刚开始求职那会儿 , 真的不敢想象能去Facebook工作 。
但是五个月后 , 我拿到了Facebook的offer 。
我的这次求职过程既有惊喜也有意外 , 本文将与大家分享我的经验和心得 。
我之前在三星电子做了两年的软件工程师 , 想换个工作了 。 7月份我开始准备求职海投——所有那些热门的科技巨头公司我都准备去申请——只除了Facebook 。 我当时很没底气 , 想先去其他公司面试 , 磨炼一番 , 如果表现出色 , 自然会大大增强我的自信 , 然后我再去Facebook碰碰运气 。
大海捞针
我利用上下班通勤的时候以及在准备面试的休息时间 , 开始在LinkedIn上建立人脉网络 。 我那会可执着了 。 我搜索找到想应聘的公司的招聘人员 , 给他们发邮件(如果他们在LinkedIn上的Contact Info下有留邮箱的话)或发站短 。 我并不期待会发生什么实际的结果 , 但这个联系招聘方的过程使我觉得很受激励 , 能够让人保持乐观 , 帮助我度过了求职的准备阶段 , 相信我 , 这需要巨大的努力 。

招聘|面试经验:Facebook 喜欢什么样的人?
文章图片
Tip:LinkedIn是一个很好的平台 , 真的能够收到招聘方的回复 , 但需要坚持 。 不要犹豫 , 去接触陌生人 , 寻求他们的帮助 。 通过LinkedIn的站短 , 我联系上了亚马逊、微软、Snapchat、彭博社和苹果等公司的招聘人员并收到了他们的回复 。
更幸运的是 , 我在8月份给Facebook的招聘人员发了邮件 , 他们真的打电话给我了 。
Tip:接到第一个招聘方的电话(建立初步接触)是我找工作中最耗时的部分 。 尽管我感觉自己还没有准备好 , 但我还是去应聘了 。 在安排第一次面试之前 , 你可以向招聘人员要求几个月的准备时间 。
希望之光
第一次面试是电话会议的形式 , 我期待能有好结果 , 同时也做好了最坏的心理准备 。 面试官来自Facebook的AR/VR部门 。
一点信息:Facebook分为多个部门 , 每个部门都独立招聘 , 它们分别是Facebook工程部、Facebook AR/VR部门和Facebook AI部门 。
面试官问了关于我现在的工作岗位和工作经验的问题 。 在我职业生涯的大部分时间里 , 我一直是一名C/C++开发人员 , 我没有做AR/VR的经验 。 我担忧的是自己并不符合招聘方心目中的候选人要求 。 我被告知 , 只有当我在电话面试中表现得非常出色才有机会 , 因为我的工作技能点与他们团队需要的并不完全一致 。
我的分析:当时Facebook工程部有一个招聘条件限制:只考虑有7年以上工作经验的候选人 。 可能8月是Facebook招聘季的尾声 , 这时全年的HC已经招得差不多了 , 空缺较少 。 我觉得在10月份之后 , 新的招聘季刚刚开始的时候 , 应聘会比较容易 。
志在必得
技术面试安排在两星期后进行 。 面试有两道题 , 要求在45分钟内解决 。 题目很基础 , 代码也很简单(数组和字符串问题) 。 我想强调的是测试运行 , 这非常重要 。
测试运行:面试时你编写的代码没有编译和执行过 。 因此为了验证代码的结果是否正确 , 面试官要求进行测试输入 , 并展示代码如何运行 。
Tip:测试运行是面试时调试代码的好方法 。 在面试准备中一定要加入测试运行哦 。
对于面试官的第二个问题 , 我想到了两种解决方案 , 并向面试官分别解释了它们 。 然后 , 他让我比较两种方案 , 分析一种方案相对另一种的优势 , 最后会预留5分钟向面试官提问 。 我认为这5分钟对面试者的结果评估作用不大 , 所以不用担心 。
Tip:众所周知 , Leetcode是一个非常好的准备面试的网站 , 我觉得它非常有用 。 Leetcode上有一个鲜为人知的好工具——Leetcode Discuss , 大家在这里分享自己的面试经验(和问题) , 相信我 , 很多问题确实都是重复的 。
现场面试

招聘|面试经验:Facebook 喜欢什么样的人?
文章图片
Facebook的面试过程相当快 。 我在两天内就收到了他们的回复 , 然后飞往伦敦进行现场面试 , 一共安排了4轮 。
编码面试(2轮)
共有两道题 , 需要在45-50分钟内解决 。 涉及的领域有二叉树、字符串、栈和列表 。 面试者需要先和面试官讨论解决方案 , 然后在白板上写下你的代码 。
Tip:代码中总有一些极端情况需要处理 , 在临场发挥压力很大的情况下 , 要处理好这些极端情况并不容易 。 有一个技巧帮助我度过了难关 , 那就是测试运行 。 编码完成后 , 我马上告诉面试官 , 我要在一个通用的例子上测试运行我的解决方案 , 先自己调试一下 。 第一次测试运行我就找出来了代码中明显的错误——自己找出来总比被面试官指出来的好 。 通过测试运行我也有更多时间去思考极端情况如何处理 , 然后可以将其合并到代码中 。分页标题
系统设计面试
这一轮面试对入门级软件工程师来说是挺有趣的 。 它的目标是从头开始设计一个系统 。 问题陈述通常是这样的:

  1. 设计一个已经存在的产品 , 如WhatsApp、Facebook、Google搜索等 。
  2. 实现这些应用中的一个特定功能;比如说 , Facebook App中的时间线 。
  3. 设计一个完全假设的场景;比如说 , 创建一个系统来存储相隔很远的三台服务器的日志 。
这个面试肯定需要特别准备 , 最著名的辅助工具就是《系统设计面试》(Grokking the System Design Interview) 。
好在这个面试没有标准答案 。 你应该能够证明你的设计选择的合理性 , 了解你所做的权衡 。
行为面试
这是面试中最简单的一项 , 但不要掉以轻心 , 因为在这次面试中出现的任何失误都会让你失去机会 。 面试问题都是非技术性的 , 如领导能力、团队精神、如何处理分歧等 。 这些问题几乎是固定的 , 可以事先准备答案 。
Tip:面试前一天 , 先把热门的职场问题清单看一遍 , 想一想你过去职业生涯中的案例轶事 , 有哪些可以作为你回答问题时的例证的 。 在一系列技术面试的间隙 , 可以借助这个面试来放松一下 。 这一轮面试的信心提升有助于提高你的士气 。
第一次失望
一周后我收到了面试反馈 。 我感觉自己表现得很好 , 但结果却不尽如人意 。 我在两轮面试中得到了很不错的评价 , 编码面试其中的一轮反馈也不错 , 但是挂在系统设计那一轮上了 。 以下是我从面试体验和反馈中获得的感悟:
  • 系统设计面试是至关重要的一轮 。 务必要以结构化的方式有条理地展示你的想法 , 不要遗漏设计细节 , 例如数据库架构 , 协议定义等(请参阅《 Grokking系统设计面试》中的这些要点) 。 从收集需求到顶层设计 , 再到讨论利弊 , 每一个环节都要积极主动、并以合乎逻辑的方式推动讨论 。
  • Facebook希望候选人在算法上有出色的表现 。 他们会寻找小错误 , 连可以优化的点也不放过 , 比如 , 遍历了两次数组而不是一次(这不是错误但是需要优化) 。 你要尽量做到最好 , 任何时候都不要自满 。 其他方面包括做测试运行 , 讨论极端情况如何处理 , 想办法优化 , 同时还要在白板上快速做记录 。 要求不多吧?(哈哈)从积极一面来说 , 我觉得所有的问题都能找到一个既优美又简洁的解决方案 , 既不难想出 , 也不难写 。
第二次机会
我后来找招聘人员沟通 , 表达了我的困惑 。 我很确定自己会拿到offer , 但面试反馈却出乎意料 。 我从来没有想到系统设计会有这么大的价值 。 幸运的是 , 他们又给我安排了两次面试 , 一次是系统设计 , 一次是编码方面的 。 于是我又飞赴伦敦 , 因为要参加另一家公司的面试 , 同时正好也能参加Facebook的面试 。 说实话 , 这五个月来我面了那么多场 , 很多结果都不理想 , 相当疲惫 。
这两次面试是我最后一批面试了 , 我只想快点结束 。 不过这一次 , 我对于系统设计有了更深刻的理解 , 关于系统设计的流程也更加清晰了 。 我先参加了编码面试 , 非常顺利 。 而系统设计面试中要解决的问题 , 与一个非常流行的移动应用中的某个功能有关 。 这次我们更加详细地讨论了设计 , 进行了量化分析 , 如服务器中需要的系统数量、数据库大小等 。 这次我真的是全力以赴 , 我和面试官讨论得很愉快 。
Tip:系统设计面试的重点是:收集需求、定义协议、高层设计、数据库模式、数据大小估计、组件设计和权衡 。
不负苦心
两周后 , 面试结果出来了 , 顺利通过!我获得了Facebook工程部的职位 , 职级E4 。 (我最初申请的Facebook AR/VR团队的职位已经招到人了) 。 我想 , 之所以如此重视系统设计 , 是因为E4工程师除了要会编程 , 还要会设计 。
结尾的话
我真没想到换工作会这么难 , 我非常能理解那些正在求职过程中苦苦挣扎的人的心情 。 事情的发展并不总是期待的那样 , 面试也有偶然性或运气的成分 。 《薄伽梵歌》中的一句梵语 , 让我在那些困难时刻很好地保持了清醒 。

招聘|面试经验:Facebook 喜欢什么样的人?
文章图片
"你只有工作的权利 , 但成果不属于你 。 不要仅仅把结果当成你的动机 , 也不要让你的依恋变得无所作为 。 "(就是“但行好事 , 莫问前程”的意思吧)
【招聘|面试经验:Facebook 喜欢什么样的人?】祝各位好运!
译者:张茉茉
36氪编译组出品