AI 正在培养一代不会编程的 “文盲程序员”
这是最近一阵在国外技术社区很受关注的一篇热门博客。作者 Namanyay 自 14 岁就开始从事专业开发。但是他最近很困惑,因为觉得开发技能正在衰退,似乎没有 AI,什么都干不了。于是写了这样一个博客,并给出一些建议(某天完全不用 AI 编码)。
几天前,由于 ChatGPT 宕机,Cursor 也随之无法使用。
我盯着终端里那些让我头疼的红色报错信息 —— 是个 AWS 错误。我并不想在没有 AI 帮助的情况下自己解决它。
经过 12 年的编程生涯,我的编程水平竟然倒退了。这并不是夸张,而是当代软件开发者正在面临的新现实。
1、逐渐的 “退化”
这种退化是悄悄发生的。
最先受到影响的是阅读文档的习惯。既然 AI 能瞬间给出解释,为什么还要费力读文档呢?
接下来是调试技能的退化。现在看到堆栈跟踪信息就觉得难以应对,如果没有 AI 的帮助,我甚至连错误信息都懒得细看,只会复制粘贴到 AI 那里。
我已经变成了一个 “人形剪贴板”,在自己的代码与大型语言模型之间只是一个中转站。
过去,每条错误信息都能让我学到些东西。现在呢?解决方案像变魔术一样出现,我却没有任何收获。即时答案的多巴胺快感取代了对问题本质的理解所带来的成就感。
接着,“深入理解” 的能力也出现了问题。还记得以前花几个小时去理解一个解决方案为什么有效吗?现在,我只会直接实现 AI 给的建议。如果它不奏效,我就改一下上下文,再问 AI 一次。如此循环,依赖越来越深。
情感上的变化也随之而来。过去,解决新问题本身是编程的乐趣之一。现在,如果 AI 在五分钟内不能给我答案,我就会感到沮丧。
最可怕的是,我正在构建一个 AI 驱动的开发工具,但我无法摆脱这样的感觉:我在亲手助长这一问题,让我们的集体技能不断被侵蚀。
2、“戒瘾” 计划
我并不是建议彻底摆脱 AI—— 这并不现实。相反,我决定先尝试一周一天的 “无 AI 日”,要求自己在这一天里:
完整阅读每一条错误信息
重新用实际的调试器
从零开始写代码
多读源码,而不是直接询问 AI
说实话,这样做并不好受。我觉得自己更慢、更笨,也更容易沮丧。
但我也能察觉到不一样的地方:我对自己编写的代码更有把控,也重新找回了那种自主感,这些在使用 AI 的过程中正一点点地流失。此外,我也学到了更多东西。
3、不太舒服的真相
我们并没有因为 AI 成为 “10 倍程序员”。
我们只是对 AI 的依赖变成了 10 倍。这是有本质区别的。
每当我们把可以自行解决的问题交给 AI 时,我们就用长期理解换取了短期生产力。我们只是在追求今天能写出多少行代码,却牺牲了未来真正解决问题的能力。
我并不是说要完全屏蔽 AI—— 那条路已经不可能回头了。但我们需要制定一些 “使用规则”。以下是我的一些想法:
在使用 AI 之前,先自己尝试理解问题
仔细阅读并理解 AI 建议的所有解决方案
定期进行不依赖 AI 的编程练习
注重学习思路与模式,而不仅仅是解决眼前的问题
我不会假装自己能一直严格遵守这些准则,但至少要给自己一个开始。我也强烈建议刚入行的程序员们尽量遵循这些原则。
此时此刻,某个新手正在学习编程。他们或许再也无法体会亲手独立解决问题的满足感,也不会拥有为一个 bug 困扰数小时后豁然开朗的深刻理解。
我们正在培养一批只会问 AI 问题、却无法真正读懂答案的开发者。一旦 AI 宕机,他们的无助会暴露无遗。现在的 AI 还不足以彻底取代程序员,但随着 AI 不断进步,情况只会越来越糟。真正的问题不是 “AI 能否取代程序员”,而是我们是否正在自我淘汰。
尝试一天不使用 AI 编程,或许你会得到一些意想不到的收获。