返回

文章详情

超越回忆与能力的幻觉

Hacker News2026年8月26日 10:07

2026-08-25 似乎对人工智能和编程有两种主要观点。一种认为,人工智能大多无用,因为它写出的代码糟糕,修复它的错误花费的时间比自己写代码更长。另一种观点则认为,人工智能生成的代码如此优秀,以至于最终会使程序员成为多余。我认为这两种观点的焦点都是错误的,因为它们关注的是谁来写代码。我们从来没有写过所有的代码。我从未认为记住语法和从记忆中输入代码的能力对我的工作特别重要。我使用文档。我搜索互联网。我从Stack Overflow复制示例。我阅读博客帖子。我查看同事写的代码。在现代软件系统中,这几乎是不可避免的。一个典型的应用程序可能涉及TypeScript、Python或Go、YAML、Dockerfile、SQL、配置文件、CI流水线以及其它十几种技术。没有人会记住所有的细节。那么,如果从Stack Overflow复制一段有用的代码一直是可以接受的,那么请机器生成这段代码有什么根本性的不同呢?拥有权从来与创作无关 我不觉得“人工智能写代码”这个论点特别有说服力的另一个原因是:我们一直在使用自己没有创建的系统。你从另一个团队继承一个服务。某个离开公司的员工写了其中一半的代码。三个人对你负责的部分做出了贡献,而你甚至不记得哪一部分是哪个人写的。然而,在与系统工作足够长的时间后,你开始认为它是你的。为什么?并不是因为你写了每一行代码,而是因为你理解它。你知道它的功能。你知道它的表现如何。你知道它的边界在哪里,依赖关系是什么,以及当出现问题时会发生什么。这才是拥有权的真实感受。 外包的危险 这就是我认为人工智能辅助编程变得有趣的地方。问题不在于机器写代码,问题在于让它接管思考是非常容易的。说“我知道需要发生什么;为我写这个”和说“让这个工作起来”之间有着巨大的区别,后者接受你所得到的任何结果。在第一种情况下,你只是委托了输入,而在第二种情况下,你委托了理解。这两者根本不可同日而语。 调试是显而易见的 写代码令人惊讶地容易外包。调试则更加难以外包而不牺牲重要的东西。当你自己调试一个系统时,你被迫构建一个关于它的模型。你有一个预期的结果。发生了不同的情况。所以你反向思考:应该发生什么?为了生成观察到的结果,发生了什么?现实在链条中的哪个地方与预期相分岐?经过足够多的这些练习后,你会培养出一种极其珍贵的东西:对系统行为的直觉。我曾与一些没有这种技能的开发人员合作。当出了问题时,他们随机改变事物。他们只是盲目尝试,直到最终有什么有效,但他们不知道为什么。这不是调试。人工智能使人们非常容易陷入这样的模式。给机器输入错误,让它提出修复方案,尝试修复,报告下一个错误,重复直到测试通过。你可以在没有建立有用的心理模型的情况下生成有效的软件。 能力的幻觉 这让我比人工智能取代程序员更担忧的是,人工智能可以制造出你理解一个系统的幻觉,因为它能让系统为你工作。你问一个问题就得到答案。你遇到错误,并获得补丁。补丁不起作用,因此你提供新的错误并获得另一个补丁。最终机器找到有效的方案。从外部看,这看起来像是能力。但如果你不理解解决方案为何有效,你实际上并没有变得更有能力。你在依赖机器以维持这种幻觉。当发生机器无法解决的事情,或是你用完令牌时,后果就变得特别严重。此时你需要的是未曾建立的心理模型。 这对初学者尤其重要 对于经验丰富的开发人员来说,至少有一个由多年的艰苦问题解决所建立的知识库,但对于今天刚入行的人来说,这种经验可能永远无法以相同的方式积累。如果每一次令人沮丧的调试会话都可以交给人工智能,那就几乎没有动力去花四个小时弄清楚一个系统为何表现如此。而这四个小时可不是浪费的时间。它们是心理模型的来源。你不会通过成功改变它们来学习系统,只有在你能够解释它们失败的原因时,你才能成功地改变它们。 不要外包理解 我认为答案不是停止使用

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