最近在学习的时候,因为要看一些“出名但是有毛病”的书的时候,对于经典问题“学习计算机为什么要阅读经典”有了更深地理解。当然这篇文章并不是劝你去看经典书籍,而是讨论一下背后的原因。
这里不再重复解释《系统学习计算机技术三要素:手快、眼快、脑子快》中相关的言论:经典著作往往线路清晰和广泛,对于搭建框架和开阔视野很有帮助。
我想从阅读的角度来谈谈为什么阅读经典更好一些。
信任
信任一件很重要的事情,Unix 和 C 的联合创始人之一 Ken 在图灵奖演讲《Reflections on Trusting Trust》就提到了这一点:或许相信写程序的人更重要。
信任对于技术书籍和教科书来说尤其重要,尤其是带有学习目的的书,这体现在方方面面。
闲书就是打发时间,信不信任并不重要。
无论你是初学者还是经验丰富的老油条,当你选择一本书进行学习的时候,你要么是从头学搭建框架,要么查漏补缺完善框架。但是你在看书的时候,一开始一定会相信书里说的,因为是抱着学习的目的,虚心学习,要是都会就不会看了。
正向
如果你是老油条,当你发现这本书提到有些问题与你的经验不一致时,你就会有疑问,然后采取的措施就是查经典书籍、文档或者自己写程序看看。
一次是书对了,那你会觉得这书有点东西,作者还行吧。
两次是书对了,那你会觉得这书真好,能帮我查漏补缺,我得好好看看。
三次是书对了,那你就会对书中的内容非常信任,也会觉得作者计算机整体水平绝对在自己之上。后续再有错误你会先认为是自己错了,然后再检查。甚至你会直接相信,而再不去检查了。
这种情况下,就算真的遇到书有错误,你也会很乐于将其反馈给作者和出版社。或者哈哈一笑,心想“你也会犯错啊”。
为什么说整体水平呢,因为我这些年发现,有着较高计算机科学的整体观念和框架的人,在给另一方向的人讲述自己方向的时候,也会让对方能理解。但是如果只是在自己方向很出色,但是整体不行,那就无法做到这一点。
你会发现这样的心态变化往往出现在阅读经典或者大佬写的书的时候。
一方面是因为作者大都是非常了解行业和历史的人,甚至就是技术的作者或者参与者,人家写技术著作都可以叫回忆了。比如《Unix Memorial》,这本书的作者就是 K&R 中的 K,Unix 的 9 号用户,这就导致这本书虽然是回忆录,作者也尽量避免将其写成一本技术书,但是其中对于 Unix 技术、结构和发展的描写要比很多所谓的技术书更让人容易理解。
另一方面因为经典的书在数十年读者的检查下,大多数错误都在后续的印刷中被纠正了。
反向
那如果你在看书的时候发现书错了呢。
一次是书错了,善良的你可能会觉得是笔误什么的,可能还会好心提交一下错误。
两次是书错了,那你会觉得这书是不是不用心啊。
三次是书错了,你可能就开始怀疑作者的水平了。
如果还有,那就是怒喷作者,想撕书了。
(当然我没那么高尚,要是第二次就开始怀疑了)
这非常影响作为学习者的心态和效率,因为重心已经放到了检查错误上了。
你会发现某些知名、出名的书,比如某些教材(就不说名字了),经常会出现需要检查的情况,而且还大多是书错了(尤其是某些偏理论、概念的,当然代码相关的也有)。这对于阅读和学习节奏来说影响非常大,学得慢也学的不扎实。
这里的错误并不是说拼写错误、笔误这类错误,而是概念性、结构性的错误。比如有的书中代码可读性极差,我认为这也属于概念性问题,因为书中的代码是演示、解释的作用。
一些速成的书还好说,毕竟读者要的是快,要是能快这也没啥,以后再查漏补缺就行了。
但是教材这样搞就不合适了吧?读者面对教材往往十分信任,大多也是学习概念的,这出错简直就是误人子弟。(这也是我写本文的直接原因)
如果读者对一本书失去了信任,那其实是对作者失去了信任。那么读者出于学习效率和成本考量,以后这个作者其他的书也都会失去信任。
当然这点不光是作者,也可以是出版社。
总结
简而言之,经典的可信任概率比较大,其他的较低,所以阅读经典能高效率学习的概率也大一些(或者是学的较慢但是很扎实)。
写完本文心情好多了,要调整一下学习策略了。
祝各位好运。