以数学书为例讲一讲:
一本数学书通常前面几章比较浅显,而且实际上前面几章只是在用新的方式讲述那些你已经学过的东西,所以凭借着基础和一点聪明,即使不看书,做出习题其实也不难。但是你终究没有走到这本书的思路上来,所以当你面对这个这本书的思路方法所要真正解决的问题的时候,当这门学问在你眼里反直觉的东西积累到一定程度的时候你就学不下去了。
比如你学解析几何,一开始讲的是直线的问题——而这些在初中平面几何都已经说烂了,但是如果你不积极适应解析的方法,到后面圆锥曲线那里,平面几何的方法很难适用的地方,就很难下手了。
这样的亏我吃过好几次,一次是学复分析的时候,觉得复数我学过呀,极限、积分、求导,数分里也学过呀,好像比数分还简单点呢。但是冒出一大堆复分析特有的定理性质的时候我就彻底凌乱了——才发现解析函数我数分里打交道的函数原来是不一样的。
我看信号与系统的时候也遇到过这个问题,因为我看前面几章无非就是一些微积分运算,看上去很容易,连跳几章觉得就是那么回事了,突然到了一章就看不明白了——才发现自己并没有理解信号与系统这门课处理问题的方式。
反而那些学的比你慢的同学,从开始就在适应这本书的思路,不断地接受和适应那些他们觉得反直觉的东西,而你实际上并没有开始这个适应思路的过程,只是在用旧思路解决问题,当旧思路山穷水尽的时候,你就很难深入下去了。
其实编程也是类似的,讲不同编程语言的书,前面近一半的内容也是大同小异的,但是如果你没有充足的练习、深入的了解,只是把新的编程语言当成你学过的一门编程语言的关键词替换的话,到你面临这个编程语言特色的东西的时候,就无从下手了。
不仅是数学、编程这样新事物和旧事物之间联系比较明显的东西,即使是很多看似完全陌生的东西,人往往也会不自觉地借助于已有经验去接受理解,但是过分迁就旧习惯对深入学习必然是不利的。
其实我们都善于发现新事物和我们熟悉的事物之间的共同点,用我们熟悉的事物上的经验辅助我们学习和认识新事物,以至于我们并没有静下心来学习新事物的独有的特性。而学习本来就应该经历共性——特性——再回到共性——这样一个螺旋式上升的过程。