Airbnb CodeSignal ICA 2027:四个级别、90 分钟、评分和后续流程
本文译自 PracHub 的英文原文阅读英文原文
内容概览
用五道标注为 Airbnb 的 OA 练习题备考 Airbnb CodeSignal ICA,附文件存储示例,以及来源清晰的格式、评分和后续流程说明。
收到 Airbnb 的 CodeSignal 邀请后,备考方式可能和普通的算法初筛不太一样:你可能需要在多轮新增需求中,不断扩展同一个能跑的程序。官方说明里,CodeSignal 的 Industry Coding Assessment(ICA)包含一个项目、四个递进级别,最长 90 分钟。 Airbnb 的候选人也反馈过这种形式,但你具体要做哪种测评,以你收到的邀请为准。CodeSignal ICA 规则
对于准备 2027 年申请的候选人,本文在 2026 年 9 月 21 日核对时能找到的依据,来自当前的平台文档和 2026 年的候选人反馈。这些依据并不能说明 Airbnb 2027 年有统一的招聘流程。
先看 PracHub 上的 Airbnb Software Engineer 题目。下面五道标注为 Airbnb 的 OA(在线测评)题都围绕不断演进的有状态程序,后面还有一个例子,演示后加的功能怎么破坏之前的不变量。

Airbnb CodeSignal 的现有证据能说明什么
候选人反馈: 一条发布于 2026 年 8 月 17 日、描述 7 月面试的 Glassdoor 评论提到,有一道任务管理加调度的题,分四个部分,共 90 分钟。另一条 8 月 5 日的评论说,他做的是涉及云存储的四级 ICA。这些都是匿名用户对个人经历的描述,不是 Airbnb 测评的正式规格。Airbnb Software Engineer 面经
7 月 22 日,一位在 Airbnb 面试讨论帖里留言的网友也提到,要先通过某一级别的测试才能进入下一级。这说明值得练习逐步迭代式的实现,至于具体怎么解锁,仍以你拿到的测评为准。候选人讨论
选练习形式之前,先看清测评的名称。CodeSignal 的 General Coding Assessment(GCA) 是另一个产品:四道题,70 分钟,一开始就能全部看到。「先做哪道独立题」这类建议,不一定适用于 ICA 这种项目式测评。官方 GCA 结构说明
如果邀请里只写了「CodeSignal」,就去看测评详情,或者让 HR / recruiter 确认具体形式。不要只凭平台名字去推测时限、允许使用的工具或题目结构。
四个递进级别会怎样改变你的做法
递进式测评会随着需求增加,在同一份代码上继续扩展。之前的行为就成了兼容性约束:新操作可能需要更多状态,但已有的命令仍然必须给出要求的结果。
CodeSignal 公布的 Industry Coding 框架,从基础实现和边界情况出发,逐步到数据处理、高级功能,再到进一步的扩展。它强调在保留原有功能的前提下修改现有代码。这些只是能力类别,并不保证每个 Level 3 都带时间戳,也不保证每个 Level 4 都有账户合并。官方 Industry Coding 框架
备考建议: 选能把当前约定表达清楚的数据结构。以文件存储为例,用一条包含名称和大小的记录,比用几个互不相关的 map 更容易再加上所有者,因为后者的条目容易彼此脱节。抽象要在能让需求更清楚时才加,没必要去预测每一个可能的未来功能,那样只会浪费时间。
每次扩展之后,先把之前的测试重跑一遍,再继续写新代码。在支持递进式工作区的题目里,CodeSignal 的「Level changes」视图会列出级别之间新增、修改或删除的文件。要去看这些变更,别默认题目说明和辅助文件没变。级别差异文档
值得先做的五道 Airbnb 练习题
下面每条 PracHub 题目记录都标注为 Airbnb / Software Engineer / Online Assessment。这是题库里的归属标注,所以这些题和你的备考相关;但这不代表 Airbnb 一定会出这些题,也不代表这些记录能还原你将来的测评。下面的练习重点和检查项只是编辑部的建议。
| PracHub 上的 Airbnb 题目 | 练习重点 |
|---|---|
| Implement a Capacity-Aware In-Memory File Store | 配额、命名,以及被拒绝的操作。 |
| Design a Stateful Working Hours Register | 已完成的工时段和延迟生效的晋升。 |
| Implement a Time-Aware Banking System | 定时支付、合并和历史余额。 |
| Implement a Time-Aware Task Management System | 时间边界和明确的状态转换。 |
| Implement a Multi-Level Recipe Management Service | 搜索排序和索引一致性。 |
每个领域用不同的正确性检查。文件存储里,被拒绝的 resize 必须保持已用容量和命名不变。工时登记里,晋升不能改写已完成的工时。银行系统里,要检查合并之后的待执行支付,而不只是余额。任务管理器要写清每条命令前后的状态。食谱系统要验证一次编辑会更新所有受影响的搜索结果。有了这些检查,一份公司题单就变成了一次有针对性的练习。
想要一个具体的容量不变量,就从文件存储开始。接着做工时登记,练历史状态,再做银行系统,练多个转换之间的相互影响。食谱管理适合练输出的确定性和索引维护;任务管理器则多给了一个领域,用来检验你的方法能不能迁移。
做工时登记时,要把进行中的工时段和已完成的工时段分开。做银行系统时,要区分账户的当前余额、历史余额和待执行支付。分清这些,后面的新需求就不会逼你重新构造早已丢掉的信息。
打开每条记录,按它实际的约定来做。题目的公司标签只是背景信息,要是照搬从别的银行或存储题里记下来的规则,照样可能答错。
文件存储练习:守住容量不变量
下面是一个原创练习示例,灵感来自 Airbnb 文件存储那条记录里考察的能力。其中的数字、操作顺序和简化后的规则只是示意,不是 Airbnb 的真题。
假设一个用户的容量是 100 个单位。文件归这个用户所有;已用容量等于所有已存文件大小之和。压缩会把文件大小减半,并给名称加上压缩后缀。解压则恢复原来的大小和名称,前提是操作后不超出容量,也不会造成重名。
| 操作 | 预期结果 | 操作后的已用容量 |
|---|---|---|
添加大小为 60 的 notes | 成功 | 60 |
把 notes 压缩到大小 30 | 成功;存储的名称改变 | 30 |
添加大小为 50 的 photo | 成功 | 80 |
把 notes 解压回大小 60 | 拒绝:结果的已用容量会变成 110 | 80 |
被拒绝之后,压缩文件的大小必须仍是 30,名称也仍是压缩后的名称。如果解法先增加已用容量、先改名,最后才检查容量,就会留下改了一半的状态。事后返回「失败」,并不能把这个状态修回来。
一种安全的实现方式是先算出拟变更后的状态:
proposed_usage = current_usage - stored_size + restored_size
validate capacity and destination-name availability
if either check fails: return failure without mutation
otherwise: commit name, size, and usage together
再加一个回归检查:解压被拒绝之后,查询 photo 仍然要返回 50。然后再试一个合法的、更小的操作。这样能抓出那种返回了预期错误、却悄悄破坏了计数器或索引的实现。

