测试在面试中借助 ChatGPT 作弊有多难

许多工程师和招聘经理正在面对这样一个问题:候选人究竟有多容易借助 ChatGPT 及类似工具通过技术面试,尤其是 LeetCode 风格的编程测试。观点分歧明显:一方认为在“闭卷”场景下未披露地使用 LLM 就是作弊;另一方则认为面试应当反映真实工作,而在真实工作中,Google、Stack Overflow 和 AI 助手都是标准工具。一个反复出现的主题是,公司可能需要重新设计面试——更多关注推理、代码评审和真实任务,并且要么明确允许并观察 AI 的使用,要么设计出能测试理解能力、而非 LLM 稳定提供的信息的问题。

工具(ChatGPT、Google、Stack Overflow)在面试中的作用

  • 许多人认为面试应该尽量反映真实工作,而在真实工作中查资料和使用 LLM 是很正常的。
  • 也有人认为面试故意被限制为“考试”,目的是衡量底层能力,而不是调用工具的能力。
  • 有些公司明确允许使用 Google/LLM,并评估候选人如何使用它们;另一些公司则把任何未披露的工具使用都视为作弊。
  • 一个反复出现的建议是:如果某个工具能轻易解决你的问题,那说明这个问题本身就不适合作为评估题。

开卷 vs 闭卷的预期与诚实性

  • 一些评论者支持“开卷”面试:候选人可以使用文档、网络搜索,甚至 LLM,但这必须明确说明。
  • 他们强烈强调,如果面试被定义为闭卷,却偷偷使用 ChatGPT,那无论能力如何,都会被视为不诚实。
  • 也有人认为这种态度过于道德化,认为糟糕的面试流程会激励“钻空子”,而表现优秀的人也仍可能会动用工具。
  • 另一些人则强调,在面试中愿意撒谎,本身就是一个关于可信度的否定信号。

设计对 LLM 具有抵抗力或对 LLM 友好的面试

  • 关于 LLM 抵抗型题目的建议包括:
    • 使用网上找不到的定制化 DS&A 题。
    • 调试或修改非平凡、可能有 bug 的代码(包括 LLM 生成的代码)。
    • 在现有代码库中完成真实任务,然后讨论取舍和设计。
    • 出题的“陷阱”藏在细节里,而这些细节往往会被 LLM 忽略。
  • 反对观点认为:与其对抗 LLM,不如明确把它们纳入流程,并评估候选人如何提示、批判和纠正模型输出。

Leetcode、基础能力,以及面试应测量什么

  • 一些人坚持认为,DS&A / Big‑O 题只要设计得合理,仍然是筛掉“根本不会写代码”的人的最佳大规模过滤器。
  • 另一些人则觉得这对有经验的工程师是一种贬低,而且与典型的 CRUD 风格工作基本无关。
  • 许多人主张混合方式:基础编码检查加上设计、代码评审和“业内闲谈”,以探测深度、推理能力和经验。

远程 vs 线下,以及作弊检测

  • 面试官表示,在远程面试中会看到明显的作弊迹象(语气变化、屏幕反光、“全选”、异常停顿),但也承认存在选择偏差:更隐蔽的作弊者不会被发现。
  • 有些人预见,作为回应,线下面试或严格监控(屏幕共享、单显示器、录制)会越来越多。
  • 也有人怀疑这种军备竞赛是否可持续;另一些人则认为这是不可避免的。