资源描述
迷时师度 悟了自度
侯捷
元智大学和清华大学的资讯系同学,最近不约而同邀请我在自校的资讯周上为同学们做个演讲。对于那些吊儿郎当,连自己也不关心自己的同学,我向来一点气力都舍不得花;但对於积极上进的同学,我可倒是很喜欢和他们谈话。曾经在不同的学校讲过好些个不同的谈话题目(非关技术,便都不脱资讯范围),这次有感於在学校任教三年了,颇知道同学位的一些学习情况,所以想和大家谈谈学习的心态、老师的角色、以及学习者自己的角色。
我想先说一个小故事。
六祖檀经
佛教东传中土之后,虽然大德大贤备出,但由中国和尚所著,被奉为“经”者,也只〈六祖檀以〉一书而已。六祖檀经记录着佛教禅宗六祖惠能一生的思想言行。其中对于六祖得道的过程,有详细的叙述。
六祖惠能俗姓卢,南海新兴人。年少失父,母且寡居,家亦屡空,业无腴产。所以他从小做了樵夫,养家活口。有一天他偶闻肆间诵金刚般若经,心有所感,於是询问邻人何处学佛,遂安置母亲,至河北黄梅山礼拜五祖。
五祖弘忍
五祖弘忍见惠能谈吐甚有根性,不动声色让他到后院碓米。八个月后有一天,弘忍告诉众弟子说,每一个人写一首谒,谁能悟道,我便传他衣钵。当时人人以为五祖座下第一大弟子神秀必得衣钵,所以也没有人去作这首偈。神秀在这种情况下,一来责无旁贷,二来也想让师父看看自己心中的见解,便在三更时候于南廊壁上写下心偈一首:
身是菩提树,心如明镜台;时时勤指拭,莫使惹尘埃。
第二天五祖弘忍见到了这首偈,把神秀叫到座前询问。并谓:“汝作此偈,见即未到,只到门前,尚未得入……”要神秀回去再作一偈。过了数天,神秀却作不出来。
千古名诵
有个童子行过碓房,唱诵神秀的偈。惠能闻后,问明缘由,便请童子引至大堂。礼拜之后,惠能说自己也有一首偈,但是他既不识字更不会写字,乃请人代书写下千古名诵:
菩提本非树,明镜亦非台;本来无一物,何处惹尘埃。
此偈一成,众总皆惊。消息传至五祖,了然于心,但恐人损害,遂脱了鞋子当抹布,立刻把这首偈擦掉,并且说“这首嘛也没有悟道”!
第二天,五祖弘忍悄悄来到后院,看到惠能把大石头系在腰上,增加身体的重量来碓米,很是感动,于是和惠能展开一段非常空灵神妙的对话。弘忍问“为熟也未”?惠能曰:米熟久矣,犹欠筛在。于是五祖以杖击碓三下而去。惠能知祖意,是夜三鼓入室,由祖为说金刚经。当说到“因无所住而生其心”,惠能大悟,于是五祖授衣钵以为信,并且说“衣为争端,止汝勿传……汝须速去,恐人害汝。”
迷时师度,悟了自度
五祖弘忍亲自送惠能到九江驿,令上船,把橹自摇。惠曰:请和尚坐,弟子合摇。祖云:合是吾渡汝。惠能云:迷是师度,悟了自度。
我曾经在研究所毕业的前夕,因为看了这个故事,有感师恩,在实验室黑板上写下大大的这八个字,表达我心中强烈的情绪。我知道我要永远告别我的学生生涯,再出没有人度我,我要自己度化自己了。
今天我意料之外地成为许多人的老师,远在接受学校的聘书之前,我其实也已经在外面开过很多课程,做着授业解惑的神圣工作,我的书籍文章,更使我扮演与广大读者之间一种默默的师生关系。每当一个课程的开始,不管面对的是业界的工程师,或是学校的学子,我总是告诉他们,课程是短暂的,课后才是长久的。一个课程就算长达一学期,也只是(只能是)奠定学习者日后自修的基础。
进入社会的人,我想比较能够了解这里面的意义。象牙塔里的学生,即令闻言成理,总似乎不容易感受深刻。于是日复一日,年复一年,看着同学们勤嬉而荒精业。我带过好几届学生,大凡转学生、大专插班生、重考生都比较用功些,大概因为他们经历过一些小小的挫折。而他们的努力,很快使他们立于同侪之上。挫折在人生早些时候到来,谁曰不宜!
谁悟了?
禅宗讲究顿悟,基本上是一种比较“玄”的境界。说是“迷时师度,悟时自度”,其实,除了大德大贤,谁又敢说自己悟了?智慧容或可以顿悟,知识又岂能够如此?谁敢说他对知识“突然都懂了?”,所以悟了自度的“悟”,在这里我把它解释为“有了扎实的基础”,当你有了足够的基础,你就可以不依靠任何人任何时间向任何地点传授您知识。只要在书籍,你随时可以自度。拥有足够的基础,你甚至可以开始另一种更高层次的自度:你开始设想问题,自己推敲解答,自己设计验证的方法,并自己判断逻辑有没有破绽。再高明的老师,也没有办法把自己的悟力灌入学生心中:唯有学生自己动念思考,再由老师协助解开关键环节,学生自己才能开悟。
南宗与北宗,顿悟与渐悟
佛法有顿悟,学问可没有。如果有人说,我突然在某一天对Java开悟了,对QQ开悟了,对MFC开悟了……,我想那是他刻意(为了炫耀)或非刻意(因为遗忘)地忽略了他所谓“悟”那一天之前的所有努力。是的,那叫渐悟,不是顿悟。
Inside OLE一书作者Kraig Brockschmidt在他的序里面有这段话:
1993的一月的某个周日下午,当我正做着与OLE全然无关的事情时,我突然获得了所谓的OLE陧磐状态。所有关于OLE的支支节节突然全都定位。在六个月的模糊心智之后,我突然看清楚了OLE。
Essntial COM一书作者Don Box在他的序里面亦有一段类似的话:
幸运的是有一天(1998年8月8日),突然像神迹一般,COM对我变得再明白不过,我终于了解了COM的动机。如何把这个programming model应用在每天遇到的程式设计问题中,也因此显得再明白不过。
听起来都是顿悟的例子。难道学习CON/OLE特别需要宗教信仰吗?我想是因为这些技术特别需要高度抽象思考,使得霍然开朗后的喜悦巨大到令人觉得是一种“突然的神迹降临”。其实你我都明白不过,知识点的突破,是靠知识面的累积。
时时勤拂拭,莫使惹尘埃
既然知道点的突破要靠面的累积,同时也知道我们“具足凡夫”,没有大宗师的智慧,我建议你还是多体会神秀的见解(六祖佛法南传,神秀创立北宗,主张渐悟)。把神秀的“时时勤拂拭,莫使惹尘埃”至少应用在你满桌子的经典好书上面。噢,你应该有满桌子好书吧?没有!那我就很为你惋惜了,你连自度的小船都没有,连自救的工具都没有,谁来拯救你?我知道好多工程师桌上可怜没有几本书,月入倒有7、8万,年终股票分红的张数比全年买书的本数还多,叹!不看书,你的日子会愈来愈贫乏,愈来愈空虚,因为你一直掏东西出去,掏空了人也就瘪掉了。
工程师或许多“我都嘛看paper和document。看书?呵呵,等书出来都太慢了啦。”喔,在project方面你不得不冲,你不冲公司也会要你冲。但你不觉得有很多基本的东西,其实你摇摇晃晃?有很多基础的东西,其实你从来没有好好把它搞懂变成自己的中心思想?你的project总是急如星火,所以可以work就好啦!(旗下飘飘(到处埋设flag))管它的!模组规划管它的!文件撰写管它的!目光浅短者,从来不去想日后工作要如何进行,深谋远虑者,则想反正到时候我已经走人了。
这不就是我所看到的业界通病吗?
“学海涯,唯勤是岸”,这句话我想总错不了。有人说,勤勉二字诀不是万灵丹,若无兴趣,再勤勉也没有用。我想从两个角度来看这件事。第一,“勤”能不能克服“难”?如果目标是放在成为一个胜任的从业人员,这一点应该没有问题,毕竟computer science能有多难?computer engineering又有多难?多化点功夫还有读不会的吗!一本不懂,再读另一本(前提是都是筛选过的好书。)一试再试做不成,再试一下嘛。第二,“勤”能不能够克服“没兴趣”?大概不能!“学海无涯,唯勤是岸”这句话本来就是要以兴趣做为基础,这是大前提,着毋庸议,本来就不必说的。电子、电机、资讯的循环太快,竞争太烈,如果没有强烈的兴趣,念起来会非常非常痛苦,趁早转系转业吧。
然而,有多少人根本是懵懵懂懂地进入大学,懵懵懂懂地填了科系?他们根本不知道自己真正的兴趣在哪里。也许兴趣会因为努力后的成绩提升而加分,亦未可知呀!
坚定知道自己兴趣在哪里的人,是最幸福的人。自从我自己的人生终于归定位后,我清楚地有这种感受。
元智大学管理学院从去年起就大一不分系,大二开始才由同学自己先系。我非常佩服校方的这种从善精神与兴革魄力。
书籍是永远的老师
说到底,阅读习惯以及鉴赏能力的培养,是你能不能够在求学的道路上“自度”的关键。广义地说,也是你能不能够在人生道路上“自度”的关键。
如果一辈子要靠别人来指点你该看哪些书,该怎么看,忒也太没有长进了。你能阅读,就能鉴赏;阅读数量愈多,鉴赏能力愈高,很多人好奇我如何有能力评析好得多又厚又深的大块头书,无它,因为我读的多,因为我读的深。
《余秋雨。台湾演讲》(余秋雨/尔雅/1998)一书中在“建议阅读”这篇文章上写道,“我觉得一个人的最佳读书状态大多数产生在中年以后,但能不能取得这种状态则取决于青年时期的准备”。余先生又说,曾有两位年老的大学图书馆管理员告诉他,他们能从一年级学生的借书卡上预测这些学生将来的成就,几乎百试不爽。有人毫无规律胡乱借,有人穷数年之力死啃一大堆名著,有人的借书卡过于疏空,有人的借书卡却又太密密麻麻。
希望这些话能对我们产生一些启示。对于尚在学校就读的学生,我想特别指出,进入社会之后的工作是如此繁忙,你更需要在学校把握机会,奠定良好的习惯和良好的基础。
边际效益
如果你有一笔钱,放在银行的活存利息有3%,定存利息有7%,而且你暂时无需用钱,那么你会把钱活存还是定存?
当然是定存。多么简单的选择。
如果你知道,课前预习的话,上课听讲可吸收70%,课后立刻复习,可把效果再提升10%;课后第二天复习,只能提升5%;课后第三天才复习,能保住原来的70%不错了;课后一个星期复习,只能保持30%;期末考前才看,则当时脑袋瓜里只留有10%的残存记忆。
那么,佻会课前预习并且课后立刻复习吗?
很多人在处理金钱时都是聪明人,在处理时间时都愚蠢的要命。
你是哪一种?
如果可以循序来
一位记者写email给我,他说“有点可惜,Windows3.0年代我刚开始碰电脑。如果照程序走的话,应该可以把基础打好的。”
而对此言我思潮起伏,想起自己这五、六年来的人生转折。“如果照程序走的话”,是的,我很幸运地照了程序来走,所以路不是太颠簸。我从DOS时代开始学习C programming,然后触摸低阶的BIOS call和interrupt并学习assembly语言,然后研究保护模式以及记忆体管理,然后学习SDK programming、学习C++、学习MFC programming、钻研Windows作业系统……。由于基础愈挖愈深,成果愈垒高,新技术新知识也愈来愈容易上手。核心基础打得稳,更能够以不变应万变。
现在才面对这五彩色缤纷花花亮丽的资讯世界的人,不管你是大一新生,或是忙于工作专案一直没有机会充电,还停留在古早年代的工程师,我可以想像你们的苦闷。新知识新技术如泰山压顶,你不知道从哪一条路开始走。有师长前辈指导正确的学习次序已是万幸,有些东西(还不少)偏又不是那么有绝对的次序性。好比说作业系统好了,我是先学习抽象的一般作业系统概论(例如大三安排的课程)呢?不是先学习专一而具象的作业系统(例如Windows)实作技术呢?一开始就抽象会使我坠入五里路,没有踏实感;一开始就具象又使我的常识与一般观念不足。又例如C++和QQ,臻于高峰前通常必须经过几个阶段的反复学习,包括语言本身、程式实务经验、classes设计能力、市售application framework之运用,对object model的彻底认识。这些阶段并不是结束一个后开始另一个,它们都有重叠性。经过这样的铺陈,你会发现,原来通往COM的基础已经在这些阶段中扎好了。
身在知识爆炸的时代,算是对求知行为的一个不幸吧。可是,永远有人生在你之前,也永远有人生于你之后,还能怎么样?认命一点。
令人佩服的学习精神
这学期我开的Win32 system programming and Win95 OS课程,除了自校学生选修,就我所知道的还有交大两位大学生和清大一位研究生,以及中坜地区几位工程师来旁听。过去也曾有台北来的工程师旁听。我非常佩服这些同学的学习精神。从台北或新竹坐车来内坜可不是件轻松的事,尤其在那想起来就头痛俗裂的下班时段。有一天我顺巧载那位清大研究生回新竹,才知道他每周四上完我的课回到住处都超过晚上11点了。
为了上三小时的课,前后再花四小时。这样的求知心真是不容易呀,我很佩服。旁听的同学永远是最认真的,远道来的同学又更认真。因为他们更懂得珍惜。
经典好书再次整理
三不五时就会收到一些email,要我推荐专业上的书籍。我再次把个人研习领域(C,C++,Win32 OS,Win32 Programming)内的一些好书胪列出来给大家做参考。
很多人混淆了所谓的入门书与基础书。入门书必须浅显易懂,因为它面对的是全然无知的新手;如何吸引并提升读者的举,几乎是入门书最重要的功课。基础书不一样,它的读者早已入门,甚至有相当经验;它的任务是为读者挖好更深更实在的基础。通常这种书的论述层次都很深,一件事直接探到了源头;碰触范围也很广,旁征博引以求全效。
通常过了入门阶段,一本入门书对你已是毫无滋味(但不要回过头来骂它,毕竟你也曾受过它的帮助。何况一本好的入门书是非常不容易写的)。至于基础书,可以伴你长长久久,上面的注解眉批、心得笔记,甚至可发唤起你的许多艰苦而欣慰的回忆。
下面全都是可以为你奠基的书。其中AW是Addison Wesley的缩写,MP是Microsoft Press的缩写。如果有中译本,我会书名后加注,但这并不代表推荐。这些经典的中译品质,有的很好,有的普通,也有的错误百出。有些书我不确定在没有中译本,各位网友如果知道,请告诉我或公开回复,谢谢。除了“Macro Assembler Bible”年代久远,其他都是1996年以后的新书。
一、 Assemble
1、 Microsoft Macro Assembler Bible 2/e(Barkakati/SAMS)峰中译
二、 C++
1、C++ Primer 3/e(Lippman/AW)原文书即将出版。旧版有无中译?
2、 The C++ Programming Language 3/e(Stroustrup/AW)有无中译?儒林?
3、 Inside The C++ Object Model(Lippman/AW)棋峰将有中译本
三、 SDK
1、 Programming Windows 95(Petzold/MP)松格中译//注:大陆版——清华大学出版社
2、 Windows 95:A Developer’s Guide(Richter/M T Books)
四、 VxD
1、 System Programming for Windows 95/(Oney/MP)松岗将有中译
2、 Writing Windows VxDs and Device Deviers 2/e(Hazzah/R&D Books)无中译本
五、 Windows O.S(and/or Windows System Programming)
1、 Windows 95 System Programming Secrets(Matt//IDG Books)旗标中译//注:大陆版——清华大学出版社
2、 Advanced Windows 3/e(Richter/Microsoft Press)松岗中译
六、 Windows NT kernel mode driver
1、The Windows NT Device Driver Book(Baker/Prentice Hall)无中译本
七、 MFC
1、 Inside Visual C++ 4/e(Kruglinski/MP)无中译本。旧版由棋峰中译//注:大陆4版——清华大学出版社 //大陆5版——希望出版社
2、 Programming Windows 95 with MFC(Prosise/MP)松格中译
3、 深入浅出 MFC 2/e(侯俊杰/松岗)中文本//注:大陆版——华中理工出版社
4、 MFC Internals(Shepherd Wingo/AW)无中译本
八、 COM
1、Essential COM(Don Box/Addison Wesley)棋峰将有中译//注:有大陆版
展开阅读全文