1、你 要 面 试 一 个 程 序 员 , 应 该 问 他 什 么 问 题 ?有 人 在 Hacker News 的 讨 论 区 里 , 请 求 指 点 , 怎 么 才 能 在 面 试 中 发 现 合 格 的 人 。众 人 纷 纷 出 主 意 , 有 很 多 高 质 量 的 回 帖 , 我 觉 得 挺 有 启 发 , 就 整 理 出 了 下 面 这篇 文 章 。=如 何 面 试 程 序 员 ?阮 一 峰 整 理一 、 提 问 之 前 的 准 备首 先 , 最 重 要 的 是 , 你 自 己 一 开 始 就 应 该 想 清 楚 :1. 需 要 新 员 工 完 成 什 么 样 的 任 务 ?2. 怎
2、样 的 人 能 完 成 这 样 的 任 务 ?3. 哪 些 途 径 和 方 法 可 以 发 现 这 样 的 人 ?只 有 明 确 这 些 根 本 性 的 问 题 , 才 能 正 确 高 效 地 完 成 面 试 。二 、 提 问 的 原 则假 定 你 对 上 一 节 的 三 个 问 题 , 已 经 有 了 清 晰 的 想 法 , 那 么 接 下 来 就 可 以 设 计 如何 提 问 了 。有 一 些 提 问 的 原 则 , 是 你 应 该 遵 循 的 :* 每 一 个 面 试 问 题 都 有 明 确 的 目 的 。 你 不 仅 自 己 了 解 , 还 能 向 其 他 面 试 官解 释 清 楚 。
3、* 多 提 一 些 开 放 性 ( Open-ended) 的 问 题 , 而 不 是 那 种 用 Yes/No 就 可 以回 答 的 问 题 。 这 样 做 使 你 有 机 会 与 面 试 者 展 开 讨 论 , 并 且 提 出 后 续 的 问 题 , 尽可 能 多 地 了 解 对 方 。* 不 要 问 宗 教 、 家 庭 、 健 康 、 个 人 隐 私 等 方 面 的 问 题 。* 不 要 问 太 复 杂 的 问 题 。 因 为 面 试 者 没 有 太 多 思 考 时 间 , 所 以 无 法 周 全 地回 答 , 你 也 就 无 从 判 断 他 的 能 力 了 。三 、 考 察 专 业 能
4、 力为 了 确 认 面 试 者 是 胜 任 的 , 你 可 以 问 一 些 与 职 位 相 关 的 专 业 方 面 的 问 题 。 ( 不过 通 常 来 说 , 一 次 面 试 不 足 以 看 出 一 个 人 的 专 业 能 力 。 )比 如 , 你 的 招 聘 职 位 是 系 统 管 理 员 , 你 可 以 问 “如 何 快 速 地 在 50 台 机 器 上 部 署Linux? “( 提 示 : 正 确 答 案 不 是 刻 录 50 张 安 装 光 盘 。 )另 外 , 你 还 应 该 向 面 试 者 了 解 他 的 过 去 , 因 为 过 去 是 未 来 的 最 好 预 测 依 据 。 不
5、过 , 提 问 的 重 点 不 要 仅 仅 是 他 过 去 的 成 果 , 更 要 关 注 在 当 时 的 环 境 中 , 他 是 如何 决 策 和 实 施 的 。四 、 考 察 综 合 素 质因 为 人 是 会 发 展 的 , 所 以 某 种 程 度 上 , 面 试 者 的 综 合 素 质 要 比 他 的 专 业 能 力 更重 要 。所 以 , 具 体 的 技 术 问 题 ( 如 何 调 用 API、 什 么 是 设 计 模 式 、 编 程 语 言 的 语 法 等 等 )可 以 少 问 一 些 , 更 应 该 关 注 面 试 者 的 事 业 心 、 对 工 作 的 热 情 、 进 取 心 、
6、 自 律 能力 、 毅 力 等 方 面 。下 面 是 一 些 典 型 问 题 :Why did you get into development?你 为 什 么 开 发 软 件 ?How many technical books did you read in the past year?去 年 你 读 了 几 本 技 术 书 籍 ?What was your favorite technical book in the past year? What did you learn from it?去 年 你 最 喜 欢 的 技 术 书 籍 是 哪 本 ? 你 从 中 学 到 了 什 么 ?Wh
7、at websites do you read regularly, related to development?平 时 你 经 常 访 问 哪 些 编 程 类 网 站 ?Do you maintain any open-source projects?你 有 自 己 的 开 源 项 目 吗 ?Do you code in your spare-time?业 余 时 间 你 编 程 吗 ?Do you love programming, or do you do it for the money?对 于 你 来 说 , 编 程 是 一 种 爱 好 , 还 是 一 种 谋 生 手 段 ?Hav
8、e you accomplished anything important in your career yet? Do you want to? 你 的 职 业 生 涯 之 中 有 什 么 重 要 的 成 就 ? 它 是 你 主 导 的 吗 ?What would make you feel that you have done something important?什 么 事 情 会 让 你 很 有 成 就 感 ?五 、 考 察 理 性 思 维某 些 情 况 下 , 你 可 能 需 要 了 解 面 试 者 的 分 析 判 断 能 力 , 看 他 能 否 全 面 地 思 考 问题 、 客
9、观 地 评 价 自 己 。那 么 , 你 可 以 依 次 提 出 这 样 三 个 问 题 :Whats your favorite programming language? Why? 你 最 喜 欢 的 编 程 语 言 是 哪 种 ? 为 什 么 ?If you could add one feature to your favorite language, what would it be? Why?如 果 允 许 你 为 这 种 语 言 加 一 种 功 能 , 你 会 加 什 么 功 能 ? 为 什 么 ?If you could remove one feature from it,
10、what would it be? Why?如 果 允 许 你 取 消 一 种 功 能 , 会 是 什 么 功 能 ? 为 什 么 ?这 里 的 重 点 是 , 让 面 试 者 从 正 反 两 方 面 评 价 一 件 自 己 熟 悉 的 东 西 , 看 看 他 的 思维 是 否 片 面 。 答 案 无 所 谓 对 错 , 只 要 面 试 者 有 一 个 明 确 的 立 场 , 能 够 从 正 反 两方 面 说 出 令 人 信 服 的 理 由 , 就 可 以 了 。 比 如 , 某 个 软 件 的 口 碑 不 好 , 但 是 面 试者 说 他 很 喜 欢 , 而 且 说 得 出 一 大 堆 理 由 , 清 楚 地 解 释 了 这 种 软 件 的 优 点 和 缺 点 在哪 里 , 这 样 就 很 好 。你 还 可 以 把 这 些 问 题 , 套 用 在 其 他 东 西 上 面 , 比 如 操 作 系 统 、 文 字 编 辑 器 等 等 。( 完 )