近年来,随着大型语言模型(LLM)如ChatGPT的迅猛发展,传统的编码挑战正在面临前所未有的冲击。许多曾被广泛采用的面试题目,如实现井字棋游戏(tic-tac-toe)等基础问题,已经能够轻易被这些模型解决,导致传统考察方法逐渐失去效果。面对这一变革,招聘工程师的团队必须重新思考面试策略,设计出既能考察候选人实际能力,又具备一定“LLM抗性”的编码挑战。本文将深入剖析一家企业如何成功打造LLM-proof的take home编码挑战,展示可复制的实用经验,帮助其他招聘团队在新时代保持竞争力。首先,为什么要强调“LLM-proof”编码挑战?“LLM-proof”这个词本身带有一些引号,反映出这并非一种完全意义上的阻挡技术,而是一种提升面试质量和考验工程师深度能力的策略。毕竟,允许候选人适当使用LLM辅助也完全合理,毕竟高级工程师往往会巧妙利用各种工具。
核心在于:是否能通过面试题来识别那些能够利用模型思考、辨析、设计而非盲目复制粘贴的人才。该企业最初采用经典的tic-tac-toe项目作为主面试题,要求候选人用React完成游戏并做出扩展,支持不同尺寸棋盘及多种游戏模式。然而,随着ChatGPT的出现,他们发现该模型仅需一两次提示就能生成完整功能,甚至轻松应对扩展需求,致使面试效果大打折扣。这促使他们彻底放弃这一方案,开始重新设计符合新时代挑战特性的项目。新方案的设计核心思想包含以下几个方面。首先,挑战必须紧扣实际产品功能,而非传统玩具问题。
真实产品往往具有独特功能和业务逻辑,LLM训练数据中出现率较低。通过将题目围绕公司自身的特色功能展开,能大幅降低模型直接输出完整答案的可能性,同时通过考察候选人对特定业务场景的理解,筛选出更匹配岗位需求的工程师。其次,对于代码的抽象能力和设计质量提出明确要求。LLM虽然能够写出语法正确且功能达标的代码,但在高级设计层面的表现仍不尽人意,如合理的接口设计、层次划分、代码复用、模块化等在大多数训练样本中难以保证。因此,通过在题目中加入这些“曲线球”,促使候选人展示软件工程能力,进一步提升题目的技术门槛。除了设计题目本身的挑战点外,面试流程的完善也是关键。
该企业要求候选人必须录制30分钟视频,完整记录其代码实现过程。这一措施让招聘方可以观察使用LLM的频度和方式,以及候选人对代码逻辑的理解程度,避免了纯粹依赖提示词堆砌代码的情况。视频也为面试官提供判断候选人故障排查、调试思路和问题解决能力的有效凭据。此外,该团队还积极“玩转”LLM,将其作为辅助对象参与测试设计,反复尝试通过提示词驱动模型完成挑战中的设计要求。结果显示,尽管模型能快速生成基础实现,但在要求引入新Typescript接口以消除代码重复、增强扩展能力的难题上,却往往力不从心。多次迭代尝试均未能成功完成高质量的重构,说明单靠模型难以胜任一定深度的软件设计任务,间接验证了题目的“抗LMM”效果。
从实践经验中还得出一个深刻启示:能够借助并引导LLM完成复杂技术任务的候选人,反而更加符合公司对高级工程师的期待。换句话说,合理利用LLM辅助反映出工程思维的成熟与灵活,而非禁用工具才是重点。综上所述,打造“LLM-proof”的编码挑战需要结合产品实际特色、注重代码抽象设计,并辅以面试过程的合理监控,同时将现代智能工具作为辅助观察对象而非彻底禁用。对于招聘团队来说,这种全方位升级思路不仅提升了技术选拔的精准度,更有助于吸引那些具备高阶设计能力和独立思考的优秀人才。技术时代飞速发展,利用先进工具的能力本身就是程序员必备的核心竞争力。与其围绕“能否使用LLM”做无谓斗争,不如围绕“如何有效引导使用LLM”设计题目与流程,这样才能真正发掘最有潜力的工程师,推动企业技术实力不断提升。
未来,编码挑战无疑将继续演化,融合更多产品场景和创新设计,以适应不断提升的智能辅助环境。招聘团队唯有不断创新思路,紧紧抓住候选人设计思考过程与能力的本质,才能在激烈的人才争夺战中立于不败之地。通过上述经验分享,相信越来越多的企业将探索出符合自身特色且具备“LLM-proof”特质的综合面试方案,让新时代的招聘过程更加科学、精准和高效。