刷LeetCode的时代要过去了?大厂面试正在转向
最近,谷歌一项关于软件工程师面试的调整引发了广泛讨论。
按照新的试验方案,应聘者可以在面试过程中使用Gemini,考核内容也开始有所调整。
除了从零开始编写一道算法题,谷歌还希望应聘者能够理解他人编写的代码、找出错误,并评估AI给出的解决方案是否合理。
有网友兴奋地表示:「AI终于让LeetCode面试成为过去式了。」
编写代码之外,谷歌还要考察你如何阅读代码
对于许多准备进入大型科技公司的程序员而言,LeetCode应该是一个再熟悉不过的名字。
刷算法题、研究时间复杂度、在规定时间内写出正确代码,这些几乎成了技术面试的必备环节。
而谷歌正在尝试另一种评估方式。
据Business Insider 5月7日的报道,在谷歌的试验新环节——代码理解(Code Comprehension)中,应聘者需要对一份现有代码进行阅读、调试和优化。
AI也可以参与其中。谷歌发言人确认,试验中提供给应聘者的工具就是Gemini。
既然可以直接询问AI,面试官又该如何判断应聘者的水平?
谷歌给出的答案是「AI熟练度」(AI fluency)。
面试官会关注应聘者如何设计提示词、验证AI的输出结果,以及调试代码。应聘者需要有能力判断AI给出的建议是否合理,并对最终结果负责。
这意味着,即使Gemini很快发现了一个bug,应聘者也必须核实修复方案是否可行,以及这次修改是否会引发其他问题。
当然,目前这还只是一项有限范围的改革。
相关安排面向今年下半年,主要涉及美国部分团队的初级和中级软件工程师岗位。谷歌云、平台与设备部门等组织参与了试验安排,未来是否推广取决于实际效果。
谷歌招聘副总裁Brian Ong表示,调整面试流程是为了更准确地反映工程师在AI时代的实际工作方式。
除了代码理解环节,谷歌也计划在部分面试中加入对应聘者过往项目的技术设计讨论,让初级应聘者处理更开放的工程问题。
目前可以确认的是,考核范围正在扩大。除了能否从零写出代码,企业开始考察应聘者能否处理一份已经存在、甚至由AI生成的代码。
Karpathy:手写代码能力开始退化,但读代码是另一回事
谷歌为何要调整面试?看看谷歌自己的工程团队正在发生什么,就不难理解。
今年4月,谷歌CEO Sundar Pichai透露,公司75%的新增代码已经由AI生成,再由工程师审核。去年秋季,这个比例还是50%。
短短半年左右,AI在软件开发中的参与程度就有了显著提升。
对于个人开发者来说,类似的变化发生得更快。
今年1月,Andrej Karpathy在X上分享了自己使用Claude Code的经历。
他发现,自己的编程习惯仅用了几周就发生了近乎颠倒的变化。
2025年11月,他大约80%的编程工作仍然由自己手动完成,或者借助代码自动补全;到了12月,约80%的工作已经交给Agent,自己只负责剩下的修改和完善。
Karpathy感叹,这是他近20年编程生涯中,工作方式发生过的最大变化之一。
如今,他的大量编程工作已经变成使用自然语言向AI描述需求。
这种变化甚至带来了一点意想不到的影响:Karpathy发现,自己手动编写代码的能力开始逐渐退化。
不过,他特别区分了两种能力:
「生成(写代码)与辨别(读代码),是大脑中不同的能力。」
编写代码往往要求程序员记住许多具体语法和实现细节,而审查代码更依赖理解已有逻辑、判断实现是否合理。因此,一个人即使开始不擅长从头写代码,仍然可能读懂代码、发现问题。
但AI的代码也越来越难检查。
Karpathy在帖子中提到,编程模型如今犯下的错误,已经不再主要是简单的语法问题。
相反,它们可能在理解需求时做出错误假设,然后顺着这个假设继续完成整套实现。有时,模型会写出上千行复杂代码,而工程师指出更简洁的实现方式后,它又能迅速将代码缩减到百行左右。
这些错误看起来更像经验不足的开发者在匆忙工作中犯下的疏漏。
因此,尽管Karpathy已经很难想象自己重新回到主要依靠手写代码的开发方式,他仍然认为,需要密切关注AI写出的内容。
这就是谷歌面试的新思路。
如果AI可以在几分钟内完成大量编码工作,那么工程师的任务也会越来越多地转向理解代码、验证实现,以及在AI出错时进行干预。
代码生成越来越容易,代码审查的能力也因此变得更加重要。
谷歌不是第一家,有人甚至故意让AI写错
实际上,谷歌已经算不上最早尝试这种面试方法的公司。
去年6月,设计平台Canva就在官方工程博客中宣布,后端、机器学习和前端工程师应聘者在技术面试中将被要求使用AI编程工具。
对于前后端岗位,Canva甚至用AI辅助编程取代了基础面试环节,此前这个环节以算法和数据结构为主。
原因很直接:旧题在今天已经没那么有效了。
Canva曾经用AI测试自己的传统面试题,发现模型往往只需要几秒钟,就能生成正确且带有说明的解答,甚至无须进一步提示。
于是,Canva决定把题目变得更复杂一些。
例如,以前可能要求应聘者编写「康威生命游戏」,现在则可能让他们设计繁忙机场的飞机起降控制系统。
这种开放式问题需要应聘者自行梳理需求、确定方案、协调不同功能之间的关系。AI可以完成其中的编码任务,但很难仅凭一句简单指令,就处理好所有设计与工程细节。
Canva还分享了试验中的观察。
表现出色的应聘者往往会主动厘清需求,把复杂任务拆分成更明确的部分,再有针对性地调用AI。他们会检查生成结果,并在发现问题后调整方案。
一些有编程能力但缺少AI使用经验的应聘者,反而可能在引导AI、判断建议是否合适时遇到困难。
Meta也在开始采用类似方式。
2025年7月,媒体披露Meta正在开发允许使用AI的编码面试。随后,Meta官方公开介绍了这一试验,并鼓励参与的应聘者使用经过批准的AI工具。
Meta特意强调,在这样的面试中使用AI,已经不算作弊,因为这本来就是工程师实际工作中会使用的工具。
而到了今年10月,招聘技术平台Codility发布了新的面试功能,允许面试官在应聘者使用的AI编程工具中加入隐藏指令。
比如,让AI故意写出存在bug的代码,或者采用不够合理的编程方式。
应聘者不会看到这些指令。面试官则能够观察应聘者的处理方式,他们究竟会认真检查生成结果,还是直接复制粘贴、照单全收。
平台还支持在不同考核任务中控制AI的使用权限,让企业既能评估应聘者与AI协作的表现,也能检查其独立解决问题的能力。
过去,为了防止应聘者通过AI获得答案,面试官可能需要想办法识别AI的使用痕迹。现在,AI反而可以直接进入考场,甚至成为面试官用来检验应聘者的工具。
以前,一道编程题可能从「请实现这个算法」开始。
未来,面试官可能直接把一份AI代码交给你,再问:「这段代码已经能运行了,你觉得它有什么问题?」
而手边的AI工具,未必能帮你答对这道题。
就像有的网友调侃:「要求应聘者使用Gemini完成任务,本身就是一个很好的面试题」。