氛围编程的悖论

AI现在可以比任何开发人员更快地编写代码。但如果没有经验丰富的领导,它会在创纪录的时间内崩溃。

氛围编程的悖论

我不太谦虚地说,我过去是个相当不错的程序员。在十几岁时,我陷入了编写和发布计算机游戏的深渊——并因此错过了几次考试。三十年后,我通过新一代的“氛围编码”工具重新发现了这种兴奋感。我只需要描述我想要的东西——“一个语音控制的待办事项应用程序”——几分钟内,我就有了一个可运行的原型。

经过数百小时使用ReplitClaude CodeCursor的实验,我看到了它们惊人的力量和隐藏的脆弱性。这些工具是革命性的,但并不是大多数人想象的那种方式。没有人类判断和有经验的领导,它们经常创建出在自身重量下崩溃的架构和代码。

1、承诺:前所未有的速度实现即时代码

AI编码助手在其承诺上表现得非常出色。在一个项目中,我让Replit使用Gen AI“向量相似性”构建一个图形搜索界面和数据库应用程序。二十分钟内,我得到了一个React前端、Express后端、PostgreSQL和Pinecone数据库,以及完整的API层。在我的职业生涯中,没有任何东西能在原型阶段达到这样的速度。

最让我印象深刻的是速度,而不是广度。以前需要不同编码方面的专家才能完成的任务,现在单个开发者就可以完成。从前的前端、后端和数据库工程师的分工正在模糊。借助“氛围编码”,每个人现在都可以成为全栈工程师。

或者看起来是这样。然后问题开始出现了。

在生产环境中,我发现超过三分之一的代码库是重复的。一个组件膨胀到了推荐大小的九倍,导致我的环境崩溃。同样的文本规范化功能出现在十五个单独的文件中。这些不是错误——而是AI如何构建的症候。

AI提供速度——但不提供结构上的模块化。

2、限制:模式识别而没有理解

当我使用这些工具时,核心问题变得清晰起来:Gen AI可以生成代码,但很少理解系统

人类在编码时会构建心理模型——数据流的映射、组件之间的交互以及变化如何影响架构。这是系统思维:看到整体,而不是部分。

有经验的开发人员不仅仅写代码;他们推理依赖关系、约束和反馈循环。他们预见到优化一个组件可能会破坏另一个组件。

相比之下,AI通过局部模式识别运作。它拼接语法片段而不理解结构或后果。

AI不理解系统。它复制系统。

强大的系统思维者进行动态推理。他们看到问题随时间演变,而不仅仅是编译时。这种分析推理、同理心和远见的结合使人类——而不是机器——能够设计出有弹性的系统。

3、为什么经验仍然重要

有效地与AI工具一起工作需要AI所缺乏的东西:真正的架构愿景、规模意识和调试本能。

  • 架构愿景。 在决定使用双pinecone索引还是统一pinecone索引,或者将颜色数据存储为jsonb还是数组时,这些并不是编码选择——而是架构权衡。AI可以实现其中任何一个,但它无法推理哪个会扩展或保持可维护性。
  • 规模意识。 当“氛围编码”生成了一个39 MB的JSON blob导致浏览器崩溃时,我立即意识到缺陷:这在测试数据中有效,但在生产中会崩溃。 AI无法推断。
  • 调试本能。 当标准化函数出现在15个文件中时,我看到了一个缺失的抽象。当bug出现时,我没有猜测——我提出了假设:中间件顺序、异步时间、数据不匹配。AI在你指出的地方调试,但缺乏为什么的本能。
  • 感知判断。 在为设计搜索系统实施颜色匹配时,“氛围编码”完美地执行了数学运算——但结果看起来不对。该模型无法区分“红色”作为强调色与“红色”作为主导色调的不同行为。只有人类的感知才能做出这个决定。
AI执行代码非常出色。人类设计工作的系统。

我在许多情况下从“氛围编码”那里得到了令人沮丧且不足的答案,例如以下答案。

我对它的编码和调试提出质疑时,常见的“氛围编码”工具的道歉

4、悖论:更低的门槛,更高的标准

这里就是悖论所在:AI降低了进入门槛,同时提高了掌握的标准。非程序员和初级开发人员现在可以生成令人印象深刻的全栈演示——但当事情出错时,他们往往缺乏概念建模技能来恢复而无需指导。相比之下,有经验的开发人员可以放大他们的影响力,因为他们知道边界在哪里。他们明白“它运行”并不等同于“它工作”。最有效的“氛围编码”工具用户不是那些提示良好的人——而是那些思考良好的人。

怀疑者可能会说软件一直需要访问和专业知识——他们是正确的。不同之处在于你能建造得多快,以及事情破裂得多快。

