学习方法之《自己动手写操作系统》书摘
你是否有过这样的经历,有一天你兴致勃勃买来一堆菜谱想学厨艺,翻开之后却发现自己根本没见过那些材料的名字,也不知道什么叫文火什么叫武火,什么叫上浆什么叫勾芡。而菜谱里根本没告诉你!你扔掉菜谱,垂头丧气,从此对厨艺失去兴趣。
…
你或许听说过张五常,他为了研究经济学问题亲自跑到大街上去卖橘子,后来写成了著名的《卖橘者言》,成了实证经济学的典范。他没有仅仅躲在房子里研究,因为他相信通过实践得来的经验才最可靠、最深刻。我想他真的是一个喜欢追根究底的人。
…是的,我就是这样一个喜欢探求本质的人,对这一切怀有极大的兴趣,于是我想写一个自己的操作系统,因为我知道只有通过自己动手,才能对它有真正深刻的了解。
道篇
.有效而愉快地学习
你大概依然记得,在亲自敲出第一个“Hello world”程序并运行成功时的喜悦,那样的成就感点燃了你对编写程序的浓厚兴趣。随后你不断地学习,每学到新的语法都迫不及待地在计算机上调试运行,在调试的过程中克服困难,又学到新知识,并获得新的成就感。
可现在请你设想一下,假如课程不是这样安排的,而是先试图告诉你所有的语法,中间没有任何实践的机会,试问这样的课程你能接受吗?我想惟一的感受就是索然无味。
原因何在?因为你体会不到通过不断实践而带来的一次一次的成就感。而感就感是学习过程中快乐的源泉。没有了成就感,学习效率将大打折扣。
每个人都希望有效且愉快地学习,可不幸的是,我们见到的操作系统课程十之八九都是在喋喋不休地讲述着进程管理、存储管理、I/O控制、调度算法,我们到头来也没有一点的感性认识。我们好像已经理解却又好像一无所知。很明显,没有成就感,一点也没有。
.学习的过程应该是从感性到理性的提升过程
在没有登过泰山之前,无论书中怎样描写它的样子,你都无法想你出它的真实面目,即使配有插图,你对它的了解也仍是支离破碎的。毫无疑问,一千本描述泰山的书都比不上你一次登山的经历。文学家的描述是华丽而优美的,可这样的描述最终产生的效果是促使你非去亲自登泰山不可。反过来呢?假如你已经登过泰山,这样的经历所产生的效果会使你想读尽天下所有描述泰山的书吗?恰恰相反,你可能再也不想去看那些文字描述了。
是啊,再好的讲述也比不上亲身的体验。人们的认知规律本来如此,有了感性的认识,才能上升为理性的思考。反其道而行之只能是事倍功半。
..而随着本书去亲身体验,则好像置身于山门之内,你不但可以看见眼前的每一个细节,更是具有了走完整座大山的信心。
.暂时的错误并不可怕
当我坟一件事情的全貌没有很好地理解的时候,很可能会对某一部分产生理解上的误差,这就是所谓的断章取义。很多时候断章取义是难免的,但是,在不断学习的过程中,我们会逐渐看到更多,了解更多,对原先事物的认识也会变得深刻甚至完全不同。
..在实践的过程中,可能在很多地方会有一些误解产生。这都没有关系,随着了解的深入,这些误解总会得到澄清..
术篇
.用到什么再学什么
我们不是在考试,只是出于自己的兴趣,所以,就让我们忠于自己的喜好吧,不必为了考试而看完所有的章节。让我们马上投入实践,遇到问题再寻觅解决的办法。笔者非常推崇这样的学习方法:
实践->遇到问题->解决问题->再实践
由于我们知道为什么学习,所以才会非常投入;由于我们知道我们的目标是解决什么问题,所以才会非常专注;由于我们在实践中学习,所以才会非常高效。最有趣的是,最终你会发现你并没有因为选择这样的学习方法而少学到什么,相反,你会发现你用更少的时间学到了更多的东西,并且格外扎实。
.只要用心,就没有学不会的东西
..所有的道理都是相通的,我们所做的并非创造性的工作,所有的问题前人都曾经解决过,所以我们更应无所畏惧。更何况不仅有书店,而且有因特网,动动手就能找到需要的资料,我们只要认真研究就够了。所以当遇到困难时,请静下心来,慢慢研究,只要用心,没有学不会的东西。
.适当地囫囵吞枣
如果囫囵吞枣仅仅是学习的一个过程而非终点,那么它并不一定就是坏事。大家都应该听说过鲁迅先生学习英语的故事,他建议在阅读的过程中遇到不懂的内容可以掠过,等到过一段时间之后,这些问题会自然解决。
在本书中,有时候可能先列出一段代码,告诉你它能完成什么,这时你也可以大致读一下,因为下面会有对它详细的解释。第一遍读它的时候,你只要了解大概就够了。

2009年07月23日 17:59
很想结识你这个朋友!发现自己高一开始想追求的东西确实有人做得这么好了(原来我们同年,读的也是同一专业)。我能加你QQ或者邮箱等等其它的方式联系你吗?
[回复]
2009年07月27日 04:39
很想学有所成。。希望能得到你的指导
[回复]