聊一个非常有意思的话题:AI 刷题,面试彻底崩塌!
因为,在 AI 面前,程序员刷题面试或许已经成为过去时。
我平时特别爱看阮一峰老师的博客日志,总是从他那里能得到不一样的观点,收获不一样的启发。
阮一峰老师作为技术布道者的先驱,一直致力于在网上分享技术,经常翻译一些国外比较新的技术趋势和观点。
前几天,我看他写了一篇文章,叫:《后面试时代与 AI 刷题》。
讲述了现在大多数程序员面试刷题开始使用 AI 了。
比如,我们程序员面试经常会面试算法题目,最常见的就是为了准备算法面试,会刷 LeetCode 网站。
LeetCode 是世界最流行的算法题库。它源自美国,专门收集各种面试算法题,目前已经超过了 3000 道,不少是互联网大厂的真题。
而现在生成式 AI 诞生之后,很多程序员发现刷题似乎已经没有那么必要了。
阮一峰老师举了一个例子。
今年(2024)8 月份,一位美国网友在 Reddit 论坛发了这样一个帖子。
他自己写了一个脚本,让 AI 自动求解 LeetCode 算法题,一天之内做了 633 道题目,正确率达到了 86%,成本只要 9 美元。
这个帖子引起了巨大反响。
大家认为,既然 AI 可以提示正确答案,为什么不参考 AI 来准备面试呢?就没必要自己徒手在 LeetCode 上刷题了。
而且,现在很多互联网大厂都推出了自己的 AI 编程工具,比如:GitHub Copilot,阿里的通义灵码,百度的 Comate ,字节的 MarsCode 等等,每个大厂都有自己的 AI 编程工具或者助手。
既然大厂都允许使用 AI 编程工具了,那面试再要求 “徒手解题”,是不是已经有点过时了呢?
阮一峰老师认为:随着 AI 将越来越普及,如果未来的面试不使用 AI,就好像不使用 IDE 编辑器一样不合理,应该允许程序员在面试中使用日常工具。,那未来面试的考察重点可能会改变,从让面试者解题,变成让面试者解释和审查 AI 生成的代码。
面试时,给你一段 AI 生成的解题代码,让你解释这段代码,并且修正里面的错误和没有考虑到的地方。
这样做有很多好处:
(1)更贴近程序员的实际工作模式;
(2)能看出程序员的代码阅读和理解能力;
(3)难以事前准备或作弊;
(4)更能反映一个人的协作能力;
(5)也适用于偏向阅读代码而不是编写代码的岗位,比如项目经理、架构师等等。
这可以称为 “基于 AI 的后面试时代”,即面试从考察编码解题能力,演变到考察代码的审查理解能力。
阮一峰老师的观点确实很有意思,他提出了 AI 在技术面试中的角色转变,这个观点给我最大的启发就是:
别看使用 AI 编程工具了,这其实使得程序员的门槛更高了,对程序员的要求更高。
因为这意味着 AI 使得 “应变能力” 可能比 “学习能力” 更重要。在以往的面试中,我们更重视程序员的学习能力和技术能力,认为他们能够通过快速学习掌握新的技能、语言、框架。然而,随着 AI 工具的发展,学习知识本身已经不再是瓶颈,AI 可以在几秒钟内为你提供所需的知识与工具。因此,未来的面试可能会更多地考察候选人如何应对突然变化的情境和需求。
在这种情况下,面试中考察的将不仅是应聘者解决当前问题的能力,而是他们如何在突发情况下调整思路、快速调整策略并高效作出回应的能力。
因为现实世界中的问题并不像算法题那样有固定的解法,更需要程序员应对不断变化的需求和环境,灵活地利用各种工具,而不是死记硬背一套算法技巧。
因此,未来面试的核心可能从 “精通算法” 转向 “动态调整” 的应变能力,考察一个人如何在高压或复杂的环境下做出有效的判断和决策。
这同时也意味着面试中的创造性和批判性思维将变得更加重要,尤其是在 AI 的输出中,面试者不仅仅要盲从它的结果,更需要批判性地审查它,深入理解背后的逻辑甚至提出新的见解。
也就是说,未来程序员的核心竞争力可能不再是 “做对题目”,而是 “如何通过审视 AI 提供的答案提出更好的解决方案”。这种能力不仅仅限于编码,还涵盖了逻辑思维、系统设计、甚至跨学科知识的运用,未来的面试或许更偏向于考察 “全栈式” 思维,而不仅是技术本身。
对此,大家怎么看呢?