最近輔導的幾位同學都碰到了 Meta 最新一輪 OA,發現 Meta 2025 OA 內容已經和過去完全不同。以前是四道獨立的演算法題,現在變成了一套更偏工程實現的「系統小作業」。整場 90 分鐘,四個 Level 遞進,核心考點從演算法思維變成了程式碼設計與問題建模能力。

Meta 2025 OA 測試流程概覽
- 平台:CodeSignal
- 时长:90 分钟
- 結構:共四個 Level(Level 1–4)
- 程式語言:Python / Java / C++ 皆可
- 題型特色:邏輯設計+ 資料封裝+ 程式碼穩健性
- 演算法難度:較低,幾乎不考複雜資料結構
Level 1: Basic Data Structure
題目通常要求你實作一個簡易資料結構,例如一個 in-memory database 或 key-value store。
Example (simplified):
set(key, field, value)
get(key, field)
delete(key, field)
實現要求:
- 正確儲存和傳回欄位值
- 刪除字段後查詢返回 None
- 多次插入相同欄位需覆蓋舊值
這一關主要檢視你對基礎資料結構(如字典、雜湊表)的封裝與類別設計。
Level 2: Filtering and Field Scanning
在 Level 1 的基礎上,增加新的接口,用於根據條件篩選欄位。
Example (simplified):
scan(key) -> list[str]
scan_by_prefix(key, prefix) -> list[str]
返回格式要求嚴格,例如:
["age(30)", "name(Alice)"]
字段需要按字典序排序。
這關核心在於:
字串拼接與排序實作是否正確;
傳回結果類型與格式精確比對。
Level 3: Time and TTL
第三關正式引入時間戳與 TTL(Time-To-Live)邏輯,是整場的關鍵。
Example (simplified):
set_at(key, field, value, timestamp)
set_at_with_ttl(key, field, value, timestamp, ttl)
get_at(key, field, timestamp)
delete_at(key, field, timestamp)
scan_at(key, timestamp)
要點包括:
- 支援時間軸版本控制(timestamp 嚴格遞增);
set_at_with_ttl寫入後僅在[timestamp, timestamp + ttl)時間段內有效;delete_at後同字段不可見,除非後續有新的 set。
這一關更像真實系統中的「快取+ 版本管理」場景,實作上需要維護每個欄位的生效時間區間。
Level 4: Edge Cases and Consistency
最後一關往往增加一些額外約束,例如同時寫入模擬、空 TTL、重複刪除等極端情況,並專注於檢視程式碼健壯性。
測試範例規模都不大,但覆蓋點很多,例如:
- ttl=0(立即過期)
- delete 不存在欄位(傳回 False)
- 同時寫入多個 field 的一致性
只要邏輯設計合理,性能不是考察重點。
總結與心得
Meta 這套 OA 明顯在向「工程實現」轉型,不再考算法刷題,而是希望候選人能設計出結構清晰、功能完整、能應付邊界情況的程序。
建議準備時多練習這類「系統實現題」,例如設計快取、資料庫、檔案系統模擬等。理解介面定義與資料流邏輯,比背演算法模板更有用。
原來拿下 OA,不一定要獨自硬撐
如果你也在準備 Meta、Citadel、Two Sigma 這類高壓 OA,不妨了解一下 Programhelp 的助攻团队。
我們這邊的導師大多來自 Amazon、Meta、Jane Street、Optiver 等一線公司,熟悉各平台的出題套路和考點分佈。
當學員刷題或實戰 OA 時,我們會即時陪跑,幫你做思路梳理、程式碼邏輯提醒、時間分配指導。
不是冷冰冰的講解,而是那種「懂你卡點」的陪伴式助攻——有人在你旁邊默默提醒:「這題重點在邊界處理」「這裡別貪心」。
很多學員都說,這種陪跑的感覺比獨自刷題有效太多。
如果你也想更有效率、更穩地拿下 OA,可以了解我們的一對一遠程助攻計劃,讓準備過程不再孤軍奮戰。