暗无天日

=============>DarkSun的个人博客

读:HN 热帖——用 AI 写代码,你的手艺在退化吗?

一条 Hacker News 帖子,标题是 "We dropped Claude."(我们放弃 Claude 了)。发帖人说得很直接,不想对一家千亿公司产生硬依赖来写软件,希望社区一起搞出 LLM 领域的 "Linux/Postgres/Git"。

帖子本身只有几段话,但底下 220 条评论里,真正吵起来的跟开源模型关系不大,而是一个更扎心的问题,*用 AI 写代码,你的编程能力是在退化吗?*

「看懂了」不等于「会做了」

viccis 打了个比方,补习班效应。

他观察过找补习老师的学生,老师带着做作业、讲题,学生觉得自己全懂了。但考试的时候做不出来。原因很简单,看到别人解题,大脑会产生一种「我懂了」的错觉。任何看完教程觉得「这么简单」然后自己做不出来的人,都经历过这种感觉。

换到 AI 编程上一回事。Claude 生成了代码,你读了一遍觉得逻辑清晰,但这跟你从零写出来是两码事。教程里那个 Todo List 应用看着简单,但作者写的时候做了无数个你根本不需要考虑的决策。

他出了道测试题:如果你在一架没有 WiFi 的飞机上,要用笔记本改代码,你会多难受?

正方认为

不练就忘,没有例外

bdangubic 用自己的经历反驳了「保持好奇心就行」的说法,

「我以前俄语说得跟母语一样。后来不说了。每天我也很好奇也很有责任心,但现在我说不出十个俄语单词。不用就会忘,没有例外。」

有人反驳说编程语言跟自然语言不同,因为编程语言还包括过程、最佳实践、设计原则,这些更难忘记。bdangubic 的回应也很直接,1997 年的最佳实践放到今天还是最佳实践吗?设计原则一直在变,不用就会过时,过时跟忘记效果一样。

还有人把类比做了修正,更公平的比较不是「完全不说俄语」,而是「用英语讨论俄语」。用 AI 写代码的人并没有完全不看代码,只是从「写」变成了「读+审查」。但 bdangubic 的核心论点没被动摇,读和审查替代不了动手写,就像听俄语替代不了说俄语。

PR 灾难现场,不理解就提交

SpicyLemonZest 的观察更尖锐,上周有两个同事,都觉得自己用 AI 用得很好,但提交的 PR(Pull Request,代码合并请求)在整个代码库的上下文中完全说不通。

Jweb_Guru 补充说,这跟以前从 Stack Overflow 复制粘贴的问题不一样。以前要交一个不知所云的 PR,至少得自己找到代码、看懂片段、复制粘贴,这个门槛已经过滤掉了一批人。现在这个门槛没了,任何人都可以让 AI 生成一整段自己看不懂的代码然后直接提 PR。

viccis 总结得更扎心,「给我交垃圾 PR 的那些人,用 AI 之前就写垃圾代码。只不过现在垃圾数量乘了十倍。」

冷漠比退化更可怕

ljm 觉得问题跟退化没太大关系,关键是态度变得冷漠。

有些人看到自己不理解的代码,直接说「LLM 是这么说的」,然后拒绝学习,甚至以无知为荣。psygn89 也碰到了类似的事,有同事直接把 AI 的回复复制粘贴来回应别人对代码的质疑。那个质疑本身有好几层含义,但 AI 的回复只给了表面解释。

这就有个问题了。如果提问的人自己也能问 AI,你把 AI 的回复搬过来有什么价值?

malnourish 走了另一条路。方案自己想,代码让 AI 写,只要安全能跑就行。以前需要花大力气学习具体的语言,是因为那是当时解决问题、带团队必须过的坎。现在不需要专研具体的语言了,可以把精力放到更大的图景上。

除此之外,还有个问题。如果让 Claude 做的是编程里「有趣的部分」(动手写代码),你自己做的是「无聊的部分」(规划、审查),那到底是你在用工具,还是工具在替你享受? 似乎没有人能给出满意的回答。

反方

编译器也没让人忘掉编程

最经典的反驳是编译器类比。现在所有人都在用编译器而不是手写汇编,有人担心过「万一编译器没了怎么办」吗?每多一层抽象,人就少操心一层细节。AI 只是最新的一层。

post-it 的视角很实际,「我在意的技能是理解软件、修改软件、制造软件。这些能力显然没有退化。语法书写能力可能确实在退化,但我会偶尔做几道算法题保持手感。」

还有人说用 LLM 反而学得更快了,直接把整个论坛帖子扔进深度思考模型,然后随便追问两小时,以前哪有这种条件。

但也有人立刻质疑,你学到的到底是「做」的能力,还是「问」的能力?问无限问题不等于掌握了那件事本身。

核心分歧,什么算「学会了」

说到底,这帮人争的是一个很老的问题。什么算「学会了」?

viccis 的标准很严格,如果没有工具你能再做一遍,才算学会。做不到,就不算。

还有人从另一个角度切入,理解和生成是两种不同的技能。学语言的人都知道,听力和口语是两回事。你能听懂别人说日语,不等于你能开口说。用 LLM 读代码就像练听力,自己写代码就像练口语,两者都需要专门练习。

我的感觉

看完 220 条评论,我的感受是,两方说得都对,但他们说的压根不是同一件事。

「退化论」说的是 *动手能力*,就是不借助工具从零写出代码的能力。这个确实在退化,但这不一定是坏事,就像没人觉得不会手写汇编是一种损失。

「进化论」说的是 *理解和决策能力*,就是能不能在更高层面上看懂系统、做出判断。这个确实可以因为 AI 而加速提升,前提是你真的在读和思考,而不是无脑复制粘贴。

说真的,我比较认同前面说的"冷漠比退化更可怕"的观点,不怕你用AI。就怕你看到不理解的代码不再追问为什么,把 AI 的输出当终点不当起点,这样做意味着你已经主动放弃了成长。

AI : LLM : 编程 : 技能退化 : Claude : 开源模型