如何啃砖头书

在很长的一段时间,我看的都是杂书。杂书,指的就是那些跟计算机专业不相关的书,即便与社会学、经济学等学科相关,也只是入门的科普书籍。看这些书为我积累了大量阅读经验,并且试图将这些方法带到专业书的学习当中去。

专业书一般都比较厚,在大学时我们就常常将其称之为“砖头书”。

我在大学“失败”的原因

上大学之后,我的成绩就一直在后半段,后来干脆就成了倒数,变成一个彻头彻尾的学渣。当时我很快地就放弃在学习成绩上有所作为,过上了及格万岁、能顺利毕业就好的日子,一直没有认真反思过为什么从小到大成绩还不错的自己在大学却过得这么“失败”。

回想起来,“失败”的原因有两点,第一点是没有学会如何在大学里自制地学习和生活。我在大学刚开始的时候就有师兄跟我说,“高数很容易挂,但是如果你的作业都是自己做的,那就不可能挂。”刚开始几个星期还坚持自己写作业,后面基本都是抄的了。虽然两个学期的高数都是60分刚好到及格线,但是其实期末考试的卷面成绩都是40几分,全靠老师用平时分帮我拉上去。就连自己做作业这一点都做不到,更谈不上坚持去上课,考前认真复习了。

第二点就是没有及时改变学习方法。大学之前,我们会花很长的时间去学习一个到几个基础概念,然后大量做题巩固,难是难在考试。大学期间,可能要一下子学习几十个概念,学习坡度一下子就变得陡峭,考试的难度却不高。之前习惯了一看就懂的概念和知识点,现在需要我花比以前多得多时间去看书,这一下子就难以适应了。其实只要耐着性子,花足够多的时间去学习,期末备考反而不需要多长的时间。直到大学毕业三年多以后,我才渐渐明白这个道理。幸好学习是一辈子的事,现在想清楚了还不算晚。

如何啃砖头书

啃砖头书要有啃砖头书的节奏,急不得。在知乎上有清北的人说他有一个舍友,临到考试前一天就才开始翻教材,一页一页地翻,每一页都停留一段时间。翻完一遍去考试,回回都是高分。这种天才我相信是存在的,但是我身边有很多很优秀的同学和朋友,他们都不是这样的天才,我就更不是了。我是最近才开始掌握适合我自己的啃砖头书的节奏,说出来就一点都不惊艳。

我选择的两本砖头书是《Java编程思想》和《鸟哥的Linux私房菜》,都已经看完第一遍。看第一遍的时候不要急着弄明白里面的每一个概念,因为这很容易让你跟某个细节纠缠太久,使得学习难度陡增。学习难度太高,就很容易遇到挫折,挫折感积累得越深就越容易放弃。看第一遍就等同于熟悉情况和扫盲,大致了解即可。即便只是看第一遍也需要不少的时间,《Java》花了6个小时,《Linux》花了6.5个小时。

我在啃砖头书的时候有几个小技巧:

  1. 把纸和笔准备好,把书本上关键的字句抄一遍。潦草、抄几个字都无所谓,因为抄写能够把容易失控的看书节奏稳定下来。
  2. 用土豆番茄等番茄工作法记录软件记录每一次“啃砖”。如果你觉得自己看完一遍什么都没获得,看看番茄记录就会发现你已经开始积累了。如果你觉得自己已经花了很多时间“啃砖”却还没掌握足够多的知识点,看看番茄记录就会发现其实你花的时间还不够多。
  3. 把你看不懂的地方用笔做上标记。做标记有两个好处,一是稳定情绪——看不懂不要紧,做了标记可以在以后的时间解决;二是积累疑惑感——看不懂其实可以激发你的求知欲,在看第二遍或更多遍的时候重点阅读这些地方。

更难走的路还在后头

我看杂书一般看三遍,看专业书或者说啃砖头书也是参照这个思路来。前面谈到的是看第一遍,经验迁移还算顺利,接下来就是看第二遍。

首先是要做好心理准备,看第二遍要花更长的时间。由于目的不一样,啃砖头书要比看杂书花费更多的时间,所以必须做好相应的心理建设,否则很容易因为觉得看完之日遥遥无期而中途放弃。为了有一个参照系,可以先看看要完整读完一本杂书需要多长的时间。下表是我从www.liwenye.cn获取的部分信息:

  • 《拖延心理学》 36.5小时
  • 《未来简史》 38小时
  • 《稀缺》 26.5小时
  • 《人类简史》 35.5小时
  • 《写给无神论者》 18.5小时
  • 《身份的焦虑》 23小时

二三十个小时看起来不多,但实际上是一个不容易达到的数字。平时要上班,下班后要休息,周末要放松,况且还有其他书要同时看,能分配给特定某本书的时间其实不会太多。哪怕你每天都能抽出一个小时,天天都不间断,看完一本书都要花一个月左右的时间。有过长期阅读经验的人都会知道,一本书要每天都看,其实是一件很难做到的事情。直到写到这里,我才意识到,要啃完那么多本砖头书所需要的时间,比我之前想象的要多出非常多。

然后就是要注意做实验,多写demo。IT行业可能是最适合自学的专业,只需要有一台联网的电脑,就可以获取大部分的知识并且动手验证。在下一步啃砖过程中,计划一边深入理解一边写代码,并且把这些demo组织化地上传到github。当然,这样做需要花费大量的时间,为了更好地统计用时,决定把写demo和调试bug的时间都纳入到番茄土豆的记录当中。

最好就是要把学到的东西,应用到实际项目当中。用我最喜欢的积木比喻来说,每个知识点就像一块积木,而程序就像一个完整的乐高作品。得到一块新的积木之后,首先要想到的,就是要如何在眼前的乐高作品上用到;学习了一个新技术点,首先要想到的,就是要如何在个人项目或公司项目里用上。