計算幾何,創造力的復甦
清華還是一樣的上課方式,大部分課也是很多人一起上,一起打瞌睡。老師也是照本宣科
,我居然發現他們其實跟川大的老師沒什麼區別。清華的不同之處就是,一到考試的時候
原來進行的一切娛樂活動都不見了人影。原本每天晚上都有人一起玩輪滑,考試的時候就
只剩下我孤零零的一個人。因為大家都怕考試,開始熬夜複習了。還有就是上課不容易逃
課了,有些老師會突然點名,缺席會嚴重影響最後的成績。
對於博士生,傳說還有一個規定,那就是後10%淘汰。也就是說,不管你成績如何,如果
成績排名在課程的後10%,那麼就要重修。而如果兩門功課重修,就會被開除。面對如此
殘酷的規定,很多同學都惶惶不可終日。我就是在隔壁同學的嘮叨聲中度過了第一期。不
過我還是沒有把考試當回事,所以我也沒有去驗證這個說法的官方真實性。我仍然不去聽
老師劃重點,我仍然不覺得老師出的題目有什麼好,我仍然討厭有人讓我們用手算矩陣。
可能覺得太殘酷,還是覺得要是開除了博士生誰來幹活,這條規定後來改成了如果博士生
上了80分就可以不重修。我也不知道為什麼我覺得考砸的科目也上的了80,故意放我過去
的嗎?
但是我的生命中出現了這樣一門課程。它改變了我對老師的看法,讓我覺得上課原來也可
以如此有趣。這就是計算幾何。上課的人很少,只有十來個人。因為聽說這門課很難,很
多同學都沒有選。但是我就是那種知難而進的人。老師上課的方式跟別的課程很不一樣,
大家坐在一個小教室里,老師有精美的幻燈片,有動畫,不時還插入一段大科學家,大哲
學家的名言。上課時老師會停下來很多次讓學生提問題,下課大家都積極踴躍的討論新奇
的問題。課程的評分方法也很特別,平時成績占到30%的分量,作業分為幾種分值,可以
自己選擇做不做,作業的總分數乘以30%,加上最後大作業的分數乘以70%,就是最後的得
分。說真的,這門課太有趣了,我就只逃過一次課。但是還是有時候人數不到一半,因為
其他課程壓力太大,有人都去複習別的課程了。但是鄧老師從來不點名,還對逃課的同學
表示同情。還問我們在座的有沒有其他課特別緊張的,下次課可以不來。真是讓人感動。
我就是在這門課上認識了王益,我們親密無間的合作,讓我領略到了什麼叫做研究。大作
業的時候我們在一個小組,其實是三人一組,但是那第三個人其實什麼也沒幹。我和王益
決定寫一個3D的Voronoi圖掃描算法演示程序。王益的3D圖形編程能力很強,所以他做界
面,由我負責算法生成數據作為後端。我們分別在自己的機器上編寫程序,不時的打電話
討論接口的設計問題。我找到了Bell labs 的 Steven Fortune 的算法程序,決定看懂它
,然後改造成演示需要的分部運行的算法。但是 Fortune 的程序幾乎沒有注釋,而且使
用了一種奇怪的數據結構,很難理解。Fortune 還在程序里說到,這個算法雖然有效,但
是對於程序員來說是一個挑戰。所以我email請他給我一份算法論文的拷貝,他同意了。
但是一個月之後,信才到我手裡,那時我們已經完成了作業。因為我花了一個星期看懂了
他的程序,還換掉了他的麻煩又低效的數據結構。隨後成功的把後端與王益的前端設計好
接口聯合。等我看到 Fortune 的論文,發現程序裡面其實已經改進了論文的核心內容。
我深深體會到實踐的重要性,也許有了他的論文我反而會被誤導,寫不出實際可以運行的
程序。
由於我們的團結努力,老師對我們的大作業非常滿意,他給了我們最高的分數 100。由於
我們兩個都在課下超額完成作業,所以總的分數我們兩個都是滿分。這是我闊別已久的1
00分。只有在小學我才拿到過這種分數啊!對於一個對考試成績滿不在乎的人,100 又意
味着什麼?如果是別的課程我會毫不在乎,就像我得了80分一樣。可是這個100分是我們
團結研究而來的,它包含了對我們的合作意識,對我們的友誼,對我們的熱情的肯定。雖
然我覺得我們的東西還有改進的餘地,但是我接受這個100分!也只有這樣的課程,我才
可能得100分。
從此我感覺到了什麼叫做研究。這跟我小時候干的那些事情沒有什麼兩樣。你在身邊發現
一個問題,想知道為什麼。然後你就想去獲得解決這個問題的知識。你去看書,你去問專
家,你上網去搜索。如果沒有發現答案,那麼好啦,你就可以自己試圖去發現為什麼,這
是最有趣的部分。知道了為什麼,就想讓這個東西有用處,對人們的生活產生好處。這就
是研究。
《完全用Linux工作》與TeX的推廣
這麼說來我還是對清華有些好感。遇到一個好老師讓我從呆頭呆腦的技術工人的狀態恢復
過來,開始追求自己的夢想。可是第一年把所有的課程上完之後,我就發現原來清華所謂
的“研究”是如此混沌。其實清華大部分人進行的所謂的“研究”是什麼呢?其實就是寫
作,不是科學研究。這一點以後我會詳細敘述。
遠遠看去外觀華麗的有着先進的工作站的實驗室,卻沒有可以安心看書的地方。機器挨着
機器人挨着人,書都沒地方放。師兄師姐們都在忙着用word寫論文,不時有兩個人隔着幾
行機器大聲談話。實驗室通風不好,還有一個大型工作站在嗡嗡作響,我進去一會兒就覺
得頭暈,所以後來就不想去了。PC機以前都是公用的,每次都會用不同的機器,卻沒有我
想用的軟件,麻煩死了。好不容易實驗室買了新機器分配給個人,裝上一個 Linux 系統
開始寫程序,還在Sun工作站上安裝了多達1G的GNU程序。卻被一個師兄嘲笑說那種跟DOS
一樣落後的東西你居然也用。於是我寫了一篇文章叫做《完全用Linux工作》,放在主頁
上駁斥這種觀點,引起網上linux界軒然大波。後來我又發現幾乎全校的論文都是word排
版的,我本科畢業論文就用LaTeX了,清華居然這麼土!我對word排版的論文質量恨之入
骨,所以又寫了文章宣傳 TeX,打擊 word 在論文排版的市場。這下子我出名了,真沒想
到,出名不是因為我的研究成果,而是因為這些業餘的東西。我起初其實不希望我因此出
名,但是看到旁邊的人都用上了 TeX,我覺得我還是做了一件好事,至少讓論文看起來漂
亮了一些。
可是論文的內容,卻是我永遠的痛!
培養計劃
我在第一年就把功課全部上完了。本來我想多選幾門課,比如法語,可是清華的博士要選
課需要提交一個“培養計劃”給導師簽字。導師同意之後才能修改。導師看到我選了法語
,就說這個第二外語還是自己學學就行了吧,旁聽也行啊,我主要是怕你課太多了考試不
通過就麻煩了。我當時沒有說什麼,就把法語去掉了,只留下剛夠學分的課程。其實我還
想選很多的,體育,音樂什麼的,都不好意思跟導師說。後來才知道宿舍對門的碩士生選
了鋼琴課他們導師都不管。為什麼我們就受到如此待遇?
可是沒有把法語加到培養計劃卻成了我的遺憾。有一個新學期我去旁聽了第一節法語課之
後老師就說,我知道很多同學是來旁聽的,這樣教室里人太多了,效果不好。這對自己對
大家都不好,下次請旁聽的同學不要來了。我臉皮薄,下次就沒有去了。後來自己想自學
卻又沒有老師教,看了十集Reflet之後就此作罷。
後來我終於明白了,清華不需要全面發展的博士生,而其實導師還會在某種程度上削弱學
生的能力。導師並不是真的為我們好,而是不喜歡我們上課,因為上課不但會花掉研究(
或者幹活)的時間,而且讓他們眼界太開闊,這樣學生會很容易有別的選擇而走掉。所有
的活動:助教,實習,都必須有導師簽字。而大部分導師就會找藉口不讓學生幹這些事情
。不給他們助教和實習的機會,讓他們以後不好找工作,只能為自己服務,或者為自己的
熟人服務。甚至這次我去西藏,要辦邊境證都要有導師簽字。辦事的老師說,沒有導師簽
字,你跑出去了不回來怎麼辦?大媽,我跑那種鬼地方幹嗎?
除了這些,還有兩大法寶就是博士學位和違約金。清華的博士學位有多值錢知道嗎?不知
道?那麼博士退學要交30000塊錢的違約金,這下大部分窮苦學生怕了吧。這就是你們的
賣身契。清華就是這樣把研究生牢牢地控制在自己的掌握之下。我對一個如此害怕學生跑
掉的不自信的學校還能說些什麼?如果你是好樣的,就不會害怕我們跑掉!該跑掉的最後
終究會跑掉。
我的自我培養
在學習上,我永遠是個吃不飽的人。選不了課,我就去旁聽。旁聽後覺得老師講的不好,
我就自學。在我有空的時候,我就會去圖書館借書看。在我本科的時候,我就已經發現自
己的一個特點,我會很快發現新的東西,並且學會使用它。雖然這些東西並不是創新,但
是它們豐富了我的技能,讓我有更大的能力去進行創新。
計算幾何課的一次作業,我為了寫一個算法的演示程序,花了3天時間學了一點Java語言
,正好能夠完成那個程序。我開始接觸到TeX的底層細節,看完了The TeXbook,並且找出
一道練習題答案的錯誤。開始移植gbkfonts程序,作為我的CWEB語言的練習。看完了幾乎
所有 Xlib 的手冊,深入了解了 XWindow 的工作原理。我接觸到 Scheme,並且做完了
SICP 的大部分習題。我領會到 LISP 的強大,改變了我們多年以來對這種古老語言的誤
解。接着我又學會了 Common LISP,並且開始用它設計用來研究計算幾何的一個函數庫。
另外還找了一些希奇古怪的程序來玩,寫了一些心得體會放在網上給別人看。
我意識到自己數學還不夠強,就開始看一些數學方面的書。Concrete Mathemtatics, Wh
at is Mathematics?, Science and Hypothesis, GEB, ... 雖然每一本都沒有看完,但
是我逐漸相信自己的數學能力,發現數學原來如此簡單。我開始對哲學感興趣……
我們也有討論,原來是這個樣子
上完課,就該開始搞研究啦。可是研究什麼呢?老師給我幾篇論文看,意思是讓我看看有
沒有什麼想法。
我開始感覺沒有頭緒,就跟導師說能不能找師兄師姐跟我討論討論,還有別的人在做這個
嗎?他說,就你一個人做這個,每個人做一個題目,獨立思考,這就是研究。我覺得是啊
,我應該獨立思考。可是過了一段時間發現不行啊,我想實現一個想法,但是我不知道是
不是已經有人試過失敗了。實驗的時間開銷會比較多,所以我想知道那麼多厲害的人,為
什麼都不用這種明擺在那的方法?當我再次提出需要討論的時候,他似乎有點生氣的說:
”你為什麼總是想有人跟你做一樣的東西啊?你不是想抄襲別人的論文吧?” 我不發話
了。繼續做我的實驗,結果確實不理想。雖然自己實踐很重要,可是要是能利用別人的經
驗,何樂而不為呢?這並不是偷懶。如果有人討論,很多時候一個人提出一個問題,另外
的人就會告訴他這個問題是不是有人做過,有什麼重要性,憑直覺告訴他有什麼難度。可
是如果沒有討論,連問問“有沒有人做過”的機會都沒有!
後來我就經常上網看看國外的大學怎麼搞研究,發現他們都有 seminar,討論組。後來又
買了一本 A Beautiful Mind,看到Princeton以前的天才們每天都在一個地方喝茶,討論
問題,爭得面紅耳赤,回家分頭思考,做實驗,第二天喝茶時再討論。那就是我從小夢寐
以求的生活啊!計算幾何課已經讓我愛上了與人合作和討論的方式,現在卻孤零零一個人
了。我必須告訴導師,合作和討論是非常重要的。在我據理陳述之後,他說:“好吧。反
正師兄師姐各自有自己的事,你要討論什麼就跟我和你副導師討論吧。” 於是我就開始
了跟他們兩個星期一次的見面討論。每次討論都感覺他們不知道我在說什麼,他們心裡想
的都只是這個能比別人的好多少呢?能不能投到這個會議呢?如此宏觀。我覺得跟他們討
論完全是浪費時間。
後來課題逐漸有了新的同學加入,導師決定跟中科院數學所的人一起申請一個項目來研究
。於是我們兩個星期一次去中科院討論。不過感覺他們那邊也差不多。中科院的老師覺得
他們的研究太理論,期望我們能給他們帶去一點實際的東西。可是我們也沒有什麼實際的
東西,所有的問題都是從別人的paper里看到的。副導師就開始跟他們說這個問題有多麼
多麼重要…… 他們也藉此機會開始研究以前放下的一些問題。總之討論的感覺就是沒有
目的,沒有主題。有時有人說他在想一個什麼問題,說了一會兒就被否決了。有時候就是
一個人看了一篇paper之後做一個感想。我坐在那裡就在想,我們到底在幹什麼?我們甚
至都不知道什麼東西值得研究,還研究什麼?後來師弟師妹們就開始考慮把問題變一變,
看看能不能產生新的問題。他們的做法照我的話說就是“有問題也要解決;沒有問題,制
造問題也要解決!”
博士生論壇的時候,同學們都覺得有類似的問題,討論不足,交流不足。所以我提議成立
一個類似國外大學的 Common Room,用來討論問題。可是大部分老師說:“這樣一個房間
,天天都要有那麼多人在裡面待着。誰來出這個錢?” 是啊,老師自己的辦公室都要錢
,哪裡可能有什麼 Common Room?就算有了 Common Room,在裡面討論的無非還是文章發
到哪裡的問題。制度決定了行為,我的設想太理想化了。
分析一下,為什麼老師不提倡討論呢?因為問題是有限的。老師辛辛苦苦這麼多年搞來搞
去都在搞這些問題,分配給你們每人一個,互不衝突。要是兩個人都搞一個問題,這下好
了。出了成果論文歸誰?學校要求必須第一作者才算論文數。要是兩個人都寫論文,那麼
投到同一個會議肯定有一個要被reject。這樣對集體發展不利嘛,大家不就是發幾篇論文
混畢業嗎?何苦?