直到现在,我还是会想起被 Airbnb 拒掉的那天,想得有点太多了。
终面结束时已经是傍晚。我走出大楼,回到车里,对着方向盘坐了20分钟。后来招聘人员把拒绝原因说清楚了,问题不在编程,也不在系统设计,而是一道归属感问题,问的是如何让一个人在团队里感到自己受到欢迎。
那时候我刚连续参加完几场 Google 面试,满脑子都觉得编程准备才是正事。我写好并练熟了12个 STAR 故事,每一个讲的都是功能上线、如何处理分歧,或者别的技术问题。这些内容都装在脑子里,随时可以背出来,所以我最不担心的就是故事库。它也是我最早做完、从此再没打开过的那部分准备。
我对他们文化轮的重视程度,可想而知。模拟编程倒是排得满满当当,上班前刷图论题,午饭时看系统设计视频,那阵子天天如此。
刷得越狠,我越只盯着技术轮。以前的一位队友甚至拿这件事笑我。离面试还有6个月时,她就一再告诉我,Airbnb 最后的综合评议里,文化和编程分量一样重。我当场笑出了声。她没有争,只是换了个话题。我那时真觉得自己的准备一点问题都没有。
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan Free可题刷得再多,我还是漏掉了整整一轮,而且是关键的一轮。我没有足够“多疑”,没想到面试流程最后还有一位文化面试官等着我,更没为此做准备。
进了那间房,我一共被问了3道题,3道都在问怎样让别人产生归属感。我的12个故事里,没有一个与包容有关。临时能翻出来的最好素材,是我在上一家公司带一位新工程师入职的经历。话一出口,我自己就知道讲得很烂。“Be a Host”和“Belonging”是他们实打实的核心价值观,不是贴在墙上的口号,而我一个沾边的故事都没有。
编程一般但文化轮答得漂亮的人会拿到 offer,编程很强却搞砸文化轮的人会被拒,这就是队友早已给我算过的账。我一直把她的话当成对老东家有点夸张的评价。其实她说的就是他们真正的评分方式。
我经历的筛选流程是这样的。在和任何真人说上话之前,先做 HackerRank 测试,2道题,中等难度,45分钟。
我抽到的是数组操作和一道二叉树题。我常潜水的一个编程训练营 Discord 里,有人抽到的是图题,不是树题,所以他们会从题库里轮换出题。
他们要的是能够实际运行的代码,不是伪代码。这一点让我有些措手不及,因为此前参加 Google 面试时,所有东西都只写在白板上。
接下来是30分钟的招聘人员电话。那一轮基本只是确认我像个正常人,而且确实想要这份工作。
电话技术面是45分钟。我遇到的是用 DFS 求连通分量,大约20分钟就做完了。剩下的时间里,面试官一直帮我找边界情况,有一刻她甚至直接说:“你可能要检查一下空输入。”
我差点从椅子上摔下来。在 Google 没人会给你任何提示,至少我在那里从来没碰到过。
Airbnb 的面试官一路都会轻轻推你一把。他们会和我一起在白板上画,到了系统设计,面试官就站在我旁边,也在板上和我一起勾画。整场很像结对编程。这里的编程面试和 Google 完全是两种体验,最主要的原因,就是面试官真的会和我说话。
终面当天有2轮编程和1轮系统设计。第一轮编程是带深度限制的二叉树路径和,难度还算可控。我记得做到那里时,感觉其实挺好。
第二轮是合并重叠的预订时间区间,题目套在彼此冲突的房客预订上,像是直接从他们生产代码里抽出来的需求。难度在中等到困难之间。我时间卡得很紧,不过还是做完了,45分钟里的最后10分钟,我一直在冒汗。
队友事后跟我解释,他们一向这样出题。每一道题都会穿上 Airbnb 的外衣,房源、预订、可订日期区间、预约。剥开以后,里面还是你一直在练的树、数组、图和区间,没有什么怪东西,至少我参加的每一轮都没有。
系统设计题是“搭建一个预订与房源系统”,面试官不停给我扔新场景。第一个是两位房客在完全相同的一秒预订同一套房源,会发生什么。然后她问,预订进行到一半,房东突然没了回应怎么办。再往后是价格场景,价格会随不同星期和季节变化。到那之后我已经数不清问题了,她就是不停地问下去。
我准备过 YouTube 上常见的酒店预订系统设计。她抛来的问题,大概40%能靠那些内容应付,剩下全是 Airbnb 自己的业务细节,我只能坐在那里现场编答案。
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan Free泛泛地准备“设计 Twitter”,进了那间面试室就会失效。我甚至能准确告诉你它失效在哪里:如何处理重复预订的并发问题,房东与房客的状态机,动态定价,搜索排名怎样运作,还有大规模可订日历。我看的那些 YouTube 视频,没有一个讲到这些。
第二次面试时,我换了办法来做这一轮。先用自己的话重述目标,用问题缩小范围,主动给出合理的数字,从真正的高层设计开始,再沿着她最感兴趣的部分往下钻。两次面试里,她追问最狠的都是重复预订。到了第二次,系统设计反而成了我全天最喜欢的一轮。想到第一次就是在这一轮栽的,而且栽得特别惨,这变化连我自己都觉得离谱。
就连午餐,也只能加着引号说“不计分”。r/cscareerquestions 有个帖子提到,一位候选人的午餐同伴在综合评议时谈到了他。所以一整天都得表现得像个正常人。
几个月后,我回来参加第二次面试。这一次,整个流程我都开着 InterviewMan。两次经历的差别,最终让我决定全职为这个问题做产品。
文化轮一开始,我还没反应过来面试官究竟在套什么内容,它已经从我们之前的一次对话里调出了一个有关归属感的故事。我第一次被拒,输的就是归属感。到了编程轮,DFS 题刚出现几秒,它便给出了思路。系统设计轮里,它立刻标出了重复预订的并发问题,正是上次面试官追得最狠的角度。
我们测试过程序坞可见性、进程列表和 Activity Monitor,也分别在 HackerRank 与 Zoom 上试过,什么都没有显示。按年付费是每月12美元,已有57,000人使用,隐身功能超过20项,也没有场次上限。Interview Coder 每月要299美元,而且只能做编程,而这里一共5轮,编程只占2轮,偏偏还是在 Airbnb 最不重要的那2轮。
那位老队友说的每件事都对。在这家公司,决定结果的是文化故事,必须是真实的故事,里面有名字,也有你亲身经历过的时刻。
我记得自己把被拒的消息告诉她。她大概沉默了5秒,我听懂了,那意思是“我明明提醒过你”。就算她真把这句话说出来,也完全有资格。
从那以后,我几乎不再讲这段经历。我不想再走一遍,也确实不愿意回想。我只是在生自己的气,她已经明明白白告诉过我哪一轮最重要,我却带着12个打磨得漂漂亮亮的故事去了,其中0个与归属感有关。这个教训,我付了不小的代价才学会。
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

