如果時間停留在1988年到1989年,我依然會覺得,如果世界上能有一台計算機專門為我所用,於我是最幸福的事情。如果時間回到當年,我可能還像那年一樣,天真無畏地和我接觸到的一切計算機知識相依為命。在那個計算機並不普及的時代,即使是在高校裡,我也不能隨心所欲地使用這個工具。因此,我對這個工具始終有種渴望耳鬢廝磨的心態。
於是,如饑似渴地蹭機成了我那時的一種常態。蹭機,對於當年的學生來說,並不陌生。當學校開設計算機課程時,總有那些不愛上機的人根本不出現在課堂裡。一旦有人逃課,他們的位置就空出來了。這個時候,就是我的機會,我會冒用逃課者的名字去使用計算機。
不瘋魔不成活,如同《霸王別姬》裡的程蝶衣,那個時候,我為上機狂。為了使用計算機,我內心的感覺就是「哪怕缺少一個時辰都不行」。
我經常去學校的計算機中心上機、蹭機,哪怕沒有具體的功課,沒有任何具體的任務。總之,只要在機房裡待著,任務是可以現想的。每次上機,我都沉浸其中,最瘋狂的一次,我竟然無意中攻破了西安交大的計算機中心。這是我的第一次「黑客」體驗,這次體驗既讓我心驚肉跳,又讓我後怕不已。但是,這又像是我和這個世界接觸的難以躲過的一個必然。
第一次當黑客的感覺並不美好。並非有意搞破壞,我無意中進入了學校計算機系統,進去之後我很好奇,四處「閒逛」。就當我在系統中好奇地「走動」時,我無意中挪動了口令文件。最糟糕的是,我挪動之後根本不記得我將口令文件挪到哪裡去了,就退了出來。現在我當然知道,挪動口令文件這事是不能做的,一旦挪動,整個系統就會立刻鎖死。當我從系統中退出以後,我發現沒有辦法再進入系統——整個計算機中心已經癱瘓了。
在無可奈何的情緒中,我只能去向計算機中心老師坦白,希望他能對我從寬處理。管理計算機中心的老師非常寬容,他並沒有暴跳如雷,只是問我到底把指令代碼藏到哪裡去了。我一臉難堪,尷尬地說「我也不知道」。計算機中心的管理老師實在沒有辦法,只能讓我寫一個書面說明,然後就讓我走了。最後,學校的計算機中心重裝了系統,整個運轉才恢復正常。現在回想這次黑客經歷,老師對我的處理方法真是寬容,絲毫沒有為難我。
雖然我有驚無險地度過這個小事故,但是我對自己專業的瘋狂已經初見端倪。我雖然製造了事故,但更重要的是,我喜歡利用這些計算機知識去學以致用。我想我和同齡人最大的區別是——我更喜歡實踐。
大二的時候,學校要求我們參與老師的課題組的實踐課程,目的是讓我們在實踐中學習如何去解決真正的問題。在這種實踐課程中,老師不會給低年級學生很大的壓力,更多的是讓低年級學生在一旁觀摩。畢竟很多同學此時還沒有真正開始編程,談不上解決實際問題。
即便知道實踐課程對學生並無硬性要求,但我從來都沒有抱著打醬油的心態去參加課題組。我當時已經自學了C語言,編過很多程序。我把進課題組的機會視為可以享用的珍饈美味,我暗下決心要慢慢地享用這個機會,而且,我內心的火種早就已開始悄悄燃燒——我不要只是在旁邊觀摩,我一定要親手做點什麼才行。
我所在的那個課題組中,一些老師正和西安交大的幾名研究生,以及本科高年級的學生做數字程控交換機。那個年代,華為公司剛剛起步,國內能做這種交換機的並不多,我現在回想,他們當時也許是在和大唐電信進行某種合作。進組的時候,人們正在那裡一張一張地畫電路圖,工作氛圍非常濃厚。當然,友好的交流只局限於研究生和高年級本科生這些組裡的「老人」之間,他們通常在組裡做畢業設計,來組裡的時間比較長,相互很熟悉。而我們這些看上去什麼都不懂的大二學生,存在感很弱。初到課題組,我感到被邊緣化了。
但是沒有過多久,這種局面就改變了。
我感覺我們組裡做程序的方法有點不對勁。當時課題組裡使用幾百張電路圖,會用到Pascal語言,老師和同學把幾百張電路板用Pascal程序一張一張畫出來,然後去運行。然而,協調這樣的程序非常困難。因為只要有一個語句寫錯了,一個goto的坐標寫錯了,整個電路圖就錯了,組裡的人就要一點一點地如同排雷般地查找錯誤,看看到底是哪個電路圖出現了故障。可想而知,這樣的工作方式對人的體力和耐力都是一個巨大的挑戰。事無鉅細的海量工作足以讓任何人失去耐心。
我在課題組觀察了兩天,心裡暗想,不能這麼干呀!事情該如何解決這個問題開始在我腦海裡翻滾。我開始思考有沒有簡單的方法解決這個複雜的難題,讓勞動力從這場曠日持久的挑錯大戰之中解放出來。學以致用的希望此刻在內心裡慢慢湧動。
最終我從玩蘋果機的經驗當中找到了靈感。我想起在高中階段,我玩蘋果機時,鼠標還沒有被發明,當時人們用四個光標鍵控制屏幕上的一個小光標,讓小光標在屏幕上走來走去。受到這個想法的啟發,我認為此刻應該做一個畫圖工具,用一個程序把電路板畫出來,再寫出一個顯示程序,將電路板顯示出來。這樣一來,我甚至不需要一個會編程序的人來做事了。我們只需要把相應的數據錄入就可以完成電路板的顯示了。
雖然是受到蘋果電腦的啟發,但是我的解決方法和蘋果電腦的畫圖方法並不一樣。在蘋果電腦上畫一個圖,組成圖像的其實只是像素點陣,沒有結構化的數據。但是,用顯示程序顯示電路板,我不僅畫了一個點陣,還生成了另一個記錄。這個記錄還是有語義的。現在總結,其實我做的是結構化的圖像編輯器。
潛心研究了幾個晚上,我把程序做出來了,從此畫圖變得特別簡單。人們只要告訴我電路板的哪一個角出問題了,我們輸入數據,坐標即刻就顯示出來,我們在關鍵位置建立了對應表格。
這就是我1989年秋天做的事情。我今天對波蘭德公司還有非常深的感情,因為正是那家公司發明的Pascal語言。雖然這件事情已經過去二十多年,回頭去看,我依然認為我那個想法很棒。用一個並不複雜,且一以貫之的方法解決一個麻煩的問題,讓事情化繁為簡,成為我解決很多問題的一種習慣。這正是我特別推崇的一種理念——問題要優雅地解決。
做出這個畫圖工具之後,課題組的老師對我的態度大變。雖然沒有大張旗鼓地表揚我,但是課題組的氣氛已經變得其樂融融了。之前我經常被認為是去課題組蹭電腦的,現在課題組的老師竟然允許我拿著打印紙去打Pascal程序源代碼了。不但如此,我買有關計算機的書的費用,也可以用課題經費報銷了。那個時候計算機書籍價格不菲,至少十元錢一本,絕對不是我能消費得起的。這個待遇對我來說,簡直是久旱逢甘霖。
我就是這樣天真無畏地愛著計算機世界裡的一切。那個世界的一切給我很「對」的感覺,給我提供著源源不斷的靈感,提供給我大千世界裡一個唯一久待不膩的角落。
我當時進課題組做這個程序的改動不是出於任何利益考量,完全是心甘情願,並對整個思考過程甘之如飴。我投入了大量的感情在這個項目當中,也獲得了一些成就感。通過很多事情,我理解了這樣一個道理,做一件事情總要不計回報,一旦投入了全部感情,最後的回報總會出其不意地到來。我最享受的不是做事的最終結果,而是在投入的過程中,那種說不出來的內心的平靜。
正是在那個階段,我的專注力得到了極大的提升,我有意讓自己在每個需要工作的時刻都聚精會神。記得有一段時間,學校讓我們去校辦的無線電廠實習。當時我對自己的要求很嚴格,老師派給我焊電路板的活兒,我力求做到將每個電路板的焊點都焊得飽滿圓潤。我驗證自己勞動成果的標準是——收音機一打開,就能正常工作。
多年之後,我讀到奧普拉的一段話:「(我感覺)充滿了希望、滿足感和說不清的愉悅。我堅信,甚至在每天從不同角度轟炸我們的瘋狂之中,存在著,仍然存在著,這一直都在的安寧。」
而我的計算機世界裡,正充滿了這種安寧。