我是這樣學習《算法導論》的:
8 :10——9 :00 起床、洗漱、吃飯;
9 :00——12:30 去自習室用c語言實現書中的算法,並學習書上這部分的內容;
12:30——15:00吃飯、玩電腦、午休;
15:00——17:30在公開課上看一位MIT教授(《算法導論》的作者之一)關於算法的視頻;
17:30——18:20晚飯;
18:20——22:00去自習室學習下午在視頻上看到的內容。
日復一日,到今天為止,我已經按這個時間表學習了十天左右(其中有兩三天因為打球、去外地中斷)。看着名家寫的書,看着名家的視頻,並且我自己還很認真,每天所有時間都在上面,該動手實踐的實踐,該看的內容一字不落的看。扎實、完美的學習方式,不是嗎?起碼我是這樣認為的,並且每天都很有成就感,哈,今天我又學了一章。關於這部分的視頻一共有23集,為此我還自己做了一個規划,用一個月的時間把算法這塊硬骨頭啃完。
也就在今天下午,我想解決前兩天一位面試官考我的問題。問題是:設計一個算法找出一個給定數組中重復的兩個數,這個數組中只有兩個數相同。我當時用的是最笨的辦法,時間復雜度為O(n^2)。我想試着用分治法去重新解決這個問題,發現分治法中求最大子數組的問題好像和這個有點類似,是不是可以類比一下?
於是我開始琢磨求最大子數組的算法。首先碰到的問題是這個算法什么時候停止,腦子里一點印象都沒有,甚至連停止的時候有沒有返回值都不記得了。只記得算法中有一個子函數是求關於跨兩個被分割子數組的最大數組,可這個函數又是怎么實現的,又是一點印象都沒有。
這個算法可是我前幾天才在書上看到的,並且自己看完之后又背着書在機器上實現了一遍。這么快就忘記了!!!我真有點不甘心,發狠一定要把它想出來,於是這個下午我在宿舍里一個人足足想了一個半小時才理清這個算法的各個邏輯。
我想起昨晚在網易公開課上看的一位哈佛教授的《幸福課》。視頻中提到一種叫安靜的學習方法,他們做過一個關於老鼠的試驗,有一只老鼠被不停的送入迷宮,另一只老鼠在每送入一次迷宮之前都會讓它喝點小酒,休息一下,思考思考,最后發現后一只老鼠學到的東西要遠大於前一只老鼠。我不正像前一只老鼠嗎?不停地學習知識,每天一章,就像固定的機器一樣,但卻從來沒有安靜的思考所學的東西,比如為什么會是這樣而不是那樣,比如這個算法的本質是什么,比如這個算法與別的同類型算法有何不同,而我只是在不停的往里裝東西。
想起前段時間用靠近兩個月的時間學習《深入理解計算機系統》,我學完了這本書,也放下了這本書,我可以告訴別人我學過這本書了。但今天我卻發現我都不敢想象我還記得多少東西,真的不敢想。
想起自己大學的前三年,很勤奮,真的,只要是覺得對自己有用的課從來都不翹,並且上課也不玩手機,認真的做筆記。我自信的以為我是學的很扎實的,但當面試時被問到一些明明學過的基本問題,我卻怎么都想不起來。
甚至我剛剛提到的網易公開課中的《幸福課》,我昨天晚上才看完了第一集,但第二天下午我卻只記得里面有個安靜的學習方法,里面的小白鼠這個實驗都是我今天下午又重新再看時才想到自己和那個老鼠很像。還記得昨天晚上我看完第一集后,覺得很有道理,立馬做了一個規划要在多久之內每天一集將這個《幸福課》都看完。但可悲的是,我在第二天即忘記了前一天看過的大部分內容,但我卻自信的對別人說,我覺得《幸福課》很好看,你可以看一下。
我已經完全變成了一個學習機器,只是覺得嗯這個東西有用,嗯定個計划,學完。然后,我就可以對別人也對自己說我學會了上面的東西。當過幾天碰到這本書上的東西時,卻發現自己只記得學過這本書,書中好像有這么個概念,到底是什么樣子的已經沒有任何印象。
我在之前,總覺得這個老師講的不好,那個老師講的不好,看看那些國外的老師,人家講的多好。那么,我現在想反問,如果你覺得老師講的不好,講的簡單,那你真正學會這些簡單的內容了嗎?面試時候大部分都是課上學過的為什么你還答不出來?那些教授再差,人家大部分都是中國名校博士生畢業,又有這么多年研究經驗,難道卻沒有資格教你?眼高手低再加上學習方法的盲目性只能導致你是個庸才。
老爸經常跟我說他上學的時候,最喜歡晚上用手指在腿上比划白天想不出來的問題(他學習成績很好,經常不去學校,但每次都拿他們班第一,我雖然沒見過,但認識我爸的人都這么說),划着划着就出來了。曾經,把這句話當成了一句話,那現在我理解這句話了。
各位博友們,不妨每天給自己一點安靜的時間,想想自己學的東西的來龍去脈,把解決這個問題的邏輯想一遍,並理清邏輯之間的關系。就算你已人到中年,不再學習這種書本上的知識,也可以在安靜的時刻想想生活,想想自己該舍棄什么,該保留什么。就算你什么也不想想,你也可以享受這份安靜。
總之不要像個機器,卻自己還不知道自己是個機器。