正文
我发现最违反直觉的一件事是:
AI 工具对有经验的开发者帮助更大,而非初学者。
这似乎与我们的预期相反——难道 AI 不应该让编程变得更加民主化吗?
现实情况是,AI 就像团队中非常热心的初级开发人员。他们可以快速编写代码,但需要持续的监督和纠正。你了解得越多,就越能更好地指导他们。
这就产生了我所说的“知识悖论”:
因此结果大相径庭。
我目睹过很多资深工程师使用 AI 来:
-
快速制作他们已经理解的原型想法
-
生成基本实现,然后进一步优化
-
探索已知问题的替代方案
-
自动执行常规编码任务
与此同时,初级工程师常常:
-
接受不正确或过时的解决方案
-
忽略软件中关键的安全性和性能
-
在调试 AI 生成的代码时遇到困难
-
构建他们并不完全理解的脆弱系统
4、70% 问题:AI 的学习曲线悖论
最近有一条推文完美地总结了我在这一领域观察到的现象:
非工程师使用 AI 进行编程时,发现自己遇到了令人沮丧的障碍。他们能够以惊人的速度完成 70% 的工作,但最后的 30% 却变成了边际效益递减的练习。
这个“70% 问题”揭示了当前 AI 辅助开发状态下的一个关键事实。你使用时,初期的进展感觉像是魔法——你可以描述你想要的东西,像 v0 或 Bolt 这样的 AI 工具会生成一个看起来令人印象深刻的可工作程序原型。但随后很多现实问题就开始显现。
两步后退模式
接下来通常发生的事情会遵循一个可预测的模式:
-
你尝试修复一个小 bug
-
AI 给出了一个看似合理的更改建议
-
但这个修复却破坏了其他东西
-
你再请求 AI 修复新出现的问题
-
这又产生了其他两个新的问题
-
如此循环往复
对于非工程师来说,遇到这个循环尤为痛苦,因为他们缺乏理解实际发生错误的思维模型。当有经验的开发者遇到 Bug 时,他们可以根据多年积累的经验来推断潜在的原因和解决方案。如果没有这种技术背景知识,你基本上是在处理你不完全理解的代码,就像是在玩打地鼠游戏一样。
持续的学习悖论
这里有一个更深层次的问题:本来 AI 编程工具是对非工程师而言,是一个简单方便使用的东西——因为它们为你处理复杂性问题——然而,实际上它们可能会影响非工程师的自学能力。当代码只是“出现”,而你并不理解其背后的原则时:
-
你不会培养出调试技能
-
你错过了学习基本模式的机会
-
你无法推理架构决策
-
你在维护和演化代码方面会遇到重重困难
这会产生一种依赖关系,你需要不断地将你遇到的问题提交给 AI 工具,不断地询问 AI 工具的建议,而不是自己培养处理这些问题的专业知识。
知识差距
我见过成功的非工程师使用 AI 编程工具的方法是采取一种混合策略:
-
使用 AI 进行快速原型设计
-
花时间理解生成的代码如何工作