看板 CareerPlan 關於我們 聯絡資訊
1998.04.20 發表 元智大學和清華大學的資訊系同學,最近不約而同邀請我在自校的資訊週上為 同學們做個演講。對於那些吊爾郎當,連自己也不關心自己的同學,我向來一 點氣力都捨不得花;但對於積極上進的同學,我可倒是很喜歡和他們談話。曾 經在不同的學校講過好些個不同的談話性題目(非關技術,但都不脫資訊範 圍),這次有感於在學校任教三年了,頗知道同學們的一些學習情況,所以想 和大家談談學習的心態、老師的角色、以及學習者自己的角色。 我想先說一個小故事。 ●六祖檀經 佛教東傳中土之後,雖然大德大賢備出,但由中國和尚所著,被奉為「經」者, 也只「六祖檀經」一書而已。六祖檀經記錄著佛教禪宗六祖惠能一生的思想言 行。其中對於六祖得道的過程,有詳細的敘述。 六祖惠能俗姓盧,南海新興人。年少失父,母且寡居,家亦屢空,業無腴產。 所以他從小做了樵夫,養家活口。有一天他偶聞肆間誦金剛般若經,心有所感, 於是詢問鄰人何處學佛,遂安置母親,至河北黃梅山禮拜五祖。 ●五祖弘忍 五祖弘忍見惠能談吐甚有根性,不動聲色地讓他到後院碓米。八個月後有一天, 弘忍告訴眾弟子說,每一個人寫一首偈,誰能悟道,我便傳他衣缽。當時人人以 為五祖座下第一大弟子神秀必得衣缽,所以也沒有人去作這首偈。神秀在這種情 況下,一來「責無旁貸」,二來也想讓師父看看自己心中的見解,便在三更時候 於南廊壁上寫下心偈一首: 身是菩提樹,心如明鏡臺;時時勤拂拭,莫使惹塵埃。 第二天五祖弘忍見到了這首偈,把神秀叫到座前詢問。並謂:「汝作此偈,見即 未到,只到門前,尚未得入... 」。要神秀回去再作一偈。過了數天,神秀卻作 不出來。 ●千古名誦 有個童子行過碓房,唱誦神秀的偈。惠能聞後,問明緣由,便請童子引至大堂。 禮拜之後,惠能說自己也有一首偈,但是他既不識字更不會寫字,乃請人代書寫 下千古名誦: 菩提本非樹,明鏡亦非臺;本來無一物,何處惹塵埃。 此偈一成,眾總皆驚。消息傳至五祖,了然於心,但恐人損害,遂脫了鞋子當抹布 ,立刻把這首偈擦掉,並且說「這首也嘛沒有悟道」! 第二天,五祖弘忍悄悄來到後院,看到惠能把大石頭繫在腰上,增加身體的重量 來碓米,很是感動,於是和惠能展開一段非常空靈神妙的對話。弘忍問「米熟也 未」?惠能曰:「米熟久矣,猶欠篩在」。於是祖以仗擊碓三下而去。惠能知祖 意,是夜三鼓入室,由祖為說金剛經。當說到「因無所住而生其心」,惠能大悟, 於是五祖授衣缽以為信,並且說「衣為爭端,止汝勿傳...,汝須速去,恐人害汝」。 ●迷時師度,悟了自度 五祖弘忍親自送惠能到九江驛,令上船,把艣自搖。惠能曰:「請和尚坐,弟 子合搖艣」。祖云:「合是吾渡汝」。惠能云:「迷時師度,悟了自度」。 我曾經在研究所畢業的前夕,因為看了這個故事,有感師恩,在實驗室黑板 上寫下大大的這八個字,表達我心中強烈的情緒。我知道我就要永遠告別我 的學生生涯,再也沒有人度我,我要自己度化自己了。 今天我意料之外地成為許多人的老師。遠在接受學校的聘書之前,我其實也已 經在外面開過很多課程,做著授業解惑的神聖工作。我的書籍文章,更使我扮 演與廣大讀者之間一種默默的師生關係。每當一個課程的開始,不管面對的是 業界的工程師,或是學校的學子,我總是告訴他們,課程是短暫的,課後才是 長久的。一個課程就算長達一學期,也只是(只能是)奠定學習者日後自修的 基礎。 進入社會的人,我想比較能夠瞭解這裡面的意義。象牙塔裡的學生,即令聞言 成理,總似乎不容易感受深刻。於是日復一日,年復一年,看著同學們勤嬉戲 而荒精業。我帶過好幾屆學生,大凡轉學生、五專插班生、重考生都比較用功 些,大概因為他們經歷過一些小小的挫折。而他們的努力,很快使他們立於同 儕之上。 挫折在人生早些時候到來,誰曰不宜! ●誰悟了? 禪宗講究頓悟,基本上是一種比較「玄」的境界。說是「迷時師度,悟了自度」, 其實,除了大德大賢,誰又敢說自己悟了?智慧容或可以頓悟,知識又豈能夠 如此?誰敢說他對知識「突然都懂了」?所以「悟了自度」的「悟」,在這裡 我把它解釋為「有了紮實的基礎」:當你有了足夠的基礎,你就可以不依靠任 何人任何時間任何地點傳授您知識。只要有書籍,你隨時可以自度。擁有足夠 的基礎,你甚至可以開始另一種更高層次的自度:你開始自己設想問題,自己 推敲解答,自己設計驗證的方法,並自己判斷邏輯有沒有破綻。再高明的老師, 也沒有辦法把自己的悟力灌入學生心中;唯有學生自己動念思考,再由老師協 助解開關鍵環節,學生自己才能開悟。 ●南宗與北宗,頓悟與漸悟 佛法有頓悟,學問可沒有。如果有人說,我突然在某一天對 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 並學習 assembly 語言,然後研究保護模式以及記憶體管理,然後學習 SDK programming、學習 C++、學習 MFC programming、鑽研 Windows 作業系統、 鑽研 C++ Object Model 學理、鑽研 COM/ActiveX...。由於基礎愈挖愈深,成 果愈壘愈高,新技術新知識也就愈來愈容易上手。核心基礎打得穩,更能夠 以不變應萬變。 現在才面對這五彩繽紛花花亮麗的資訊世界的人,不管你是大一新生,或 是忙於工作專案一直沒有機會充電,還停留在古早年代的工程師,我可以 想像你們的苦悶。新知識新技術如泰山壓頂,你不知道從哪一條路開始走。 有師長前輩指導正確的學習次序已是萬幸,有些東西(還不少)偏又不是 那麼有絕對的次序性。好比說作業系統好了,是先學習抽象的一般性作業 系統概論(一般大三課程)好呢?還是先學習專一而具象的作業系統(例 如 Windows)實作技術呢?一開始就抽象會使我墜入五里路,沒有踏實 感;一開始就具象又使我的常識與一般觀念不足。又例如C++ 和 OO,臻 於高峰前通常必須經過幾個階段的反覆學習,包括語言本身、程式實務經 驗、classes 設計能力、市售application framework 之運用、對 object model 的 徹底認識。這些階段並不是結束一個而後開始另一個,它們都有重疊性; 經過這樣的鋪陳,你會發現,原來通往 COM 的基礎已經在這些階段中紮 好了。 身處知識爆炸的時代,算是對求知行為的一個不幸吧。可是,永遠有人生 在你之前,也永遠有人生於你之後,還能怎麼樣?認命一點。 ●令人佩服的學習精神 這學期我開的 Win32 system programming and Win95 OS 課程,除了自校學 生選修,就我所知道的還有交大兩位大學生和清大一位研究生,以及中壢 地區幾位工程師來旁聽。過去也曾有台北來的工程師旁聽。我非常佩服這 些同學的學習精神。從台北或新竹坐車到內壢可不是件輕鬆的事,尤其在 那想起來就頭痛欲裂的下班時段。有一天我順巧載那位清大研究生回竹, 才知道他每週四上完我的課回到住處都超過晚上 11 點了。 為了上三小時的課,前後再花四小時。這樣的求知心真是不容易呀,我很佩 服。 旁聽的同學永遠是最認真的,遠道來的同學又更認真。因為環境的不便,他 們更懂得珍惜。 ●經典好書再次整理 三不五時就會收到一些 email,要我推薦專業上的書籍。我再次把個人研習 領域(C,C++,Win32 OS,Win32 Programming)內的一些好書臚列出來給大家 做參考。 很多人混淆了所謂的入門書與基礎書。入門書必須淺顯易懂,因為它面對 的是全然無知的新手;如何吸引並提昇讀者的興趣,幾乎是入門書最重要 的功課。如果畫一隻狗狗可以吸引你的注意力,趕跑你的瞌睡蟲,我想畫 三隻狗狗也是可以接受的。 基礎書不一樣,它的讀者早已入門,甚至有相當經驗;它的任務是為讀者挖 好更深更實在的基礎。通常這種書的論述層次都很深,一件事直接探到了源 頭;碰觸範圍也很廣,旁徵博引以求全效。 過了入門階段,一本入門書大概對你已是毫無滋味(但不要回過頭來罵它, 畢竟你也曾受過它的幫助。況且一本入門好書是非常不容易寫的)。至於 基礎書,可以伴你長長久久,上面的註解眉批、心得筆記,甚至還可以喚 起你的許多艱苦而欣慰的回憶。 有時在 BBS 上看到網友出售舊書,我都為他們惋息。他們出售了他們自 己一段寶貴的記憶。雖然余秋雨先生也曾在...文章中談到他對舊書的處理 方式:「 」,但一般人是不可能有這種書籍過多的困擾的,我現在就真後 悔沒留下初中高中的課本,上面有我當時的心情、筆跡、我的青春歲月...。 下面全都是可以為你奠基的書。其中 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) 無中譯本。舊版由碁峰中譯 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)碁峰中譯 2. Inside COM(Dale Rogerson/Microsoft Press)松格中譯 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.137.26
njstar:面的突破要靠點的累積 吧 好像寫反了140.115.217.151 03/21
njstar:看錯了抱歉XD140.115.217.151 03/21