迷时师度 悟了自度--侯捷_迷时师度 悟了自度 侯杰-程序员宅基地

技术标签: 侯捷  杂项  

迷时师度 悟了自度 
侯捷 1998.04.20 第一次发表於 
清大.枫挢驿站.电脑书讯 CompBook 版(140.114.87.5) 
------------------------------------------------- 

元智大学和清华大学的资讯系同学,最近不约而同邀请我在自校的资讯周上 
为同学们做个演讲。对於那些吊尔郎当,连自己也不关心自己的同学,我向来一 
点气力都舍不得花;但对於积极上进的同学,我可倒是很喜欢和他们谈话。曾经 
在不同的学校讲过好些个不同的谈话性题目(非关技术,但都不脱资讯范围), 
这次有感於在学校任教三年了,颇知道同学们的一些学习情况,所以想和大家谈 
谈学习的心态、老师的角色、以及学习者自己的角色。 

我想先说一个小故事。 

●六祖檀经 

佛教东传中土之後,虽然大德大贤备出,但由中国和尚所着,被奉为「经」 
者,也只「六祖檀经」一书而已。 
六祖檀经记录着佛教禅宗六祖惠能一生的思想言行。其中对於六祖得道的过 
程,有详细的叙述。 

六祖惠能俗姓卢,南海新兴人。年少失父,母且寡居,家亦屡空,业无腴产 
。所以他从小做了樵夫,养家活口。有一天他偶闻肆间诵金刚般若经,心有所感 
,於是询问邻人何处学佛,遂安置母亲,至河北黄梅山礼拜五祖。 

●五祖弘忍 

五祖弘忍见惠能谈吐甚有根性,不动声色地让他到後院碓米。八个月後有一 
天,弘忍告诉众弟子说,每一个人写一首偈,谁能悟道,我便传他衣钵。当时人 
人以为五祖座下第一大弟子神秀必得衣钵,所以也没有人去作这首偈。神秀在这 
种情况下,一来「责无旁贷」,二来也想让师父看看自己心中的见解,便在三更 
时候於南廊壁上写下心偈一首: 

身是菩提树,心如明镜台;时时勤拂拭,莫使惹尘埃。 

第二天五祖弘忍见到了这首偈,把神秀叫到座前询问。并谓:「汝作此偈, 
见即未到,只到门前,尚未得入...」。要神秀回去再作一偈。过了数天,神秀却 
作不出来。 

●千古名诵 

有个童子行过碓房,唱诵神秀的偈。惠能闻後,问明缘由,便请童子引至大 
堂。礼拜之後,惠能说自己也有一首偈,但是他既不识字更不会写字,乃请人代 
书写下千古名诵: 

菩提本非树,明镜亦非台;本来无一物,何处惹尘埃。 

此偈一成,众总皆惊。消息传至五祖,了然於心,但恐人损害,遂脱了鞋子 
当抹布,立刻把这首偈擦掉,并且说「这首也嘛没有悟道」! 

第二天,五祖弘忍悄悄来到後院,看到惠能把大石头系在腰上,增加身体的 
重量来碓米,很是感动,於是和惠能展开一段非常空灵神妙的对话。弘忍问「米 
熟也未」?惠能曰:「米熟久矣,犹欠筛在」。於是祖以仗击碓三下而去。惠能 
知祖意,是夜三鼓入室,由祖为说金刚经。当说到「因无所住而生其心」,惠能 
大悟,於是五祖授衣钵以为信,并且说「衣为争端,止汝勿传..., 
汝须速去,恐人害汝」。 

●迷时师度,悟了自度 

五祖弘忍亲自送惠能到九江驿,令上船,把 自摇。惠能曰:「请和尚坐, 
弟子合摇 」。祖云:「合是吾渡汝」。惠能云:「迷时师度,悟了自度」。 


我曾经在研究所毕业的前夕,因为看了这个故事,有感师恩,在实验室黑板 
上写下大大的这八个字,表达我心中强烈的情绪。我知道我就要永远告别我的学 
生生涯,再也没有人度我,我要自己度化自己了。 

今天我意料之外地成为许多人的老师。远在接受学校的聘书之前,我其实也 
已经在外面开过很多课程,做着授业解惑的神圣工作。我的书籍文章,更使我扮 
演与广大读者之间一种默默的师生关系。每当一个课程的开始,不管面对的是业 
界的工程师,或是学校的学子,我总是告诉他们,课程是短暂的,课後才是长久 
的。一个课程就算长达一学期,也只是(只能是)奠定学习者日後 
自修的基础。 

进入社会的人,我想比较能够了解这里面的意义。象牙塔里的学生,即令闻 
言成理,总似乎不容易感受深刻。於是日复一日,年复一年,看着同学们勤嬉戏 
而荒精业。我带过好几届学生,大凡转学生、五专插班生、重考生都比较用功些 
,大概因为他们经历过一些小小的挫折。而他们的努力,很快使他们立於同侪之 
上。 

