《程序员面试金典》只适合一部分 FDE 编程面试
Google 的 45 分钟算法面试正是这本书的主场;OpenAI 的 60 分钟生产级构建只需精读几章。

要点速览
- 第 6 版(CareerCup,2015 年,708 页)收录 189 道题,但官网上的书名仍写着 150 道
- 开篇讲 Big O 和解题技巧的两章,比刷完全部 189 道题更有价值
- FDE 编程面试可能是 45 分钟算法题,也可能是中途追加需求的 60 分钟构建,先问清招聘方
距离前线部署工程师(FDE)面试还有一个月,桌上放着一本 708 页的书。时间不够全读完,问题在于该读哪几章。
答案取决于编程面试的类型。有的公司考的是这本书讲得最透的经典算法题;有的公司考的是生产级构建,这时真正有用的只有几章。
内容比书名更多
作者是 Gayle Laakmann McDowell。根据出版商的信息,第 6 版由 CareerCup 于 2015 年 7 月 1 日出版,共 708 页,ISBN 为 978-0-9847828-5-7。官网上这一版的书名仍是“150 Programming Interview Questions and Solutions”,书中实际收录 189 道题,每道题都附有提示。
作者网站称,这一版比上一版的内容多 70%。这本书出版已久,但核心内容没有过时:在面试官面前遇到陌生问题时该怎么思考。
难点在于,FDE 编程面试没有统一模板。Educative 关于 Google FDE 面试的课程介绍,编程面试是标准的数据结构与算法面试,时长约 45 分钟,一到两道题,这正是这本书的主场。
至于 OpenAI,Exponent 的指南介绍,现场面试是一轮 60 分钟的生产级构建。题目可能拆成连续的几个部分,做出第一版后还会追加新需求。同一本书,不同面试需要不同的读法。
精华在第 1 题之前
在 189 道题之前,书里有几章开篇内容:面试流程、行为面试准备、Big O,以及一章讲技术问题、介绍 5 种算法思路。很多读者直接跳到习题,这是个错误。开篇几章教的是方法,习题只是练习方法的地方。
Big O 一章讲时间和空间复杂度、均摊时间、log N 在什么情况下出现,以及如何推算递归函数的运行时间。其中“Multi-Part Algorithms: Add vs. Multiply”一节值得细读。
假设先遍历订单列表 A,再遍历客户列表 B。两个循环先后执行,复杂度是 O(A + B);把循环 B 嵌套在循环 A 里,就变成 O(A × B)。
有 10,000 个订单和 1,000 个客户时,两者的差别是 11,000 步和 10,000,000 步。
在敲代码之前,先练习把这个计算说出来。一句“两个循环先后执行,所以是 O(A + B)”,就足以让面试官看出你理解自己要写的代码。
有名称的技巧胜过死记答案
技巧一章讲授各有名称的解题方法,比如 BUD、Base Case and Build 和 Data Structure Brainstorm,还讲了好代码应该是什么样。有名称的技巧容易记住。卡住时,手里有一份清单可以逐项尝试,而不是干坐着沉默。
对 OpenAI 的构建面试来说,“好代码”这部分更加重要。第 30 分钟第二个需求到来时,命名清晰、函数拆分合理的代码几分钟就能改好;只求能跑、匆忙写出的代码可能要推倒重写。
不同面试,按什么顺序读?
189 道题按主题分组:数组与字符串、链表、栈与队列、树与图、递归与动态规划、排序与查找、面向对象设计、数据库、线程与锁、测试,以及其他几个主题。所以可以挑章节读,不必从头读到尾。
如果编程面试是约 45 分钟的算法题,先读 Big O 和技巧两章,然后依次做数组与字符串、树与图、排序与查找,最后是递归。
如果编程面试是生产级构建,读完开篇两章后,接着读面向对象设计、可扩展性与内存限制、线程与锁。这三章最接近这类面试所模拟的实际工作。
假设任务是写一个读取日志、按服务统计错误数的工具,之后追加两个需求:日志文件比内存还大,以及多个线程同时写入。这时,讲内存限制和锁的章节正好派上用场。
把练习变成简历上的证据
Educative 建议请招聘方确认面试形式,这应该是第一件要做的事。提前发一封邮件,就可能省下两周时间,不必为一轮根本不考动态规划的面试苦刷这类题。
然后,把练习成果变成别人看得见的东西。一个小仓库,提交历史展示你如何经过两三次需求变更扩展代码,并附有复杂度说明,比简历上一句“刷了 300 道 LeetCode”更能说明你的能力。
《Cracking the Coding Interview》仍是准备编程面试的扎实基础。对 FDE 来说,高效的读法是精读开篇两章,再根据招聘方确认的面试形式选读其余章节。
这篇文章对你有帮助吗?
感谢你的反馈!
5 个信源
- Cracking the Coding Interview (official site)
- Cracking the Coding Interview – Schweitzer Online (bookseller listing) · 2015-07-01
- Cracking the Coding Interview – Book Content Detail
- OpenAI Forward Deployed Engineer Interview Guide (Exponent / aced.io)
- The Coding Round – Google Forward Deployed Engineer Interview (Educative)