AI正在造就一代文盲程序员
知名博主 Namanyay 近期撰文探讨了 AI 编程工具(如 GPT 和 Cursor)对程序员能力产生的潜在影响。文章指出,AI 工具在大幅提升开发效率的同时,也可能导致程序员对其产生过度依赖,进而逐渐荒废阅读文档、独立调试等基本技能,深度理解能力也会受到影响,甚至连解决问题的乐趣也大为降低。作者将这种现象称为造就了新一代的“文盲”程序员。
这篇文章所揭示的问题,是每个程序员都应正视的,非常值得一读。
几天前,ChatGPT发生宕机,我的Cursor也因此无法正常运行。
我盯着终端屏幕上那些令人头疼的红色错误信息,其中一条来自AWS的错误提示格外显眼。没有AI的协助,我实在提不起兴趣去深入排查问题的原因。
编程工作已经做了12年,但我却感到自己的技术水平似乎有所退化。这并非危言耸听,而是当今许多软件开发者正在经历的现实。
能力衰退
这种衰退悄然降临,几乎难以察觉。
首先,我逐渐放弃了阅读文档的习惯。既然AI能够即时提供解释,为何还要花费额外精力?阅读文档的必要性似乎降低了。
接着,我的调试能力也开始退化。在没有AI的情况下,面对复杂的堆栈跟踪变得困难重重。如今,我往往不再仔细阅读错误信息,而是直接将其复制粘贴交给AI处理。
我俨然成了一个“人工中转站”,仅仅充当代码与大型语言模型(LLM,一种强大的AI模型)之间的桥梁。
以前,每次遇到错误信息,我总能从中汲取知识。而现在,解决方案总是迅速呈现,我却很少再去深究其背后的原理。即时答案带来的短暂愉悦,逐渐取代了深入理解问题所带来的成就感。
接下来受到影响的是深度理解能力。还记得以前花几个小时理解一个解决方案为什么有效吗?现在,我只是简单地执行AI的建议。如果没用,我就改进上下文,然后再次向AI提问。这是一个不断增加依赖的循环。
随之而来的是情绪上的变化。以前,解决新的问题是编程的乐趣之一。现在,如果AI在5分钟内没有给出解决方案,我就会感到沮丧。
最可怕的是什么?我正在构建一个AI驱动的开发工具,但我挥之不去的感觉是,我正在助长一个正在侵蚀我们集体技能的问题。
恢复计划
我并不主张彻底放弃AI,这显然不切实际。作为替代,我尝试设立“无AI日”,每周安排一天:
- 仔细阅读每一个错误信息
- 使用调试器进行问题排查
- 从零开始编写代码
- 阅读源代码,而非依赖AI提供答案
坦白说,这并不容易。我感觉自己更慢、更笨、更沮丧。
但我也能看到不同之处。我感觉与我的代码有了更强的联系,并且有了一种所有权感,这种感觉随着AI的使用而慢慢消失了。而且,我学到了更多。
(令人不适的)真相
我们不会因为AI而成为10倍效率的开发者。
我们正在变成对AI 10倍依赖的开发者。关键在于,效率提升并不等同于能力提升。
每当我们让AI去解决那些本可以自行处理的问题时,实际上是在以长远的学习能力为代价,换取眼前的效率提升。我们专注于完成当下的任务,却忽视了未来能力的培养。
我并不是建议我们放弃AI工具,那已经不可能了。但我们需要制定使用规则。以下是我的一些想法:
- 对于你没有尝试先理解的问题,不要使用AI
- 阅读并理解所有AI建议的解决方案
- 定期进行一段时间的无AI辅助编码
- 专注于学习模式,而不仅仅是解决眼前的问题
我不想撒谎,我不认为我能一直遵守这些规则。但这是一个开始,我坚信任何刚开始学习编程的人都应该绝对遵守所有这些规则。
现在,在地球的某个地方,一个新的程序员正在学习编码。他们永远不会知道真正靠自己解决问题所带来的满足感。他们永远不会体验到与一个bug搏斗几个小时所带来的深刻理解。
我们正在培养一代能够向AI提出正确的问题,但却无法理解答案的开发者。每次AI宕机时,他们都会暴露得越来越无助。目前,AI还不够强大来完全取代程序员,但随着它的改进,情况只会变得更糟。真正的问题不是AI是否会取代程序员,而是我们是否在自我取代。
尝试一天不使用AI编码。结果可能会让你感到惊讶。
(全文完)
作者:Namanyay