挫折在人生早些时候到来,谁曰不宜! 

●谁悟了? 

禅宗讲究顿悟,基本上是一种比较「玄」的境界。说是「迷时师度,悟了自 
度」,其实,除了大德大贤,谁又敢说自己悟了?智慧容或可以顿悟,知识又岂 
能够如此?谁敢说他对知识「突然都懂了」?所以「悟了自度」的「悟」,在这 
里我把它解释为「有了扎实的基础」:当你有了足够 
的基础,你就可以不依靠任何人任何时间任何地点传授您知识。只要有书籍,你 
随时可以自度。拥有足够的基础,你甚至可以开始另一种更高层次的自度:你开 
始自己设想问题,自己推敲解答,自己设计验证的方法,并自己判断逻辑有没有 
破绽。再高明的老师,也没有办法把自己的悟力灌入学生心中;唯有学生自己动 
念思考,再由老师协助解开关键环节,学生自己才能开悟。 

●南宗与北宗,顿悟与渐悟 

佛法有顿悟,学问可没有。如果有人说,我突然在某一天对 Java 开悟了, 
对 OO 开悟了,对 MFC 开悟了...,我想那是他刻意(为了炫耀)或非刻意(因 
为遗忘)地忽略了他所谓的「悟」那一天之前的所有努力。是的,那叫渐悟,不 
是顿悟。 

Inside OLE 一书作者 Kraig Brockschmidt 在他的序里面有这段话: 

1993 年一月的某个周日下午,当我正做着与 OLE 全然无关的事情时,我突 
然获得了所谓的 OLE 涅 状态。所有关於 OLE 的支支节节突然全都归定位。在 
六个月的模糊心智之後,我突然看清楚了 OLE。 

Essential COM 一书作者 Don Box 在他的序里面亦有一段类似的话: 

幸运的是有一天(1998 年八月八日),突然像神迹一般,COM 对我变得再明 
白不过,我终於了解了 COM 的动机。如何把这个 programming model 应用在每 
天遇到的程式设计问题中,也因此显得再明白不过。 

听起来都是顿悟的例子。难道学习 COM/OLE 特别需要宗教信仰吗?我想是因 
为这些技术特别需要高度抽象思考,使得霍然开朗後的喜悦巨大到令人觉得是一 
种「突然的神迹降临」。其实你我都明白不过,知识点的突破,是靠知识面的累 
积。 

●时时勤拂拭,莫使惹尘埃 

既然知道点的突破要靠面的累积,同时也知道我们「具足凡夫」,没有大宗 
师的智慧,我建议你还是多体会神秀的见解(六祖佛法南传,神秀创立北宗,主 
张渐悟)。把神秀的「时时勤拂拭,莫使惹尘埃」至少应用在你满桌子的经典好 
书上面。噢,你应该有满桌子的好书吧?没有?!那 
我就很为你惋息了,你连自度的小船都没有,连自救的工具都没有,谁来拯救你 
?我知道好多工程师桌上可怜没几本书,月入倒有 7,8 万,年终股票分红的张数 
比全年买书的本数还多。叹!不看书,你的日子会愈来愈贫乏,愈来愈空虚,因 
为你一直掏东西出去,掏空了人也就瘪掉了。 

工程师或许说「我都嘛看 paper 和 document。看书?呵呵,等书出来都太 
慢了啦」。喔,在 project 方面你不得不冲,你不冲公司也会要你冲。但你不觉 
得有很多基本的东西,其实你摇摇晃晃?有很多基础的东西,其实你从来没有好 
好把它搞懂变成自己的中心思想?你的 project 总是急如星火,所以可以 work 
就好啦!「旗正飘飘(到处埋设 flag)」管它的!模组规划管它的!文件撰写 
管它的!目光浅短者,从来不去想日後的维护工作要如何进行,「深谋远虑」者 
,则想反正到时候我已经走人了。 

这不就是我所看到的业界通病吗? 

「学海无涯,唯勤是岸」,这句话我总想错不了。有人说,勤勉二字诀不是 
万灵丹,若无兴趣,再勤勉也没有用。我想从两个角度来看这件事。第一,「勤 
」能不能够克服「难」?如果目标是放在成为一个胜任的从业人员,这一点应该 
没有问题,毕竟 computer science 能有多难? 
Computer engineering 又能有多难?多花点功夫还有读不会的吗!一本不懂,再 
读另一本(前提是都是筛选过的好书)。一试再试做不成,再试一下嘛。 

