由阅读源码想到

阅读源代码,同数学、同任何一个知识密集型行业的吸收过程一样,是一个在反复地“读了忘、忘了读”的旅程。

记得本科时,从清北毕业的教授泛函分析的李老师说过一段闲话:“再来教你们泛函分析,对我来说是个重新拾起来的过程。数学就这样,反复地做、反复地读,反复地习得这个技能,然后又反复地忘掉。那怎么办呢?真要再用的时候再看看呗,拾起来就好了”。

我想,阅读源码是同样的,你不用那么费尽心力去叹息、去责备自己为何会忘记曾经熟稔的技术细节。等到要用的时候,又不得不重头开始。事实上,大家都会忘记。忘记了,在用的时候拾起来就好。

我想,这里真正让人泄气的一个问题是:既然终究会忘掉,那不如一开始就不要学习?但这便是tricky的部分。你读过的东西,忘掉,表面上什么都没得到。但事实是,你的技能,你对很多抽象的观点,会有具体深入的体会与理解。你会有切肤之感,进而它会以“直觉”的形式成为你潜意识的一部分。以此为基础,再去做触类旁通的相关事务,才懂得如何切入、有的放矢。

当然,阅读源码的挫败感,还在于它本身所需的大量基础知识造成的复杂性。往往,优秀的源码是由一系列的精妙技术组合而成。但并没有这样一套体系或者类似于打怪升级的系统去告诉你,哪一套是适合初级选手,哪一套适合进阶选手。于是,那些隐形的看不见的缺乏阶梯,横亘在了你的进步之路而你又浑然不知。也即是,读不懂它,仅仅是因为你和它之间缺乏的阶梯太多了而已。没有银弹,将那些缺乏的知识阶梯补上后,你自然可以读懂。

更何况,如同阅读文学名著一般。年少的阅读,中青年的阅读,以及成为了半个写作者的阅读,其对文本的理解和关注点都各有不同。不存在一种捷径或者参考列表,可以容纳对这个文本的所有理解和探索方式。倒不是说作者心思缜密,故意埋藏多个伏笔在那里。而是写出来的文本是头脑的磨刀石,它的作用是一扇引导门,启发你探索自己本身。这扇门的背后通往哪里,完全由自己的阅历和思维敏锐度决定。或许作者并未有某个方向的意思,但是,你却会因为那一句话,接合曾经的种种经历,进而完成自己的悟道。

阅读源码是同样的,你企图一下子要弄懂这段代码背后的所有技术,并不现实。且不说某些代码背后的知识量之巨让人生畏,你能够在这段代码当中读到多少东西,取决于你自身的技术高度和思想境界。好作品的阅读效果,不完全取决于作者,更取决于读者本身。阅读是一个读者和作者的共同创作的过程。读者本身的素质,会极大地影响最终的阅读产出。

所以,这其实是一个漫长的、反复不断地细品过程,急不来。想通了这点,便可以更为从容地去读这份代码。用个比喻讲,如果你不得不通读5次、实践5次,才能够达到下一个level的通悟。那么,知道了“你不可以跨过第三个包子而吃到第五个包子”的这一事实,便可以老老实实按部就班地从第一遍读起来。然后把剩下的焦虑托付给时间。

从这个角度讲,阅读源码这件事真的没有银弹,要依靠你的苦功夫和硬本领,去慢慢同它熬岁月。不要总想走捷径,这只会减缓自己的成长。欧几里得早已点出,“几何之中,并无王者之道”。应该拿出做数学的勇气,拿出干苦力的踏实,一点点缓慢进步。要知道,理解和习得一项本身就很复杂的技能,其本身就需要这么多的努力付出。

那为何你在数学上又有如此的勇气和魄力,去阅读那些一天甚至几天才能进展一页的大部头呢?

为何可以如此耐心?

请参看下篇。

 

 

 

 

近期回顾

志玲姐姐的《十三邀》
2018年01月写字总结
纽约时报的《王国与权力》

 

 

如果你喜欢我的文章或分享,请长按下面的二维码关注我的微信公众号,谢谢!

   

VIP赞赏专区

posted @ 2018-02-07 13:02  kid551  阅读(606)  评论(7编辑  收藏  举报