最近一段时间,国外技术社区有一个关注度很高的话题。它由一篇文章引发了大量的讨论,事情的起因是2025年1月底 ChatGPT 宕机,作者有感而发写下了下面这篇文章:
https://nmn.gl/blog/ai-illiterate-programmers
几天前,由于ChatGPT宕机,Cursor 也无法使用了。
我盯着终端,面对那些我讨厌看到的红色错误信息。一个 AWS 错误信息直勾勾地回瞪着我。我不想在没有 AI 帮助的情况下解决它。
经过 12 年的编程,我发现自己变得越来越不擅长自己的工作了。这不是夸大其词,而是当代软件开发者正在面临的新现实。
技能的退化
这种退化是不知不觉中发生的。
首先,我不再阅读文档了。既然 AI 可以即时解释问题,那又何必多此一举呢?
接着,我的调试能力也开始退化。没有AI的帮助,堆栈跟踪信息现在看起来难以理解。我甚至连错误信息都懒得细看,只会复制粘贴到 AI 那里。
然后,我就变成了一个“人形剪贴板”,充当着我的代码与大语言模型(LLM)之间的中转站。
以前,每一条错误信息都能给我一些启发。现在呢?解决方案神奇地出现了,我却什么也没学到。即时答案带来的多巴胺快感取代了对问题真正理解带来的成就感。
接踵而至的是 “深入理解” 的能力也出现了问题。还记得以前花几个小时去理解一个解决方案为什么有效吗?现在,我只是简单地实现 AI 的建议。如果它们不起作用,我就改进上下文,然后再次询问 AI。如此循环,依赖越来越深。
再就是情感上的变化。以前,解决新问题是编程乐趣的一部分。现在,如果 AI 在5分钟内没有给出解决方案,我就会感到沮丧。
最可怕的是,我正在构建一个由 AI 驱动的开发工具,但我无法摆脱一种感觉:我在亲手助长这一问题,让我们的集体技能不断被退化。
“戒瘾”计划
我并不是建议做出什么激进的决定,比如完全不使用 AI - 这是不现实的。相反,我决定先尝试一周一天的“无 AI 日”,要求自己在这一天里:
-
完整阅读每一条错误信息
-
重新使用真正的调试工具
-
从零开始编写代码
-
阅读源代码,而不是询问AI
不瞒你说,这样做并不好受。相比借助 AI, 我感觉这样更慢、更笨、更令人沮丧。
但我也能感受到一些微妙的变化:我对自己编写的代码更有把控,也重新找回了那种久违的自主感,而这些却在使用 AI 的过程中一点点地消失。而且,我学到的东西也更多了。
令人不安的真相
我们并不是在借助 AI 成为 10 倍的开发者。
我们在变成了 10 倍依赖 AI 的人。这是有本质区别的。
每当我们让 AI 解决一个我们本可以自行解决的问题时,我们是在用长期的理解力换取短期的生产力;是在追求今天能写出多少行代码,却牺牲了未来真正解决问题的能力。
我并不是建议我们放弃 AI 工具——这已经不可能了。但我们需要一套使用规则。以下是我的一些想法:
-
对于你尚未尝试去理解的问题,不要使用 AI
-
阅读并理解所有AI建议的解决方案
-
定期进行无 AI 辅助的编程
-
专注于学习模式,而不仅仅是解决眼前的问题
坦率地讲,我自己也无法做到一直遵守这些规则。但这只是一个开始,我坚信任何刚接触编程的人都应该严格遵守这些规则。
此时此刻,在某个地方,一位新手程序员正在学习编程。他们永远不会体会到真正独立解决问题的成就感。他们永远不会体验到与 bug 奋斗几个小时后所获得的深刻理解。
我们正在造就一代可以向 AI 提出正确问题却无法理解答案的开发人员。每次AI宕机时,他们都会暴露出越来越无助的一面。目前,AI 的能力还不足以完全取代程序员,但随着它的进步,这种情况只会变得更糟。真正的问题不是人工智能是否会取代程序员。而是我们是否正在取代自己。