我写这篇文章是对极客时间的一篇专栏——《趣谈Linux操作系统》其中的一篇做的总结,作者提出了三遍学习法的方式来对知识进行掌握,我觉得非常的适合我,所以在这里做一下记录,并在以后的职业生涯当中进行实践。
读书有一个理念,是先把书读厚,再把书读薄,但是这个是给有基础的人的学习方式,换句话来说在学习某一项知识的时候,他已经掌握了大部分这项知识所需要的基础。针对在我们软件开发行业的大多数非科班的同学们来说,这种方式可能并不是最好的学习方式,因为非科班的同学并没有那么多的基础,上来就把书读厚难免会陷入过多的细节而导致进展十分缓慢。基于这个原因,作者体处理另外的一个学习理念——先把书读薄,再把书读厚,再把书读薄。
下面,就来具体的说一说三遍学习方法。
第一遍——掌握脉络
作者之所以在原来两步学习方法之前又加了一步是因为这样可以让很多没有基础的同学先对知识整体有一个大概的印象,重点先掌握主要的流程和原理,不在一个地方死抠。第一遍学习的时候,没必要去掌握所有的细节,先形成一个大概的印象,能了解多少就了解多少,至于其他的先没必要去纠结。这一边的学习其主要的目标就是,先把你想要学习的东西有一个大概的了解,并能够掌握其主要的脉络,达到这样就可以了。
第二遍——见山开路,遇水搭桥
先做一个解释,我认为知识是有大小之分的,大的知识我称它是一个主题,而跟这个主题相关的知识,我称它为知识点。就像是宇宙当中的星系,太阳是太阳系的中心,那他被类比为一个主题,其他的太阳系行星就被类比为知识点。同时太阳系又是银河星的子星系,那银河系必然也被类比为一个主题,只不过是一个更大的主题。在主题交叉的角度来讲,可能这个例子不是很妥帖,但是也能够大概的说明情况。理想情况,所有的知识能够组成树形结构,而实际情况,所有的知识是一个非常复杂的图形结构。
好了,下面谈一谈我对这一遍学习的理解。
切记,这一遍不是要把所有不懂的知识找一本砖头一样厚的书读完。知识都是相互关联的,在一个主题上学习的时候它对应着很多的知识点,有些知识点因为你有关于他的知识储备,因此就很容易理解,然而如果你正在学习一个新的知识,更多的情况往往是大部分的知识点你都是没有他的相关知识储备的,所以你就需要通过作者的讲解去理解并掌握这个知识点,然而作者不可能照顾到所有的读者,他们往往都是基于一种普适的情况并假设读者已经掌握了某些必要的主题来对这个他想要讲得主题做讲解,所以可能你就是没有被照顾到的那个,在某些作者没有讲解的知识点上就需要你自己去查阅资料从而掌握它。在你自己查阅资料的过程当中,你会发现往往是知识又套知识,甚至套了很多很多层的知识,你似乎从最初的你想掌握的那项知识的某个知识点走入了另外的一个大的知识的领域,这个时候,你就已经走偏了。
当你在自行理解一个知识点的时候,一定别忘了你是从哪来的,你想要干什么,目的又是什么。否则你会陷入无穷无尽的泥潭。你的主线是在你学习的某个主题上,这个主题相关的某个你不了解的知识点是你出发的地方(从哪来的),你要去理解这个知识点(干什么),目的是能够更好的理解主题(目的),达到目的立刻折返不要多做停留,一定要紧紧的围绕在主题上,这样你才能把一个主题学完后然后再去掌握另外的主题,当你掌握了越来越多的主题之后就会发现,当你学习一个新的主题的时候,不会的知识点变得越来越少了,那就说明你在这个领域已经有了一定的深度和广度,然后你也能回过头来对自己反省,自己当时在学习某个知识点的时候其实没必要走那么深。
令人沮丧的事情是,你永远无法掌握所有的知识,从最小的知识点出发,到某个主题,再到某个更大的主题,再到某个更大的主题,主题外又有其他的主题。。。。。。跨过领域的概念到领域,领域外又有其他的领域,又有更大的领域。这就像是我们人类,永远无法了解我们的宇宙的全貌一样。每个人所能做的,是尽可能的探索自己所在专业的领域的边界,然后与其他领域的人进行合作,这才是个人发展的一个本质,同时也印证了一个道理,现代社会单打独斗的人是无法取得最后的胜利,合作使我们唯一的选择。
扯远了,回到我们的主题上来,第二遍学习的目的——见山开山,遇水搭桥,其实与第一遍学习有一个共同的道理,就是不要陷入细节,不要钻牛角尖。下面说一说具体的方法论。
在学习大量的不懂的知识的时候,最好的方法就是记笔记,给每一个小节都做一个笔记,然后把知识点罗列出来,不懂的知识点做一个标记。当完成这个小节的时候,就去针对那些不懂的知识点去查阅各种资料,然后在这个小节的后边,以不懂的知识点作为标题,将你查阅的内容贴进来,知道你发现你理解了这个知识点,最后再把这些以知识点为标题的内容,放入这篇笔记的附录当中。当用这种方法完成了这个主题的学习的时候回过头来再看这个主题的知识,就会有一马平川的感觉,如果你没有,那就说明你还没有完全的掌握这个主题,还需要再次进行学习。
第三遍——总结
第三遍的学习,其实就是一个总结了。可以用脑图工具画画图来加深印象,以后就可以对着这张图来复习了。这一遍是对你提纲挈领的能力的考验,当完成这最后一遍的学习相信你对这个主题就有了一定的理解了,但是如果这是一个十分重要的主题,那么需要时长回来看看这张总结的图,这样会帮助你不会很快的就忘记了这个主题的内容。
用之有道
任何的学习方法,都有他的优缺点,都有他的应用场景,没有一个学习方法是具有普适性的,三遍学习法也不例外,就目前来看,我觉得它只适合在一个大的主题上学习的时候使用,并且这些主题应该是偏理论性的,比如学习操作系统或者计算机组成原理这类偏理论的主题。而在一些偏实践的地方往往不太使用,比如在我们学习各种框架的时候,比如Spring框架,往往需要我们手动去做些什么才能对这个框架有一定的理解,只停留在理论层次上对于工程师来说并不是什么好事。也有可能这个时候这种学习方法也是适用的,只是在第二遍学习的时候我们要基于自己的工作角色作为考量,进行有侧重的学习,对于一个工程师来说就可能是多多进行编码。