# 再也没人翻开编程书了
很久以前,书店里有面墙。穿过杂志区和食谱区,到了电脑书那一片,你会看到一排封面上画着卡通动物的书:JavaScript 上是犀牛,Perl 上是骆驼,Python 上是蟒蛇——那些 O'Reilly 经典。每本厚厚的,五十美元一本,标题朴素到不像今天的事:《Learning React》、《HTTP: The Definitive Guide》。你想学怎么用电脑做一件事,就买一本回家,打开放在自己电脑边上,照着上面写的字一行一行敲进去,直到那件事跑起来。
那面墙现在小了很多。在有些书店里它已经消失了,被压成一个小架子,上面六本书,三本是关于 ChatGPT 的。
软件工程师 Cyrus(HN 用户名 `cylo`)在自己的 Unix/开源视角技术随笔博客 [unix.foo](https://unix.foo/) 上写了一篇 [《Nobody cracks open a programming book anymore》](https://unix.foo/posts/nobody-cracks-open-a-programming-book/),开篇就是这个画面。Circana BookScan 跟踪的"computer book"分类,2023 年前九个月同比下滑 16.9%。Publishers Weekly 在那之后的 2024 年和 2025 年索性不再单独点名这个分类——**类目不会死,它只是不再被讲到**。美国出版商协会的"professional books"段(你雇主可能给你买的那种)2025 年 8 月单月跌 22.3%。书业整体微涨,技术分支在出血。
不像音乐行业当年撞上 Napster 那种引爆时刻——没人提诉讼,出版社也没开记者会,**就这样安静地结束了**。原因你大致也知道:ChatGPT 月活超过 9 亿,GitHub Copilot 2026 年 1 月有 470 万付费用户,一年涨了 75%。Stack Overflow(SO)现在每月收到约 3800 个问题——回到了 2008 年它刚上线时的水平。
cylo 对编程书有个清醒到讽刺的诊断。这玩意本来就是个荒唐物件——印在纸上的文字,描述屏幕上的软件,读者得用手再敲到自己屏幕上。但这个**错位的形式恰好强迫了一件事**:作者必须慢,读者也必须慢。400 页你蒙不过去。
> Knowledge, for working programmers, was always the residue of typing. Of doing. The typing was the practice.
对干活的程序员来说,知识从来都是打字的残余物。打字本身就是练习。聊天机器人不强迫这件事——它会用你要求的字数恰好讲明白幂等性,你关掉标签页,什么也想不起来,**因为你没打过那些字**。
2026 年 5 月 26 日的 HN 上,这文章 179 分、201 条评论。讨论里没有反对作者诊断的声音——相反,几条评论把这个诊断推到了具体的工程现实里。
`Gigachad` 那条最硬:
> 我们公司争论技术面试要不要允许用 AI。最后我们干脆两种面试都跑了一遍。结果有意思——每个候选人要么两种都过,要么两种都挂。**不会手写代码的人,让 agent 帮也搞不定**。
这条把"打字 = 学习"这个直觉变成了一份对照实验。能不能用 AI 写出代码,依赖于你已经内化了多少代码本身的结构。AI 不会平等地放大每个人——它放大已经会的人,对什么都不会的人是空的。
`CharlieDigital` 给同一件事换了个角度:
> Junior dev 应该读书。不是因为他们需要会写代码,是因为他们需要知道**术语和语法**才能 guide agent。
Junior dev(初级工程师)读书不是为了产出代码——是为了拥有让 agent 工作的词汇和语法。你不知道 transaction script(事务脚本)和 domain model(领域模型)的区别时,prompt 里就出现不了这两个词,agent 默认输出永远是前者。`CharlieDigital` 在另一条里把这点讲透:
> 它会回归到 transaction script 这个均值。它读自己写的 transaction script 又训练得更倾向于 transaction script。**它不会自己开始写 domain model**。你能让它写 domain model,但前提是你得知道你在要它写什么。
把这条接在 Gigachad 那条后面,作者"打字才是练习"的诊断从形而上的怀旧落到了非常具体的工程后果——**没打过字的人,连让 AI 替自己打字所需的概念都没有**。
但评论也提供了反向证据。`sputknick` 直接亮 hot take(暴论):
> 我现在读编程书读得**更多**了。任何技术话题需要知道的东西太多了,LLM 能告诉你全部,但那是过载。书做的事是 discipline 和 structure——它告诉你需要知道什么,按什么顺序学。先用书搭底,再用 LLM 落地。
`geophph`:刚花了 600 美元买了一堆经典编程书。`a-tk`:被 AI 威胁论搞抑郁了,反而拿起了一本旧书《Higher-Order Perl》。`zippyman55` 给个有意思的理由:长期读书,**手指会记住事**,让你在 AI 帮你写代码时是个更好的 AI bullshit detector(AI 胡话探测器)。
这几条把作者的诊断翻了一个角度——书没死,但读书的人在分化。会用 AI 的人在重新打开书;不会用 AI 的人在跳过书。中间层("凭书入门写小工具的人")正在消失,但两端在加强。
`jonbodner`——O'Reilly 那本《Learning Go》的作者本人——出场让这件事彻底数字化。他公开了过去 13 个月的实体书销量:
```
Mar 2025: 367
Apr 2025: 165
May 2025: 237
Jun 2025: 230
Jul 2025: 317
Aug 2025: 136
Sep 2025: 176
Oct 2025: 218
Nov 2025: 484
Dec 2025: 306
Jan 2026: 157
Feb 2026: 140
Mar 2026: 124
```
确实在跌。但他指出钱大头本来就不在实体书:
> 大部分钱来自 O'Reilly 的在线平台,不是书的销售。在线平台最近也在跌——一部分是因为最新版已经两年了,但我也怀疑**人们在退订 O'Reilly 转而依赖 LLM**——LLM 索引了所有书,并且用盗版副本做的索引。
这条评论引爆一条侧线吵架:小用户分享 MP3 几千美金罚款,大公司工业级抓数据训练模型却合法。但回到主线本身,**jonbodner 的曲线给了作者诊断一个具体的数据点**——"AI 替代了书"是真的有数据支撑,但跌得更快的不是纸书是 O'Reilly 在线订阅。问题不只是书死了,是整个出版基础设施被 LLM 训练管道整体接管了。
Stack Overflow 那一段单独值得拎出来。`eterm` 更新数字:作者引用的 3800 已经过时——SO 现在不到一半。`Gigachad`:**我从没见过一个大型站点死得这么彻底**。但 `troad` 那条特别冷:
> Did anyone actually like StackOverflow?
有谁真的喜欢过 StackOverflow?任何问题都被改得面目全非(通常改成更粗鲁的语气);一半答案要求越来越多的 proof of work(证明你下过功夫),另一半告诉提问者你根本不该想做这件事。"它是网上最难用的地方,但因为没替代品所以最好用。"
所以"聊天机器人杀死了 SO"这个故事其实没那么悲情——SO 死得没人惋惜,因为它活着的时候也没什么人喜欢。这跟编程书完全不同:**编程书的死是怀旧的死,SO 的死是松一口气的死**。同一波 LLM 浪潮里两种产物的命运,被使用者的实际感情区分得很清楚。
cylo 最后没把这事写成怀旧。他承认那个用聊天机器人学编程的孩子不是更差的程序员,是**不同的程序员**——以一种他自己不完全懂的方式工作在更高的抽象层。但他用一段非常具体的画面收尾:旧金山某个二手书店里,有一本 1997 年版的《Learning Perl》。封面有人用铅笔写了名字,第七章关于正则表达式的某句话被愤怒地划过线。第 112 页上有几滴咖啡渍——按它的形状——居然还是一段合法的 Perl 程序。
> The book costs three dollars. Nobody is going to buy it.
三美元。没人会买。
`medwards666` 只留了一句评论:
> Love the closeout of the article: "On page 112 there are coffee stains where the caffeine blots are somehow still a valid Perl program."
那段咖啡渍配得上当全文收尾。**它是作者所有论点的物质化**——一本书必须被一个具体的人在某个具体的下午、配一杯具体的咖啡逐页读过,才会有那种渍。聊天机器人不会留下渍。聊天记录只有时间戳,没有重量。
🔗 [HN 原帖](https://news.ycombinator.com/item?id=48273030) · [文章原文](https://unix.foo/posts/nobody-cracks-open-a-programming-book/)