class="p0"> 我是这样学习《算法导论》的:
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)。我想试着用分治法去重新解决这个问题,发现分治法中求最大子数组的问题好像和这个有点类似,是不是可以类比一下?
于是我开始琢磨求最大子数组的算法。首先碰到的问题是这个算法什么时候停止,脑子里一点印象都没有,甚至连停止的时候有没有返回值都不记得了。只记得算法中有一个子函数是求关于跨两个被分割子数组的最大数组,可这个函数又是怎么实现的,又是一点印象都没有。
这个算法可是我前几天才在书上看到的,并且自己看完之后又背着书在机器上实现了一遍。这么快就忘记了!!!我真有点不甘心,发狠一定要把它想出来,于是这个下午我在宿舍里一个人足足想了一个半小时才理清这个算法的各个逻辑。
我想起昨晚在网易公开课上看的一位哈佛教授的《幸福课》。视频中提到一种叫安静的学习方法,他们做过一个关于老鼠的试验,有一只老鼠被不停的送入迷宫,另一只老鼠在每送入一次迷宫之前都会让它喝点小酒,休息一下,思考思考,最后发现后一只老鼠学到的东西要远大于前一只老鼠。我不正像前一只老鼠吗?不停地学习知识,每天一章,就像固定的机器一样,但却从来没有安静的思考所学的东西,比如为什么会是这样而不是那样,比如这个算法的本质是什么,比如这个算法与别的同类型算法有何不同,而我只是在不停的往里装东西。
想起前段时间用靠近两个月的时间学习《深入理解计算机系统》,我学完了这本书,也放下了这本书,我可以告诉别人我学过这本书了。但今天我却发现我都不敢想象我还记得多少东西,真的不敢想。
想起自己大学的前三年,很勤奋,真的,只要是觉得对自己有用的课从来都不翘,并且上课也不玩手机,认真的做笔记。我自信的以为我是学的很扎实的,但当面试时被问到一些明明学过的基本问题,我却怎么都想不起来。
甚至我刚刚提到的网易公开课中的《幸福课》,我昨天晚上才看完了第一集,但第二天下午我却只记得里面有个安静的学习方法,里面的小白鼠这个实验都是我今天下午又重新再看时才想到自己和那个老鼠很像。还记得昨天晚上我看完第一集后,觉得很有道理,立马做了一个规划要在多久之内每天一集将这个《幸福课》都看完。但可悲的是,我在第二天即忘记了前一天看过的大部分内容,但我却自信的对别人说,我觉得《幸福课》很好看,你可以看一下。
我已经完全变成了一个学习机器,只是觉得嗯这个东西有用,嗯定个计划,学完。然后,我就可以对别人也对自己说我学会了上面的东西。当过几天碰到这本书上的东西时,却发现自己只记得学过这本书,书中好像有这么个概念,到底是什么样子的已经没有任何印象。
我在之前,总觉得这个老师讲的不好,那个老师讲的不好,看看那些国外的老师,人家讲的多好。那么,我现在想反问,如果你觉得老师讲的不好,讲的简单,那你真正学会这些简单的内容了吗?面试时候大部分都是课上学过的为什么你还答不出来?那些教授再差,人家大部分都是中国名校博士生毕业,又有这么多年研究经验,难道却没有资格教你?眼高手低再加上学习方法的盲目性只能导致你是个庸才。
老爸经常跟我说他上学的时候,最喜欢晚上用手指在腿上比划白天想不出来的问题(他学习成绩很好,经常不去学校,但每次都拿他们班第一,我虽然没见过,但认识我爸的人都这么说),划着划着就出来了。曾经,把这句话当成了一句话,那现在我理解这句话了。
各位博友们,不妨每天给自己一点安静的时间,想想自己学的东西的来龙去脉,把解决这个问题的逻辑想一遍,并理清逻辑之间的关系。就算你已人到中年,不再学习这种书本上的知识,也可以在安静的时刻想想生活,想想自己该舍弃什么,该保留什么。就算你什么也不想想,你也可以享受这份安静。
总之不要像个机器,却自己还不知道自己是个机器。