AI 是否正在让开发者变笨?
AI 是否正在让开发者变笨?
2025年2月24日
人们经常谈论来自 LLM 带来的生产力提升,如果我对此不屑一顾,那就太虚伪了。 这是真的。 你可以使用 LLM 辅助的工作流程来提高生产力,但同样的工作流程也可能让你变得更笨。
我说这话是有原因的。 随着时间的推移,你会对 LLM 工具产生依赖。 到了你开始很难在没有它的情况下工作。
我之所以进入软件工程领域,是因为我喜欢构建东西并弄清楚事物是如何运作的。 这意味着我喜欢参与在键盘上按下按钮形成代码块的繁琐过程。
LLM 辅助的工作流程剥夺了这一点。 你不再享受手动解决问题的满足感,而是简单地要求 LLM 猜测一下。
你不再理解事物为什么以它们的方式运作,而是依赖于助手来告诉你应该做什么。
有些人可能不喜欢自己编写代码。 如果是这种情况,尽管这听起来可能很刺耳,但我会说他们试图从事一个不适合他们的领域。 也许你只是为了钱而来? 这很公平。 这种情况发生在每个行业,并且通常会通过一个人的热情和风度表现出来。
我见过的最优秀的工程师是那些会花几个小时的周末来构建自己的工具或软件版本的人。 事实上,创新和进步就来源于此。 如果不很好地理解系统是如何运作的,你就无法找到性能改进,否则你只是在黑暗中摸索。
有一个概念叫做 “Copilot Lag”。 它指的是这样一种状态,即工程师在每次操作后都会停顿一下,等待有什么提示他们接下来该做什么。 没有自给自足的能力,只是等待 AI 告诉他们接下来应该做什么。 这类似于该领域的新手可能会经历的情况——依赖于他们更资深的同事来指导他们并理解如何继续。
这是真实存在的。
很久以前,我曾经在 VS Code 中使用 GitHub Copilot。 现在回想起那段时间,我很惊讶我没有对知识保留造成更大的损害。
随着时间的推移,我开始忘记我使用的语言的基本组成部分。 我开始忘记语法的某些部分,基本语句是如何使用的。 回头想想,我为了短期的速度提升而侵蚀了我所掌握的知识,这真是令人尴尬。
这就是你使用 Copilot 一年后会发生的现实。 你开始忘记事情,因为你不再需要像自己尝试解决问题时那样思考你在做什么。
实际上是 ThePrimeagen 的一个视频让我意识到这一点并面对现实。 他在他的一次直播中有一段关于 Copilot lag 的剪辑。 这真是当头一棒!
在那之后,我停止使用 LLM 助手进行编码,我很高兴我这样做了。
举个例子,编译器是一个我发现非常有趣的领域。 那时我实际上尝试学习 Thorsten Ball 的《Writing An Interpreter In Go》。 但这完全没有意义。 Copilot 只是为我输出代码,而不是让我学习书中的主题和技术。 当然,你可能觉得编写了一个解析器很酷,但如果你关闭 Copilot,你能再次做到吗? 可能不能。 你也会失去学习诸如内存管理或面向数据设计等概念的机会,因为 Copilot 只是给你一些它认为可能有效的代码,而不是让你研究主题并理解细微差别。
这实际上引出了另一个角度。 研究。 这次对 AI 持有更积极的看法。
这是真的。 LLM 是有用的。 它们就像一个搜索引擎。 我们过去常常使用 Stack Overflow 来获得编程问题的帮助。 由于 LLM 是在所有这些数据上训练的,它们可以成为了解更多概念的有效工具。 但前提是你以一种好奇的心态使用它们,并且不相信它们的输出。
由于它们以胡说八道而闻名,好吧,这就是 LLM 在设计上的工作方式,这意味着它们可能有一半的时间都在编造无稽之谈。 这只是关于模式和标记序列,而不是由非常博学的人做出的真实陈述。 它是在了解他们在说什么的人创建的内容上训练的,但它以不同于源材料的方式进行复制。
无论如何,质疑回答并试图弄清楚为什么它推荐某些方法是获得 LLM 好处的唯一真正方法。 将其视为与某人的对话,你试图理解他们为什么喜欢某种技术。 如果你不理解为什么提出某些建议,或者它在底层实际做了什么,那么你就失败了。
并且做笔记! 大量地做! 我最近开始玩 Zig,我不断地记下我正在学习的关于该语言的东西,特别是考虑到这是我第一次处理内存管理。 它们可以作为一个有用的参考点,并且在你遇到困难时很有用,或者甚至可以与他人分享!
我在上班途中的地铁上写了这篇文章,我的地铁已经到达目的地,所以我将在这里结束。