我书架上那本《Web前端开发最佳实践》已经翻得脱了胶。书脊裂开一道口子,像被反复折叠的地图。这书2015年买的,那时候React刚火起来,Vue还在1.x时代,现在看里面的代码示例,简直像看老照片——明明都是熟人,却认不出彼此了。
web技术更新快到什么程度呢?我去年写的一个组件,用了最新的Hooks写法,今年再看官方文档,已经推荐用Server Components了。书里的知识半年就过期,可我还是爱买纸质书。因为书不只是知识载体,它更像个时间锚点。每次翻开,都能想起当时在什么项目里、坐在哪张桌子前、对着什么bug抓耳挠腮。
有一本《JavaScript高级程序设计》是红皮的,被我叫"红宝书"。第四版我买了,第五版也买了。但真正翻烂的是第三版,那是我第一份工作时的救命稻草。当时公司用jQuery写老项目,我拿着这本书啃原型链和闭包,午休时趴桌上睡十分钟,梦里都是作用域链。现在想想挺傻,但那种笨拙的认真,比现在用AI查文档踏实多了。
纸质书的物理属性反而成了优势。电子文档可以Ctrl+F精确搜索,但纸质书强迫你翻页,在翻页的过程中你会偶然看到别的内容——"咦,这里还讲了这个?"这种意外收获,是线性阅读给不了的。就像你去图书馆找一本书,结果在隔壁书架发现另一本更需要的。搜索引擎太精确了,精确到让你错过所有意外。
有段时间我迷信"技术博客就够了"。确实,掘金、CSDN、Stack Overflow,什么都有。但博客文章有个毛病:太碎片化。每篇都是"如何在React中实现XX功能",讲完就完。没有人会告诉你这个功能出现的背景,它解决了什么问题,又引入了什么新问题。书不一样,书有脉络。从历史讲到现状,从原理推到实践,像看一部纪录片,而不是刷一百条短视频。
我承认,很多书确实过时了。昨天刚收到出版社邮件,问我之前写的一本关于Gulp的入门书要不要修订。Gulp?现在还有几个人用?我回邮件说算了,让它绝版吧。这没什么好伤感的。技术书的价值不在于永远正确,而在于它记录了一个时代的思考方式。就像看20年前的编程书,你会惊讶于当时的人居然要手动管理内存、处理浏览器兼容性到那种程度——这种体验,比任何"技术发展史"都来得真切。
现在我的书架分两层。上层是最近买的,关于AI编程和WebAssembly的,很新,但翻得少,更多是查资料时用来垫显示器。下层是那些老书,红宝书、犀牛书、CSS揭秘,虽然代码过时了,但设计思想和解决问题的思路还在。偶尔翻翻,反而比追新更有启发。
你要问我推荐哪本web书?我推荐那本脱了胶的《Web前端开发最佳实践》。不是因为它的内容多超前,恰恰因为它过时了。你看它怎么处理IE6兼容、怎么用table布局、怎么手写轮播图,然后想想我们现在——框架帮我们处理了一切,但我们也失去了理解底层的机会。书像一面镜子,照出技术迭代的速度,也照出自己成长的过程。翻旧书,就像跟过去的自己对话,那个在深夜对着控制台报错抓头的年轻人,现在终于明白,报错不是bug,是web在跟你说话。