第二,「勤」能不能够克服「没兴趣」?大概不能!「学海无涯,唯勤是岸 
」这句话本来就是要以兴趣做为基础,这是大前提,着毋庸议,本来就不必说的 
。电子、电机、资讯的循环太快,竞争太烈,如果没有强烈的兴趣,念起来会非 
常非常痛苦,趁早转系转业吧。 

然而,有多少人根本是懵懵懂懂地进入大学,懵懵懂懂地填了科系?他们根 
本不知道自己真正的兴趣在哪里。也许兴趣会因为努力後的成绩提升而加分,亦 
未可知呀! 

坚定知道自己兴趣在哪里的人,是最幸福的人。自从我自己的人生终於归定 
位後,我清楚地有这种感受。 

元智大学管理学院从去年起就大一不分系,大二开始才由同学自己选系。我 
非常佩服校方的这种从善精神与兴革魄力。 

●书籍是永远的老师 

说到底,阅读习惯以及鉴赏能力的培养,是你能不能够在求学的道路上「自 
度」的关键。广义地说,也是你能不能够在人生道路上「自度」的关键。如果一 
辈子要靠别人来指点你该看哪些书,该怎麽看,忒也太没有长进了。你能阅读, 
就能鉴赏;阅读数量愈多,鉴赏能力愈高。很多 
人好奇我如何有能力评析那麽多又厚又深的大块头书,无它,因为我读的多,因 
为我读的深。 

【余秋雨.台湾演讲】(余秋雨/尔雅/1998)一书中在「建议阅读」这篇文章 
上写道,「我觉得一个人的最佳读书状态大多产生在中年以後,但能不能取得这 
种状态则取决於青年时期的准备」。余先生又说,曾有两位年老的大学图书馆管 
理员告诉他,他们能从一年级学生的借书卡上 
预测这些学生将来的成就,几乎百试不爽。有人毫无规律胡乱借,有人穷数年之 
力死啃一大堆名着,有人的借书卡过於疏空,有人的借书卡却又太密密麻麻。 

希望这些话能对我们产生一些启示。对於尚在学校就读的学生,我想特别指 
出,进入社会之後的工作是如此繁忙,你更需要在学校把握机会,奠定良好的习 
惯和良好的基础。 

●边际效益 

如果你有一笔钱,放在银行的活存利息有 3%,定存利息有 7%,而且你暂时 
无需用钱,那麽你会把钱活存还是定存? 

当然是定存。多麽简单的选择。 

如果你知道,课前预习的话,上课听讲可吸收 70%;课後立刻复习,可把效 
果再提升 10%;课後第二天复习,只能提升 5%;课後第三天才复习,能保住原来 
的 70% 不错了;课後一个星期复习,只能保持 30%;期末考前才看,则当时脑袋 
瓜里只留有 10% 的残存记忆。 

那麽,你会课前预习并且课後立刻复习吗? 

很多人在处理金钱时都是聪明人,在处理时间时都愚蠢的要命。 

你是哪一种? 


●如果可以循序来 

一位读者写 email 给我,他说『有点可惜,Windows 3.0年代我刚开始碰电 
脑。如果照程序走的话,应该可以把基础打好的』。 

面对此言我思潮起伏,想起自己这五、六年来的人生转折。『如果照程序走 
的话』,是的,我很幸运地照了程序来走,所以路不是太颠簸。我从 DOS 时代开 
始学习C programming、然後触摸低阶的 BIOS call 和 interrupt并学习 assem 
bly 语言,然後研究保护模式以及记忆体管理,然後学习 SDK programming、学 
习 C++、学习 MFC programming、钻研 Windows 作业系统...。由於基础愈挖愈 
深,成果愈垒愈高,新技术新知识也就愈来愈容易上手。核心基础打得稳,更能 
够以不变应万变。 

现在才面对这五彩缤纷花花亮丽的资讯世界的人,不管你是大一新生,或是 
忙於工作专案一直没有机会充电,还停留在古早年代的工程师,我可以想像你们 
的苦闷。新知识新技术如泰山压顶,你不知道从哪一条路开始走。有师长前辈指 
导正确的学习次序已是万幸,有些东西(还不少)偏又不是那麽有绝对的次序性 
。好比说作业系统好了,我是先学习抽象的一般性作业系统概论(例如大三安排 
的课程)呢?还是先学习专一而具象的作业系统(例如 Windows)实作技术呢? 
一开始就抽象会使我坠入五里路,没有踏实感;一开始就具象又使我的常识与一 
般观念不足。又例如C++ 和 OO,臻於高峰前通常必须经过几个阶段的反覆学习, 
包括语言本身、程式实务经验、classes 设计能力、市售application framewor 
k 之运用、对 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 Bibl 
e" 年代久远,其他都是 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) 棋峰将有中译 
//注:有大陆版 【Win95 系統程式設計 - VMs & VxDs 譯序】 
迷时师度 悟了自度 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hzchinazgx/article/details/79013251

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法