第二个有用的练习是确定性搜索。创建两个大小相同的文件,名称顺序和插入顺序相反,再按题目给的并列规则排序。压缩改变其中一个大小之后再做一次。这既测排序,也测搜索读到的是不是最新的数据。
这里的道理很具体:文件大小一旦影响容量、搜索和压缩,一次修改就会带来好几个可观察的后果。要把这些后果放在一起测,而不是给每个方法各写一个孤立的 happy path 测试。
把测评当作一个不断变化的程序来演练
编辑部建议: 练习时分阶段公布需求。先实现基础操作,再加搜索、配额和压缩。全程用同一个程序、同一套测试。这是一种演练设计,不是 Airbnb 官方的级别顺序。
每个阶段写代码之前,先搞清楚它的输入约定、返回值、非法操作的行为和排序规则。写一个成功用例和一个被拒绝的用例,并写明操作后的预期状态。对于带时间戳的题,要先确定:时间 t 的事件,发生在同样在 t 到期的定时动作之前还是之后。
对反复出现的判断,用小的辅助函数包起来,比如查找对象、检查容量、比较排序键或处理到期事件。不要把同一条规则散落在好几个 handler 里。需求变了的时候,你要的是一个可以检查的地方,再加一个能证明效果的简短回归测试。
模拟时用官方给的时长,但不要给每一级分配相同的时间。记下你读题、实现和 debug 实际各花多久。如果前两个阶段就用掉了大部分时间,先简化模型,再去练下一个难的扩展。
好的复盘会把失误说得很准确,比如「我更新了当前工资,把历史费率弄丢了」,或者「被拒绝的解压改掉了文件名」。这样下次练习就有了目标。「我得写快一点」就没有这个作用。
测试失败时,把命令序列缩短,直到你能手算解释哪里对不上。在文件存储练习里,添加、压缩、再添加、解压这四步就足以暴露容量 bug。一百个随机操作反而可能把它盖住。把缩短后的序列留作回归测试,然后再恢复完整的测试集。
最后,对照题目给的约束复核复杂度。小练习里扫描所有文件可能没问题;但在很多条命令里反复给不断增长的集合排序,可能就需要换一种索引。这个决定要根据题目提供的限制和要求的排序来做。在没搞懂更新之前就加一个复杂的索引,只会多出一个你必须保持正确的结构。
如何理解 ICA 分数
官方说明: CodeSignal 列出的 ICA Coding Score 范围是 200–600,分数越高,对应完成的测评内容越多。它还说,候选人不一定需要在规定时间内全部做完。ICA 评分与规则
这段描述并没有说明 Airbnb 的及格线,也没有说明每一级的分值是否相同。我们没有找到适用于所有岗位和招聘季的 Airbnb 公开分数线。像「500 分保证进下一轮」这样的说法,除非你的 HR / recruiter 明确给出这条规则,否则就当作没有依据。
备考时,除了分数,也要记录完成了多少条需求,以及回归失败的次数。如果某次扩展破坏了原本能用的行为,先查它改动过的共享状态或辅助函数,再继续加功能。这是一种工程上的做法,不代表隐藏的评分权重。
CodeSignal 说明了认证测评的结果会显示在账户的哪个位置。文档里也区分了定制测评:招聘公司可能选择不公开分数。所以看不到分数时,要去确认测评类型,而不是自己猜结果。查看你的测评结果
开始之前:环境设置和允许使用的工具
检查邀请里的截止时间、测评名称、支持的语言和规则。真正开始之前,先在平台的练习环境里熟悉跑测试和切换文件的操作。
官方说明: 部分 CodeSignal 测评要求身份验证,并需要使用你的摄像头、麦克风和屏幕。平台会在测评开始前说明是否需要监考。要准备好要求的证件和设备,并遵守该次测评显示的规则。CodeSignal 监考说明
别因为练习时用过外部编辑器、AI 助手或在线资料,就默认测评里也能用。如果环境问题让你没法继续,要通过平台或 HR / recruiter 说明具体的报错,不要反复开始新的测评。
提交之后会怎样?
要把三件事分开:提交答案、审核验证,以及 Airbnb 的招聘决定。官方说明: CodeSignal 称,监考测评的验证通常需要一到三个工作日。这只是平台的审核时间窗口,并不代表 Airbnb 的 HR / recruiter 会在三天内联系你。监考测评时间线
保存好提交确认,并留意页面上能看到的状态。如果 HR / recruiter 说的回复时间已经过了,可以有针对性地跟进一下,问问结果有没有收到、下一步是什么。光看分数,没法判断下一轮面试是什么形式。
为自己做复盘时,记下数据模型、一个棘手的边界情况,以及有更多时间的话你会改的一处。这些要和任何保密的测评内容分开。如果之后的面试问到你的思路,就讲你实际做过的决定。
下一次练习,从 Airbnb Software Engineer 题库里选一道题,先自己实现再看解答,并加一个测试,证明被拒绝的操作不会改动状态。这个练习正好针对在计时下扩展一个能跑的程序这一难点。
来源与延伸阅读
- CodeSignal:Industry Coding Assessment 规则与评分
- CodeSignal:Industry Coding Skills Evaluation Framework
- CodeSignal:General Coding Assessment 结构
- Glassdoor:Airbnb Software Engineer 候选人反馈
- Reddit:含 2026 年 7 月候选人留言的 Airbnb 面试讨论
- CodeSignal:查看题目级别之间的变更
- CodeSignal:查看你的测评结果
- CodeSignal:监考要求
- CodeSignal:监考测评的验证时间线
研究并修订于 2026 年 9 月 21 日。候选人的经历因岗位、地点和招聘季而异,请以你自己的邀请为准。
练习 Airbnb 面试题
练习 Airbnb 面试题相关文章(英文)
Roblox Robots Assessment: How to Practice Problem Solving and Iteration
Prepare for the Roblox Robots assessment with official practice links, controlled experiments, failure analysis, and clear limits on community scoring claims.
NVIDIA Ignite Internship 2027: Eligibility, Interview Process, and Preparation
NVIDIA Ignite Internship 2027 guide: eligibility, application timing, interview stages, resume tips, coding preparation, and current official updates.
Stripe SWE Intern OA 2027: One Long Coding Problem, Input Parsing, and Clean Code
Stripe SWE Intern OA 2027 guide to the reported 60-minute coding problem, parsing, hidden tests, clean code, practice questions, and next rounds.
Capgemini AI-Assisted Coding Assessment: Practice Debugging, Feature Changes, and Verification
Prepare for reported Capgemini AI-assisted coding variants with an original debugging task, owner-filter feature, bounded prompts, and regression checks.