正兒巴經學習算法算起來也有快兩個月了,之前作為計算機工科生雖然算法和數據結構是必修課,但實際上只是停留在“理解”的層面,相當膚淺,更遑論舉一反三靈活運用了。因此,所謂“正兒巴經”學習算法,意即開始對算法思想的本質進行歸根究底的過程、對思維方法論進行歸納抽象的過程、對各種解題技巧進行一般化的過程、通過不斷練習來讓記憶內隱化的過程..
在“正兒巴經”學習算法之前,我曾經有大半年時間都在用業余時間“正兒巴經”地學習心理學和認知神經科學。所以在開始正經思考算法問題之前做的第一件事情就是仔細琢磨一直令我困惑的問題——那些看似抓不到摸不著的靈感到底是怎么來的。
現代心理學的一個最偉大的原則就是:所有的心理活動同時都是生理活動。——實際上,“心理活動”只不過是“大腦神經活動”的通俗稱呼。雖然大腦的結構極度復雜,然而許多人不知道的是,現代神經科學對大腦功能從高層原則上的認識已經可以說是相當完備了,而對于記憶和學習這塊更加是因為Eric Kandel的突破性工作變得相當清晰。可以說剩下的工作主要就是補充細節了。于是乎,借助于三本關于記憶和學習的書,一本專門論述解題心理學的書,wikipedia,波利亞的三卷解題書,以及自己在思考有限多的問題的過程中對自己的思維過程的反省和總結,我試著對解題的心理學做了一個思考和總結(《跟波利亞學解題》)。——這聽起來很奇怪,一個本身只會初級算法的人又如何去思考涵蓋所有問題解決的思維過程呢?還是引用波利亞著名的發明者悖論吧:有時候,一個一般性的問題反而要比它的一個特例更好解決。
然而,一般性的問題思考清楚了,清楚解題思維的本質了,并不代表我就萬能了,就立即擅長解決所有算法問題了。解題不是光靠思維的,巧婦難為無米之炊。事實上,在《跟波利亞學解題》中總結的一個非常關鍵的要點就是:啟發法固然可貴,然而知識的重要性是不可替代的。不存在通用的、萬能的知識,要不然我們也不必到今天還在不斷探索物質世界的規律了。此外,獲得知識的過程——學習——本質上是個體力活(盡管是有一定方法的體力活),這個體力活大致分為兩步:
將外界(書本上的)知識轉化為外顯記憶。通過不斷練習,將外顯記憶轉化為內隱記憶。
(關于什么是外顯記憶什么是內隱記憶請參考wikipedia或者《跟波利亞學解題》)
而第二步又包含兩個過程:
將關于思維方法的知識轉化為內隱記憶從而不知不覺就遵循。將關于事實知識(例如“定理”、“性質”)的提取線索們轉化為內隱記憶從而看到XX就能想到YY。(參考《找尋逝去的自我》第二章“記憶的建構:對現在和過去的編碼和提取”)
關于第一點有本不錯的書——《學習的藝術》。
關于第二點有一個不錯的例子,最初從李笑來老師的blog上讀到的(《把時間當作朋友》):
我李敖看的書很少會忘掉,什么原因呢?方法好。什么方法?心狠手辣。剪刀美工刀全部下來,把書給分尸掉了,就是切開了。這一頁我需要,這一段我需要,我把它分類分出來了。那背面有怎么辦呢?把它影印出來,或者一開始就買兩本書,把兩本書都切開以后排出來,把要看的部分切開。結果一本書看完了,這本書也被分尸掉了。這就是我的看書方法。那分類怎么分呢?我有很多自己做的夾子,夾子我寫上字,把資料全部分類。一本書看完以后,全部進入我的夾子里面了。我可以分出幾千個類來,分的很細。好比說按照圖書館的分類,哲學類,宗教類;宗教類再分佛教類、道教類、天主教類。我李敖分的更細了,天主教還可以分,神父算一類。神父還可以細分,神父同性戀就是一類,神父還俗又是一類。修女同性戀是一類,修女還俗這又是一類。任何書里有關的內容都進入我的資料里來。進入干什么呢?當我要寫小說的時候,需要這個資料,打開資料,只是寫一下就好了。或者發生了一個什么事件,跟修女同性戀有關系,我要發表對新聞的感想,把新聞拿過來,我的資料打開,兩個一合并,文章立刻就寫出來了。換句話說,我這本書看完之后,被我大卸八塊,五馬分尸。可是被我勾住了,這些資料我不憑記憶來記它,我憑用細部的很耐心的功夫把它勾緊,放在資料夾子里。我的記憶力只要記這些標題就好了。標題是按照我的習慣來分,基本上都翻譯成英文字,用英文字母排出來,偶爾也有些中文的。今天我把看家的本領告訴大家,李敖知道的那么多,博聞強記,記憶力那么好。我告訴大家,記憶力是可以訓練的。記憶力一開始就是你不要偷懶,不要說躺在那里看書,看完了這本書還是干干凈凈的,整整齊齊的,這不對。看完了這本書,這本書就大卸八塊,書進了資料夾,才算看完這本書。今天我為大家特別亮一手,把如何看書的招告訴大家。不要以為這本書看完了,干干凈凈的新的算看過。那個不算看過,因為當時是看過,可是浪費了。你不能夠有系統的扣住這些資料,跟資料掛鉤。可是找我這個方法,可以把你看過的書,都把它的精華抓出來,扣在一起。這就是我的這種土法煉鋼的治學方法。
恰恰運用了記憶最深刻的原理。
我們的大腦本質上是一個計算器,其物質基礎是神經網絡;而不斷的練習則是對該網絡節點間聯系強度(神經細胞間的突觸聯系強度)的訓練。——可惜的是像愛因斯坦大腦內的經過完美訓練的神經網絡參數不能直接導入到我大腦中,也許將來可以做到,但目前只有笨辦法,實在是件郁悶的事。
所以,拿起書吧,訓練你的神經網絡,路漫漫其修遠兮.
作者:著有《暗時間》一書