<audio id="audio" title="开篇词 | 世事洞明皆学问，人情练达即文章：小面试，大道理" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/60/8e/602e551ac2d10c1ae32d800ce445f88e.mp3"></audio>

你好，我是软件工程师熊燚，网上大家都叫我四火，很高兴在这个专栏和你见面。

我曾经是华为、Amazon的软件工程师，现在我在Oracle工作，我之前在极客时间写过一个技术专栏[《全栈工程师修炼指南》](https://time.geekbang.org/column/intro/100035501)，自己也有一个很长时间的独立技术博客[《四火的唠叨》](https://www.raychase.net/)。

工作的这十多年来，我以工程师的身份经历过不少团队，面试过许多软件工程师候选人，指导过一些经验尚浅的面试官，也目睹过许许多多不同风格的面试，更了解过这些面试的候选人在入职后截然不同的职业发展轨迹。

现在我在云计算的某个团队工作，除了是一个几十人团队的Team Lead，也担任公司招聘环节的Bartender角色。过去这一年多来，我面试了将近100位候选人，主导或参与了他们每个人的面试结果决策会（debrief）。也就是说，平均下来基本上每周我都会参与面试，而他们中的大部分人都是软件工程师。

面试这件事听起来似乎挺简单，做起来却非常困难。从我的长期经验来看，这里存在的问题和误区实在太多了，不妨听听来自面试官的真实“吐槽”吧：

- “是不是拿算法题让候选人做就好了？可如果他做过这个题目怎么办？”
- “候选人都是工作好多年的老司机了，怎么有面试官问那种简单粗暴的算法题！”
- “‘面试造火箭，工作拧螺丝。’工作内容普普通通，为什么面试要问那么难的问题！”
- “新入职的同事，上来就给我们的系统埋雷，还不服批评，这种性格脾气面试是怎么过的？”
- “招怎样的人好，是能立马干活的，还是有潜力的？有潜力的培养起来跑掉了怎么办？”

有没有觉得“似曾相识”或者“一见如故”呢？

这样的问题还有很多，我就不一一例举了，但有一点，我想你是非常清楚的，面试就是打造团队的第一道门槛，它可能短暂、直接地影响你一个项目的进度，也可能长期、潜在地左右你整个团队的战斗力。

既然如此，那我们不妨重新来系统地审视一下，负责技术面试这件事儿，对你、对团队来说，到底意味着什么？

### 晋升第一课，招募人才

**首先，去负责技术面试，帮助公司和团队招募人才，就是一个职业上升通道的必攻克项。**

这里你不妨想想，你们公司的面试官都是什么样的人？技术骨干，管理骨干，具备软件工程师背景？对于绝大多数团队来说，的确是这样的，因为经验等综合能力可以帮助他们做出中肯评价与合理评估。

所以，当你开始关注这些，或者已经为公司和团队把关人才的时候，恭喜你，你的视野、看问题的方式、沟通和筹划事情的技巧，还有做出合理判断的能力，已经有了质的提升，或者说得到了团队的认可。这对你的职业生涯来说，无疑是**一个助推器**。

但我也要实话实说，做好这点，挑战可不小！在后面的课程中，你将会深刻体会到这点，但我还是非常鼓励在阅读学习的同时，不断去尝试。

因为，**面试还是一个预期和限制都很明确的快速学习机会，并且，是一个双向的学习机会。**预期，指的是我们针对软件工程师这个特定岗位对于候选人的期待；而限制，则明确了双方需要在每轮短短几十分钟的时间内进行交流与合作，完成话题的讨论，或是问题的解决。面试官可以从中得到不同的观点，获知各异的思路，拓宽自己的视野。而这些东西，课本上没有，老师不会教给你，项目组内也学不到，这就更显得颇为珍贵了。

所以，在专栏中，我会讲到一些经典的面试问题，其中一些我已经在面试中问过不下几十次了。比较有意思的是，有的问题我见过10种以上的解题思路，其中超过一半，都是我从候选人身上学来的。

**从这点出发，你还能深度体验换位思考，让自己和市场保持同步。**显然，你不会永远是面试官，没有人会。当你准备往更高处发展，去接受新的挑战时，这之前的每一天就都成了准备。

流畅地表现和表达自己，具备出色的沟通能力，都会是你当下以及未来的加分项，这也恰恰体现了面试官这个角色为技术人职业发展所带来的价值。

除了个人，在团队里，这**对于你个人影响力的打造也是很有帮助的**。这就不局限于工作中做一个项目、解一个bug了，还有同事间相处、合作、互助等等。无疑，参与面试是一个加深了解的好机会。

正所谓“世事洞明皆学问，人情练达即文章”，小小的面试，隐藏了大大的道理。在通过反复实践来磨练以后，能够承担面试官重任的人，最终一定会同时具备优秀的技术功底与良好的沟通技巧，以及相应的理性思维与决策能力。

### 打造优秀团队，严把人才关

当你了解了面试对于个人发展的意义之后，我想从公司和团队层面再给你一点建议。在其位、谋其政，高度更高，视野要更广。

你有没有听过这样一句话，“招聘是研发团队日常活动的第一要务”。Facebook是有比较多的类似观点在宣扬，而在我刚加入Amazon的第一天，我的老板也和我讲过类似的话。

可能你觉得夸张了，人不对换了就是了，工作还得继续，给招聘戴上高帽未免危言耸听。

先说说工作这么多年后我对这句话的体会，对于招聘的重要性，我是认同的。举个最简单的例子，就说软件工程吧，如果开发环节马马虎虎，那么测试环节就需要加倍投入去覆盖核心功能与非功能点；如果测试草草了事，那么运维就要开足马力修bug、打补丁。总之，从需求、设计、开发、测试到运维，**你总归要有一个环节把质量严格地把控好，否则就要让某个下游环节买单，下游环节不买单，那就要留给用户买单了。**

同理，研发团队不同岗位之间的协作也是如此。如果软件工程师们具备优秀的沟通与合作技巧，脾气秉性能够兼容，那么团队经理的负担就会轻很多；如果他们具备一定的项目和任务管理能力，那么PM的介入就不用那么激进；如果他们能够具备优良的编程习惯，严格把控好质量，那么许多产品我们并不需要专职的测试团队……

你看，从研发团队的核心来看这件事，面试严把关，可以省掉不少管理工程师的成本，以及给其它环节买单的成本，甚至是“少招人”；反之，一个“不合适”的工程师加入，不但研发团队无法高效运转，还要其它环节和角色陪跑，此时付出的代价就太大了。

于公司、于团队、于面试官来说，管理成本和团队建设都是逃不开的两个关键词。**而面试，就是在有限的时间内，评估候选人是否“合适”的最佳方式。**

### 候选人成长空间

最后，还有一点我觉得值得讨论一下。如果你此时还只是一位候选人，你会关心面试官的目的和套路吗？

金融市场上，有投资和投机两种行为，前者更看重长期的回报，而后者更关注短期的收益。我认为，了解面试行为本身，恰恰是二者都注重的表现。在面试这个过程中，长期看，你可以了解到哪些知识和能力是值得长期投入的；短期看，你可以了解对方的初衷和心态是怎样的。

面试通过了，皆大欢喜，我们还可以从中评估和强化自己的认识；面试没通过，你也不至于说挂得不明不白。

但更重要的一点是，不要觉得你只有候选人的身份，其实，**候选人也是面试官。**因为面试是双向的，面试官在面试你的时候，你也在面试他。如果对方考察候选人的方式折射出欠缺思考的视角、糟糕的判断，甚至对候选人缺乏尊重，那么十有八九，这样的公司和团队，你也是忌惮加入的，对吗？

### 你的收获

到这，我再来说说你能从这个专栏中具体学到什么吧。

从范围上讲，**这个专栏不是讲完整招聘的，而是专注于技术面试本身，并且，更多例子和技巧是针对软件工程师这个职位的。**当然，我们也会讨论通用型的招聘技巧，和面试前后的林林总总。

具体分为以下三部分：

面试前：我将介绍为什么要对软件工程师进行技术面试，应当覆盖哪些面试角度，以及我们该怎样去设计面试题。

面试中：专栏的重中之重，我将结合实例探讨怎样主导技术面试。包括怎样把控流程，怎样进行算法和数据结构的考察，系统设计的考察，面向对象和测试能力的考察，基础知识的考察，以及行为面试的操作方法等等。

面试后：我将针对候选人的评估讨论会如何开展来介绍。包括怎样收集事实、提炼数据，怎样引导争辩、达成共识，以及最终怎样给出客观中肯的评估。

<img src="https://static001.geekbang.org/resource/image/91/92/91ba3553517ec8da12c8838c56cd4a92.jpg" alt="">

从交付形式上看，你会一直处于面试场景中，熟悉的问题会带你步步深入，我希望能通过先破典型、后立观点的方式，打破你对于面试的固有认知，收获不一样的学习体验。另外，你在课程中还会看到很多的技能卡片和总结性脑图，来帮助你记忆与回顾。

再者，我想说，**市面上系统、完整讲解如何主导软件工程师技术面试的材料非常少**，这个专栏融汇了我10多年来在国内外大厂的面试经验与思考总结，相信能带给你富有启发性的设计思路，以及实战检验过的全新观点。对于面试来说，“问题是多变的，套路是永恒的”，如果你能消化和吸收隐藏在它背后的原则和思路，这趟旅程定不虚此行。

最后，我深知技术面试和一般的技术内容相比，观点繁杂、方法多样，落到个体实践更是差异巨大，但就像我们期待一场相谈甚欢的面试一样，这个专栏除了交付体系化的方法心得，我也希望给你提供一个畅所欲言的窗口，一把打开更多技术面试相关话题的钥匙。

因此，对于更多问题，欢迎你在评论区留言，我将尽力一一回复。此外，我还特别策划了若干期专题答疑，尽可能把你的疑惑都覆盖到。

我是四火，我们下节课见。
