由閱讀源碼想到
閱讀源代碼,同數學、同任何一個知識密集型行業的吸收過程一樣,是一個在反覆地「讀了忘、忘了讀」的旅程。
記得本科時,從清北畢業的教授泛函分析的李老師說過一段閑話:「再來教你們泛函分析,對我來說是個重新拾起來的過程。數學就這樣,反覆地做、反覆地讀,反覆地習得這個技能,然後又反覆地忘掉。那怎麼辦呢?真要再用的時候再看看唄,拾起來就好了」。
我想,閱讀源碼是同樣的,你不用那麼費盡心力去嘆息、去責備自己為何會忘記曾經熟稔的技術細節。等到要用的時候,又不得不重頭開始。事實上,大家都會忘記。忘記了,在用的時候拾起來就好。
我想,這裡真正讓人泄氣的一個問題是:既然終究會忘掉,那不如一開始就不要學習?但這便是tricky的部分。你讀過的東西,忘掉,表面上什麼都沒得到。但事實是,你的技能,你對很多抽象的觀點,會有具體深入的體會與理解。你會有切膚之感,進而它會以「直覺」的形式成為你潛意識的一部分。以此為基礎,再去做觸類旁通的相關事務,才懂得如何切入、有的放矢。
當然,閱讀源碼的挫敗感,還在於它本身所需的大量基礎知識造成的複雜性。往往,優秀的源碼是由一系列的精妙技術組合而成。但並沒有這樣一套體系或者類似於打怪升級的系統去告訴你,哪一套是適合初級選手,哪一套適合進階選手。於是,那些隱形的看不見的缺乏階梯,橫亘在了你的進步之路而你又渾然不知。也即是,讀不懂它,僅僅是因為你和它之間缺乏的階梯太多了而已。沒有銀彈,將那些缺乏的知識階梯補上後,你自然可以讀懂。
更何況,如同閱讀文學名著一般。年少的閱讀,中青年的閱讀,以及成為了半個寫作者的閱讀,其對文本的理解和關注點都各有不同。不存在一種捷徑或者參考列表,可以容納對這個文本的所有理解和探索方式。倒不是說作者心思縝密,故意埋藏多個伏筆在那裡。而是寫出來的文本是頭腦的磨刀石,它的作用是一扇引導門,啟發你探索自己本身。這扇門的背後通往哪裡,完全由自己的閱歷和思維敏銳度決定。或許作者並未有某個方向的意思,但是,你卻會因為那一句話,接合曾經的種種經歷,進而完成自己的悟道。
閱讀源碼是同樣的,你企圖一下子要弄懂這段代碼背後的所有技術,並不現實。且不說某些代碼背後的知識量之巨讓人生畏,你能夠在這段代碼當中讀到多少東西,取決於你自身的技術高度和思想境界。好作品的閱讀效果,不完全取決於作者,更取決於讀者本身。閱讀是一個讀者和作者的共同創作的過程。讀者本身的素質,會極大地影響最終的閱讀產出。
所以,這其實是一個漫長的、反覆不斷地細品過程,急不來。想通了這點,便可以更為從容地去讀這份代碼。用個比喻講,如果你不得不通讀5次、實踐5次,才能夠達到下一個level的通悟。那麼,知道了「你不可以跨過第三個包子而吃到第五個包子」的這一事實,便可以老老實實按部就班地從第一遍讀起來。然後把剩下的焦慮託付給時間。
從這個角度講,閱讀源碼這件事真的沒有銀彈,要依靠你的苦功夫和硬本領,去慢慢同它熬歲月。不要總想走捷徑,這隻會減緩自己的成長。歐幾里得早已點出,「幾何之中,並無王者之道」。應該拿出做數學的勇氣,拿出干苦力的踏實,一點點緩慢進步。要知道,理解和習得一項本身就很複雜的技能,其本身就需要這麼多的努力付出。
那為何你在數學上又有如此的勇氣和魄力,去閱讀那些一天甚至幾天才能進展一頁的大部頭呢?
為何可以如此耐心?請參看下篇。
近期回顧
《志玲姐姐的《十三邀》》
《2018年01月寫字總結》《紐約時報的《王國與權力》》如果你喜歡我的文章或分享,請長按下面的二維碼關注我的微信公眾號,謝謝!
VIP讚賞專區
推薦閱讀: