这些年,我一共面试了四次 Facebook/Meta。虽然都未成功,但收获颇多。Facebook 于 2021 年 10 月 28 日更名为 Meta,以下统一称为 Meta。
Facebook, Inc. 于 2021 年 10 月 28 日正式更名为 Meta,反映了公司在社交媒体之外日益扩展的抱负,以及对构建“元宇宙”的专注。元宇宙是一个虚拟世界,人们可以在其中工作、娱乐、学习,并与朋友和家人连接。
如果你是在2022年11月入职,那么到现在你的入职股票已经翻了6倍。疫情那两年,老扎因为全力推进元宇宙/Metaverse项目导致股价大幅下跌,不过他后来承认了这一战略的错误,并开始转向布局AI大模型,从而推动了股价的强势回升。
第一次:2010年
2010年3月初,我刚提交博士论文,正在等待答辩。这时收到来自美国Meta猎头的面试邀请。简单了解情况后,约定了第一轮Coding面试。当时我身处英国卢顿/Luton,住在一间简陋的出租房里,与四五个同学合租。
虽然Meta在2004年(我出国那一年:
海外漂泊一晃二十年)成立,并在2008年Facebook Beta改版后进入快速发展期,但2010年的Meta仍算是早期阶段。那时Meta在英国尚未设立办公室,职位是面向美国的。如果通过第一轮,将会被邀请赴美参加后续面试。
第一轮面试的时间是2010年4月1日上午11:30 PDT,通过手机语音和在线代码协作网站(collabedit.com)进行。
可惜,我因两点原因未能通过:
一是算法复杂度的问题回答错误; 二是我选择了Pascal语言,面试官不熟悉,略有劣势。
2010年第一次在出租屋里面试,用着Pascal写代码
这次面试的职位级别是E3。该面试详细记录于这里。
https://steakovercooked.com/Life.Record/diary/2010/2010-04/2010-04-03_19.26PM.html
第二次:2019年
第二次是2019年找工作时进行的。当时,我在英国剑桥的美国通用电气/General Electric公司工作。第一轮通过Meta自研的在线协作工具(bluejeans.com)进行,内容是两道LeetCode原题(难度中等)。
这一年开始,我在面试中主要使用C++。我觉得选择这门语言对面试有加分作用,因为C++的STL提供了丰富的数据结构和常用算法,同时相比Python,它不至于过于“傻瓜化”。不过,要在面试中用好C++,仍需要多加练习,特别是熟练掌握STL的使用,并避免C++中常见的陷阱,比如整数溢出和指针操作等问题。
终面时间:2019年7月26日上午11:45 BST。我从Huntingdon火车站乘火车到伦敦国王十字Kings Cross火车站,Meta报销了往返火车票。这次面试的职位级别是E4。
反馈是我的系统设计(System Design)能力不足。当时的Coding面试直接在白板上写代码,这种方式较容易出错且耗时,需要提前练习。记得有一道题是:下一个排列/Next Permutation。很多人认为,如果没有事先见过这题,在面试时很难迅速想出解法。
在Behavior那一轮面试还给了一题力扣Easy题做热身。
以前写过博文详细分享了:
- 记Meta/Facebook的第一轮技术面试(伦敦脸书)
https://justyy.com/archives/18736 - 离伦敦脸书/Meta最近的一次: 记FACEBOOK伦敦终面经历https://justyy.com/archives/19030
第三次:2020年
疫情期间,我加入了剑桥的Amazon AWS S3团队,但因On Call压力大,开始在下半年寻找新机会。Meta再次联系了我。
第一轮时间:2020年9月4日下午1:00 BST,两道中等难度的LeetCode原题。
终面时间:2020年11月5日上午10:00 GMT。疫情后,大厂终面基本转为线上。
我还专门买了白板,Meta为此报销费用。在系统设计面试那轮,我就直接在白板上画设计图。这白板在后来也是发挥了很大的作用:写在教娃700天, what’s next?
这次面试的职位级别是E5。反馈再次指出我的系统设计能力不足,但评价接近E5,处于E4和E5的边缘。也不知道是不是因为当时我在AWS S3团队,系统设计那一轮问了一个文件存储系统的设计。
第四次:2024年
今年,我在面试Google时也顺便投递了Meta。这次的职位级别是E6(Staff Enterprise Engineer),因此终面增加了一轮产品设计(Product Design)。
遗憾的是,我对这一轮的题型完全不熟,未能通过。不过值得欣慰的是,这次系统设计(E6级别)已达标。
第一轮时间:Coding部分依然是两道中等难度的力扣/Leetcode原题。
Coding对我来说相对轻松,能提供多种解法,并在全程中引导面试官,关键点包括:
提问Clarifying Questions 考虑Edge Cases 写完代码自测 边写边解释 并尝试一题多解
在某轮Coding面试中,我因解题太快,还被面试官临时加了一道题(既然我们还有时间,再给你一题),在40分钟内完美解决了三道中等难度题目。
终面安排:分两天进行五轮面试,包括:
两轮Coding 一轮产品设计(Product Design) 一轮系统设计(System Design) 一轮文化匹配测试(类似亚马逊的行为面试)
一个技巧就是你一定要一直讲,千万不要让面试官来lead。这一次产品设计因为不熟悉,所以得到的反馈之一就是面试官说他大部分时间需要主导面试(lead the conversation)。
总结
虽然这些年尝试了四次都未成功,但每次面试都学到了很多。失败的主要原因之一是每次面试都尝试更高的级别,但实力尚未完全达标。换工作通常会有溢价Offer,但前提是水平不能差距太大。通过这些经历,我对自己的能力和不足有了更清晰的认识,为未来继续努力提供了方向。
Meta的面试冷冻期为12个月,所以你每年都可以尝试一次。我这四次面试的目标级别逐次提高,也说明了这些年我一直在不断学习和进步。通过面试,不仅可以挑战自我,还能清楚地了解自己的能力和不足之处。
Coding 终面:2019年7月26日上午11:45 BST | ||||
Coding 终面:2020年11月5日上午10:00 GMT | ||||
Coding:2024年9月24日下午12点 BST Coding:2024年10月3日下午4:00 产品设计:2024年10月3日下午2:00 其它三轮:2024年10月8日下午12:15 |
我感觉这些年Meta的Coding面试基本上都是力扣原题,刷力扣Meta过去6个月出现的题就可以:面试刷题更像是一种服从性测试
https://justyy.com/archives/67070
Meta是所有大厂还专门为求职者搞了一个刷题网站的,非常佩服,感觉它家就怕你不刷题。
MetaCareers刷题网站
大厂的 软件工程师级别比较:Meta/微软/亚马逊/谷歌 (levels.fyi)。
大厂的软件工程师级别比较:Meta/微软/亚马逊/谷歌
英文:Four Facebook/Meta Interview Experiences
https://helloacm.com/four-facebook-meta-interview-experiences/
博客:https://justyy.com/archives/67279
谢谢赏饭吃!
----
近期文章:
简单的投资策略: 美元成本平均法: 定投大饼/比特币/BTC
三次冲击谷歌软件工程师: 我的面试起伏录 (谷歌面试是不是一生只有三次机会?)
低风险的投资回报: 火币HTX交易所的3/7天的鲨鱼鳍DeFi金融理财产品(SharkFin)
Pascal 编程语言之父 尼克劳斯·沃斯 Niklaus Wirth RIP
个人扯蛋号: ACM-er
公众订阅号: JustYYUK 小赖子的英国生活和资讯