俗话说,知己知彼方能百战不殆。
我们先来分析下读书这种形式的优缺点。相比阅读博客、搜索等轻量级的学习方式而言,读书的主要缺点是:
效率低、目的不明确。一本技术书为了保证专业性,往往填充大量细节,同时为了兼顾不同层次背景的读者,希望面面俱到,进一步增加了篇幅。
读这样的书,如同在沙滩上拾贝壳,读了半天,发现真正消化的知识不多,剩下的大部分是无用的,或是背景不够理解不了的。
例如这本《深入理解Java虚拟机》,第一章用很大篇幅在讲Java虚拟机的发展历史。对于普通读者而言,除非是专门做JVM研发的,否则根本没有必要了解得那么细致。读者需要在大量的文字中,挑出感兴趣且有用的。
不过反过来看,缺点也是优点。读一本厚书好处有:
一、系统性。它是某个技术领域知识点的自然编排,省去了东拼西凑搜寻资料的麻烦。
二、有深度。动辄七八百页不是凑数的,如果你想钻可以钻很深。
所以,读技术书的思路应该发挥优点,回避缺点。
首先,第一遍速读,一定要用思维导图建立大纲。这里充分利用书的系统性,建立起这个技术领域的知识架构,后续只需要往里面不断填充内容即可。这一遍读时,不用深入细节,只用知道有价值的点在哪里,方便以后深入就可以了。
然后,反复精度 + 实践。根据自己的需求,每次读时聚焦到一个重要知识点上,仔细研读相关内容。同时结合实践编码和博客文章,共同形成对这个知识点的深入理解。知识点积累多了,这个体系也就有血有肉了。例如,做内存分析时去了解内存管理机制、GC策略;自己写类加载器时去了解类加载机制。带着明确目的去学,效率会高很多。
以上为多年经验总结,还不快点试试。