AI已经消除了进入门槛:任何人都可以描述一个系统,并在几分钟内构建它。在AI之前,开始是最困难的部分。现在,维护和扩展才是。

它还解耦了代码生成和理解,创造了我们不完全理解的系统。以前要花几个月甚至几年才能大规模产生糟糕的代码;现在只需几秒钟。

经验仍然重要——但其含义已经改变。在AI时代,经验意味着判断力、抽象和连贯性:知道如何引导一个不了解自己后果的智能系统。

AI不会改变好软件的要素——它改变了没有经验的情况下坏软件发生的速度。

5、新的技能:教机器

为了很好地使用这些工具,你必须像管理一个能力很强但经验不足的开发者一样去管理它们。我已经学会了使用指导语言。

不要说“添加一个搜索功能”,我说:

在实现搜索之前,确定现有的组件并如果存在则扩展它们。

不要说“修复这个错误”,我提出假设:

“这是否是React中的定时问题?我们是否正确等待异步调用?”

这种转变将我的调试周期从五次减少到一两次。

我也问AI永远不会问的问题:

在100倍规模下会发生什么?如果文件是50MB或1M记录而不是1,000条,它还能正常工作吗?”

有时,我甚至让机器相互辩论——两个AI工具互相批评彼此的输出。这是两个智能但训练不同的初级程序员之间的配对编程。在Replit和Claude Code的情况下。AI工具不需要微管理——它们需要持续的指导和辅导。

6、组织挑战:不要被便宜的招聘诱惑

AI不会直接取代程序员——它会增加对能够指导、构建和验证机器产出的经验丰富的程序员的需求。

组织面临的真实风险是误解这一转变。雇佣不太有经验的开发人员并给他们AI助手可能看起来很高效,但可能导致以机器速度积累技术债务。初始速度优势很快会变成生产力的阻力系数。

聪明的组织已经开始进化——更新招聘、工作流程和治理以反映这一新现实。

招聘必须改变:系统思维、同理心和教学

传统的“写这段代码”面试已经过时。现在任何人都可以用Cursor、Lovable或Claude生成合格的代码。

新的测试应该是:

“这里有AI写的代码——有什么问题,你会怎么解决?”

招聘系统思维,而不是语法。只招聘初始速度的组织会放大AI的弱点;招聘判断力的组织会放大其优势。

有经验的工程师将设定界限,建立架构检查点,并有效地教导机器。真正成功的开发人员不会是被AI取代的人——而是那些学会管理AI的人。

同理心和教学现在是工程的一部分。

组织还需要投资导师计划,帮助初级开发人员学习如何有效地与AI合作。当一个开发人员同时指导AI工具和初级同事时,配对编程有了新的意义。这创造了一个学习飞轮:初级开发人员学习系统思维,而有经验的开发人员扩大他们的影响力。

7、初级开发者的机遇

如果你正处于职业生涯的早期,这种转变实际上是令人兴奋的消息——但前提是你要正确地对待它。不要使用AI来避免学习基础知识;使用它来加速系统思维的发展。当Claude或Cursor生成代码时,问问自己:为什么它以这种方式构建?如果扩展100倍,会发生什么?哪里有依赖关系?这种方法有什么问题? 最好的初级开发人员将AI输出视为学习工具,而不是解决方案——他们分析AI创作的内容,以了解哪些有效,哪些无效。寻找那些会教你系统思维和AI工具的组织和导师,因为真正成功的人不会是提示最好的人——而是最快学会系统思维的人。

8、结束语:AI放大了经验和无经验之间的差距

AI编码工具代表了软件开发的一次真正的变革。但真正的故事不是AI取代了开发人员——而是AI放大了经验和无经验之间的差距。

这些工具可以提高10倍的生产力——但只有当你带来1倍的概念理解时,它们才缺乏。它们是非常出色的助手。它们不是具有复杂系统思维的架构师。

诚然,新的编码代理开始体现更多的系统思维——但只要它们依赖于当前的大语言模型方法,它们仍将缺乏真正的判断力。

这就是AI氛围编码悖论:

机器在生成代码方面越优秀,人类经验就越有价值。

那么我还能继续编码吗?我发现同样的系统思维肌肉在我职业生涯早期培养的快速回归了。理解架构、逻辑调试、看到联系——思维方式仍然存在。

AI可能编写代码,但经验仍然编写系统。

而经验并非专属——它是通过努力获得的。如果你正处于职业生涯的早期,前进的道路比以往任何时候都更清晰:学习基础知识,与那些以系统思维工作的人一起工作,并使用AI作为镜子来加速你的成长。初级和高级开发人员之间的差距并没有缩小——但你跨越它的速度从未如此之快。


原文链接:The AI Vibe Coding Paradox: Why Experience Matters More Than Ever

汇智网翻译整理,转载请标明出处