阅读源代码,同数学、同任何一个知识密集型行业的吸取过程同样,是一个在反复地“读了忘、忘了读”的旅程。微信
记得本科时,从清北毕业的教授泛函分析的李老师说过一段闲话:“再来教大家泛函分析,对我来讲是个从新拾起来的过程。数学就这样,反复地作、反复地读,反复地习得这个技能,而后又反复地忘掉。那怎么办呢?真要再用的时候再看看呗,拾起来就行了”。学习
我想,阅读源码是一样的,你不用那么费尽心力去叹息、去责备本身为什么会忘记曾经熟稔的技术细节。等到要用的时候,又不得不重头开始。事实上,你们都会忘记。忘记了,在用的时候拾起来就好。spa
我想,这里真正让人泄气的一个问题是:既然终究会忘掉,那不如一开始就不要学习?但这即是tricky的部分。你读过的东西,忘掉,表面上什么都没获得。但事实是,你的技能,你对不少抽象的观点,会有具体深刻的体会与理解。你会有切肤之感,进而它会以“直觉”的形式成为你潜意识的一部分。以此为基础,再去作举一反三的相关事务,才懂得如何切入、有的放矢。事务
固然,阅读源码的挫败感,还在于它自己所需的大量基础知识形成的复杂性。每每,优秀的源码是由一系列的精妙技术组合而成。但并无这样一套体系或者相似于打怪升级的系统去告诉你,哪一套是适合初级选手,哪一套适合进阶选手。因而,那些隐形的看不见的缺少阶梯,横亘在了你的进步之路而你又浑然不知。也便是,读不懂它,仅仅是由于你和它之间缺少的阶梯太多了而已。没有银弹,将那些缺少的知识阶梯补上后,你天然能够读懂。get
更况且,如同阅读文学名著通常。年少的阅读,中青年的阅读,以及成为了半个写做者的阅读,其对文本的理解和关注点都各有不一样。不存在一种捷径或者参考列表,能够容纳对这个文本的全部理解和探索方式。倒不是说做者心思缜密,故意埋藏多个伏笔在那里。而是写出来的文本是头脑的磨刀石,它的做用是一扇引导门,启发你探索本身自己。这扇门的背后通往哪里,彻底由本身的阅历和思惟敏锐度决定。或许做者并未有某个方向的意思,可是,你却会由于那一句话,接合曾经的种种经历,进而完成本身的悟道。源码
阅读源码是一样的,你企图一会儿要弄懂这段代码背后的全部技术,并不现实。且不说某些代码背后的知识量之巨让人生畏,你可以在这段代码当中读到多少东西,取决于你自身的技术高度和思想境界。好做品的阅读效果,不彻底取决于做者,更取决于读者自己。阅读是一个读者和做者的共同创做的过程。读者自己的素质,会极大地影响最终的阅读产出。数学
因此,这实际上是一个漫长的、反复不断地细品过程,急不来。想通了这点,即可以更为从容地去读这份代码。用个比喻讲,若是你不得不通读5次、实践5次,才可以达到下一个level的通悟。那么,知道了“你不能够跨过第三个包子而吃到第五个包子”的这一事实,即可以老老实实循序渐进地从第一遍读起来。而后把剩下的焦虑托付给时间。io
从这个角度讲,阅读源码这件事真的没有银弹,要依靠你的苦功夫和硬本领,去慢慢同它熬岁月。不要总想走捷径,这只会减缓本身的成长。欧几里得早已点出,“几何之中,并没有王者之道”。应该拿出作数学的勇气,拿出干苦力的踏实,一点点缓慢进步。要知道,理解和习得一项自己就很复杂的技能,其自己就须要这么多的努力付出。基础
那为什么你在数学上又有如此的勇气和魄力,去阅读那些一天甚至几天才能进展一页的大部头呢?进阶
为什么能够如此耐心?
请参看下篇。
近期回顾
《志玲姐姐的《十三邀》》
《2018年01月写字总结》
《纽约时报的《王国与权力》》
若是你喜欢个人文章或分享,请长按下面的二维码关注个人微信公众号,谢谢!
VIP赞扬专区