如何读好一本书
正文
这个年代,对中年人贩卖焦虑是件普遍的事情,尤其是对程序员。35岁左右都是一个坎,不管是国内的华为、阿里,还是国外的facebook,这种焦虑和恐慌逼得程序员不得不时刻充电。学习的方式有很多,做项目、线下线上课程、看书、看博客、看源码等等。
相比其他方法,看书(尤其是经典书籍)的好处在于,知识点比较系统全面,讲解比较清楚,质量也有所保证。
这一两年,也看了一些书,技术和非技术都有,可是回头想想,记得多少,又有哪些用到了实处,似乎很少。于是,怀疑哪里出了问题,是年纪大了记性不好?还是读书的方法出了问题?
因此,为了更好的阅读,我们就得先掌握科学、高效阅读的方法,而how to read a book(如何阅读一本书)就是指导我们科学阅读的利器。
“how to read a book” is a metabook about how to read a book
主动阅读
阅读是作者与读者的交流,作者抛出问题,然后给出答案,而读者需要去判断作者给出的答案是否合理,这个过程就需要读者的思考。
那么,怎么才算是主动阅读呢,要做到主动阅读,至少要回答以下四个问题:
- 整体来说,这本书在讨论什么问题
- 围绕核心问题,作者有哪些主要的想法、论点
- 作者所述是否合理,是部分合理,还是全部合理。当然,这一点的基础是读者能回答出上两个问题
- 这本书与读者有何关系,有何启发,如何运用
关于跳出舒适圈
主动阅读强调的是需要努力才能掌握知识的阅读,其实换一种流行的说法就是跳出舒适圈,需要每次都有所进步。
不过,是否跳出舒适圈并不是简单的0或者1问题,跳出多远呢?比如阅读一本全新领域的书,基本上都看不懂,强迫自己看下去也很痛苦。
恰好前一段时间在简书上看到一篇很有意思的文章: 重磅研究!最优学习的85%规则。在这篇文章中,首先是给出下面这张图:
从中可以看到,对于学习这件事情,自内而外分三个区
- 舒适区,conform zone
- 学习区,learning zone
- 恐慌区,panic zone
阅读的舒适区,大约就是为了获取咨询、信息而进行的阅读。而主动阅读就得跳出舒适区,需要小心意的是,别跳太远,一下跳到恐慌区反而会有负作用。
那么,跳多远是合适的呢,这篇文章中参考了机器学习的一个实验,指出15.87%是个理想值。就是说,阅读的时候,应该有85%的内容是读者能理解的,这样学习起来既愉快,而且效率也最高。
当然,这个具体的数值因人而异,至少说,如果略读一本书,大多数的概念都不了解,那么可能这本书对现阶段的你可能不是最好的选择。
阅读的四个层次
阅读的层级,按对阅读者的要求从低到高排序,分别是:
- 基础阅读(elementary reading)
- 检视阅读(inspectional reading)
- 分析阅读(analytical reading)
- 主题阅读(syntopical reading)
基础阅读的典型问题是,“这个句子在说什么?”基础阅读的能力,应该是在基础教育的时候就培养的,而且对于绝大多数人来说应该不存在问题。不幸的是,对于程序员--需要阅读英文原版书籍、论文的程序员--来说,这有时候确实是个问题。虽然笔者也过了英语六级,但是在阅读英文资料的时候还是可能因为词汇、语法而卡壳。
检视阅读其实就是略读、粗读,在较短的时间内掌握一本书的重点、整体架构。典型问题就是:“这本书在谈什么?”或者:“这本书的架构如何?”或是:“这本书包含哪些部分?”
而分析阅读是全盘的阅读、完整的阅读,或是说优质的阅读。也就是我们常说的,要把一本书读厚。分析阅读需要反复的咀嚼、消化,自然是非常耗时间的,因此我们进行分析阅读的书籍应该是经过挑选的经典书籍。
最后的主题阅读,其实就是带着问题去阅读。前面的检视阅读和分析阅读都是指阅读某一本书,而主题阅读通常需要阅读好几本书,才能从不同角度去思考、解决一个问题。
下面依次简单介绍检视阅读、分析阅读、主题阅读的基本方法、规则。
检视阅读
检视阅读既可以作为独立的阅读方式,又可以作为分析阅读或者主题阅读的前置步骤。
检视阅读的第一个阶段是有系统的略读或粗读。
- 先看书名页,然后如果有序就先看序
看完序章之后,其实就对这本书的主题有了概念,可以为这本书进行分类了。 - 研究目录页,对这本书的基本架构做概括性的理解
- 如果书中附有索引,也要检阅一下。
- 如果那是本包着书衣的新书,不妨读一下出版者的介绍。
- 从你对一本书目录很概略,甚至有点模糊的印象当中,开始挑几个看来跟主题息息相关的篇章来看。如果这些篇章在开头或结尾有摘要说明(很多会有),就要仔细地阅读这些说明。
- 最重要的是,不要忽略最后的两三页,很少有作者能拒绝这样的诱惑,而不在结尾几页将自己认为既新又重要的观点重新整理一遍的。
在how to read a book一书中,每章节的最后,作者都会进行总结、概括。
通过上述步骤,就可以从主体、架构上了解一本书,至少能够判断,这本书是否值得花时间更深入的阅读。
检视阅读的第二个阶段是粗浅的阅读,也就是说头到尾先快速的读完一遍,关注的重点在于理解的部分,不要因为暂时不能理解的部分而停顿,这样阅读一遍之后也是会很有收益的。
分析阅读
分析阅读的第一阶段,或,找出一本书在谈些什么的四个规则:
第一个规则:依照书本的种类与主题作分类。
how to read a book对书籍分类是这样的:首先按照是否是虚构,分成小说类和论说类。论说类的书籍是为了传递知识,也是探讨的重点。
对于论说类,又分为实用性作品和理论性作品。理论性的作品是在教你这是什么,实用性的作品在教你如何去做你想要做的事,或你认为应该做的事。
how to read a book本身就是一本实用性的书籍
第二个规则:用最简短的句子说出整本书在谈些什么。
第二个规则,就是要能说出整本书的大意,整体上来把握一本书。这一部分,通过阅读书目和序章基本上就能有答案
第三个规则:按照顺序与关系,列出全书的重要部分。将全书的纲要拟出来之后,再将各个部分的纲要也一一列出。
一本好书,就像一栋好房子,每个部分都要很有秩序地排列起来。每个重要部分都要有一定的独立性。
这有点类似金字塔原理中的MECE(Mutually Exclusive Collectively Exhaustive),架构良好的书籍也会按照符合逻辑的顺序展示主题相关的每一个部分。
第四个规则:找出作者在问的问题,或作者想要解决的问题。
一本书的作者在开始写作时,都是有一个问题或一连串的问题,而这本书的内容就是一个答案,或许多答案。在分析阅读的第一个阶段,读者都明白作者将解答的是什么样的问题。
分析阅读的第二个阶段,或找出一本书到底在详细说什么的规则(诠释一本书的内容):
第五规则:诠释作者使用的关键字,与作者达成共识。
同一个词汇,在不同的语境下有不同的语义,比如“事务”这个词语,不同领域里面的含义千差万别。在特定的领域里面,我们常常称这种专门用语及特殊字汇为术语。为了搞清楚一本书在说些啥,首先得找出这些术语,然后分辨出术语在这本书当中最精确的意义。
如何找出术语呢,如果比较熟悉书籍所在领域,那么自然就能找出这些专门的词汇;反过来,只要看到不是平常惯见的词汇,就会知道那些字一定是专门用语。
如何衡量是否有作者就某个术语的精确意义达成了共识呢?读者可以用自己的话语来解释这个术语。
第六个规则:从最重要的句子中抓出作者的重要主旨。
主旨,也是一种声明。那是作者在表达他对某件事的判断。主旨所声明的是知识或观点。这也是为什么我们说表达这种声明的句子是叙述句(declarative),而提出问题的句子是疑问句(interrogative)
如何判断自己是否吸收了一本书的主旨呢?有以下方法
- 能否用自己的语言重新表达?
- 举出一个自己所经历过的主旨所形容的经验,或与主旨有某种相关的经验?
- 就作者所阐述的特殊情况,说明其中通用于一般的道理?
第七个规则:找出作者的论述,重新架构这些论述的前因后果,以明白作者的主张。
第八规则:确定作者已经解决了哪些问题,还有哪些是未解决的。在未解决的问题中,确定哪些是作者认为自己无法解决的问题。
分析阅读的第三阶段:像是沟通知识一样地评论一本书的规则
第九规则:除非你已经完成大纲架构,也能诠释整本书了,否则不要轻易批评。(在你说出:“我读懂了!”之前,不要说你同意、不同意或暂缓评论。)
第十规则:不要争强好胜,非辩到底不可。
第十一规则:在说出评论之前,你要能证明自己区别得出真正的知识与个人观点的不同。
主题阅读
主题阅读是阅读的最高层级,即带着某个特定问题去大量阅读相关书籍中的相关章节。检视阅读和分析阅读都是以书为中心,而主题阅读是以特定问题为核心。
在主题阅读中有两个阶段。一个是准备阶段,另一个是主题阅读本身。
主题阅读的准备阶段是为了观察、选择研究范围,一定程度上会用到检视阅读的规则
- 针对你要研究的主题,设计一份试验性的书目。你可以参考图书馆目录、专家的建议与书中的书目索引。
- 浏览这份书目上所有的书,确定哪些与你的主题相关,并就你的主题建立起清楚的概念。
主题阅读的第二个阶段:阅读所有第一阶段收集到的书籍
- 浏览所有在第一阶段被认定与你主题相关的书,找出最相关的章节。
- 根据主题创造出一套中立的词汇,带引作者与你达成共识——无论作者是否实际用到这些词汇,所有的作者,或至少绝大部分的作者都可以用这套词汇来诠释。
- 建立一个中立的主旨,列出一连串的问题——无论作者是否明白谈过这些问题,所有的作者,或者至少大多数的作者都要能解读为针对这些问题提供了他们的回答。
- 界定主要及次要的议题。然后将作者针对各个问题的不同意见整理陈列在各个议题之旁。你要记住,各个作者之间或之中,不见得一定存在着某个议题。有时候,你需要针对一些不是作者主要关心范围的事情,把他的观点解读,才能建构出这种议题。
- 分析这些讨论。这得把问题和议题按顺序排列,以求突显主题。比较有共通性的议题,要放在比较没有共通性的议题之前。各个议题之间的关系也要清楚地界定出来。
注意:理想上,要一直保持对话式的疏离与客观。要做到这一点,每当你要解读某个作家对一个议题的观点时,必须从他自己的文章中引一段话来并列。
如何实践阅读
在how to read a book的最后一章 “阅读与心智的成长”, 有两个观点,个人是深表认同的
- 如果你所读的书都在你的能力范围之内,你就没法提升自己的阅读能力。你必须能操纵超越你能力的书,或所说的,阅读超越你头脑的书
- 如果读者阅读了一本实用的书,并接受作者的观点,认同他的建议是适当又有效的,那么读者一定要照着这样的建议行事
第一点其实就是要从舒适区跳到学习区,主动阅读。关于这一点,已经在本文第一章进行了讨论。
第二点,就是学以致用。
我们常说,听过很多道理,却依然过不好这一生,也许道理已经懂了,但是没有落到实处,自然不会有任何改变。对于阅读更是如此,阅读相比教学而言,更需要学习者的主动,而且阅读本身比较慢,也很少存在很强烈的时间压力和考核目标,如果读者不主动去刻意使用,那么大概率过一段时间就忘了。
实用性书籍阅读
前面对书籍分为了虚构类、实用类、理论类。对于程序员的技术阅读而言,大多时候都是实用类。阅读的目标都是为了提高自己的能力,将知识应用到工作中。
在阅读任何一种实用书时,一定要问自己两个主要的问题。
第一:作者的目的是什么?
第二:他建议用什么方法达到这个目的?
比如笔者之前阅读了《clean code》这本书,作者的目的就是让我们认识到代码整洁的重要性以及如何写出整洁的代码。而如何写出整洁代码呢,作者先从小到大,指出应该如何命名、写好函数、写好注意、写好一个类;然后再给出一个完整的逐步改善的列子。
在how to read a book中,给出了主动阅读一本书,至少要回答的四个问题,这里回顾一下
- 整体来说,这本书在讨论什么问题
- 围绕核心问题,作者有哪些主要的想法、论点
- 作者所述是否合理,是部分合理,还是全部合理
- 这本书与读者有何关系,有何启发,如何运用
这四点对于阅读适用类书籍来说非常合适
第一点,实用性书籍讨论的问题,其实就是作者作者写这本书的目的,即希望读者去做到的事情。
第二点,实用性书籍中的主要想法和论点,即使就是作者阐释为什么要这么做、如何达到这个目的。
第三点,作者所述是否正确、合理,对于实用性的书籍,更多的是你是否认同作者的目的、以及达成目的的方法。
第四点,对于实用性书籍,如果你认同了作者的说法,那么就得采取行动才行。
上面四点,最难的就是落实,学以致用,知行合一。
刻意练习
很多时候,我们看完一本书,或者看完一个在线课程,我们就认为掌握了知识。其实不然,掌握知识需要知识的内隐化,让这部分知识成为习惯、潜意识。这个过程并没有捷径可走,需要不断的练习,只不过一些知识、技能是每天都能用到的,而有一些则较少用到,对于后者,则需要专门安排时间来刻意练习。
比如,当我们看完了how to read a book这本书,想要掌握分析阅读的技能。那么需要按照规则一步步执行,这个过程中可能就要求也不同的速度、注意力反复阅读一本书,也许会让人觉得麻烦 -- 为什么不看一遍就搞定?对于一个熟练掌握分析阅读能力的人来说,也许确实可以在一遍阅读中同时遵守这些规则,但前提是已经熟练掌握了每一个规则。
就像学游泳一样,对于新手,会花大量的时间来练习移臂、摆腿、换气,一遍又一遍的重复这些枯燥的动作。但对于老手来说,似乎从来不会刻意注意这些动作,如果注意这些动作,反而还游不好。但是,为了要忘掉这些单一的动作,一开始就必须先分别学会每一个单一的动作,只有这样,你才能将所有的动作连结起来。
如何刻意练习 实用性书籍阅读这件事情呢?RIA拆书法是个可行的办法:
RIA拆书法
RIA拆书法来自这样读书就够了一书,不过本人没有读过这本书,对于RIA拆书法,感觉这篇文章 为什么你读了那么多书,还是过不好这一生?介绍得很清楚。
如图所示,RIA分为四个阶段
- R: 找到有价值、感兴趣的片段
- I:用自己的语言重述知识
- A1:描述自己的相关经验
- A2:思考自己怎么应用,指定计划
其中,I、A1、A2这三步要求读者用不同颜色的便签做记录,贴在原书页处。
其实,这几点都是how to read a book中的规则的具体体现,比如I和A1,其实就是分析阅读的第六个规则中衡量自己是否掌握了主旨的方法,而A2则是阅读实用性书籍需要回答的第四个问题。
RIA的好处在于通过这几个标签强迫读者停下来进行思考、记录,将思考的结果和原问题保持在同一个地方,方便回顾;不同颜色的便签也是很好的视觉刺激,方便记忆。
最后,RIA拆书法还要求:看完一本书后,把所有的A2便签拿出来贴在墙上,提醒自己日后应用,落实行动。
所以RIA的正式贯彻了学习 -- 思考 -- 实践这个流程,值得借鉴 参考。
自我实践:读好下一本书
上面的内容,其实都是我所学到的“如何阅读一本(实用性)书籍”的知识,具体怎么落实呢?打算用《金字塔原理》这本书来实践,这本书听闻已久,也简单知道其内容,但还没有仔细阅读过。
怎么阅读呢,会按照以下步骤(checklist)
- 思考清楚阅读一本书的目的是什么,以此决定是检视阅读、分析阅读还是主题阅读,甚至决定要不要阅读这本书(阅读书籍不一定是解决问题的最有效方法,或者当前自己的知识贮备还无法阅读这么一本书)。以下步骤假设均决定分析阅读
- 如果确定要分析阅读,那么应按照smart原则来设立读这本书的目标。核心在于输出是怎么样的,具体的阅读计划(每天读多少,什么时候读完)
- 利用检视阅读,找出这本书的主旨(作者要探讨的问题)、主体架构、问题的简要答案。检视阅读也会帮助去调整阅读计划。检视阅读注重以下几部分
- 书目、序章
- 目录,每章总结
- 结语
- 分析阅读这本书,做好笔记。分析阅读注意事项:
- 使用8020法则,尝试按照重要性挑战阅读速度、时间分配,不重要的章节速读
- 核心的部分采用RIA方法(复述、联想、如何应用)
- 分析阅读完成之后,回答阅读一本实用性书籍应该回答的四个问题。此时可参考辅助阅读,看看其他读者的总结和思考。
- 加强记忆、内化,分为三步:
- 笔记:在阅读的过程中就应完成;
- 博客、脑图二选一,对笔记进行凝练,深入思考;
- 分享、实践二选一,理论知识一般适用于分享,而实用性知识尽量去实践。
- 如何实践落实,总结RIA方法中所有A2,整理成一个checklist(电子版或者纸版),定期逐项check是否有做到
争取年内搞定!