自其不變而觀之

(2002/10/21,24 大連,瀋陽 東軟公司座談)

侯捷

2002/11

註:本次座談乃針對大陸朋友,因此使用許多大陸用詞。
文中可能會出現一些臺灣讀者不熟悉的語彙 :)


自其變者而觀之。則天地曾不能以一瞬。
自其不變者而觀之。則物與我皆無盡也。

— 蘇軾  前赤壁賦—

 

很開心有這個機會和大家見面。這一次應東軟公司之邀,在大連和瀋陽各有三天課程。行前張立東老師和我商量,是否給公司同事們一個演講。肖國恩老師知道後說:『大連也來一個吧』。兩個邀請我都欣然應允,但是不能稱為演講,只能說是座談,我帶著座談會的輕鬆心情來和各位見面。我的口才不好,思考也不敏捷(註1),之所以不知藏拙地這麼拋頭露面,因為我真心歡喜和程序員談東道西。

註1:信仰五行之說的人普遍認為,命格中缺什麼就該補什麼。因此,缺金的,名字裡頭帶個鑫,缺水的,名字裡頭帶個淼。缺火的叫火旺,少水的叫水生。我缺乏敏捷的口才,所以稱自己侯捷,希望起到補償作用 :)

今天大家共聚一堂,無非是因為聽說了侯捷這個人,想來看看他的長像,聽聽他的聲音。我並沒有獨到的見解給大家,純粹是聊聊學習上的心得和看法。我將先談談我個人的學習歷程,再談談各位在職場上的發展、技術上的成長,以及我所觀察到的大陸上比較普遍的一些誤區。然後 Q/A 交流。

我自己,大學唸的是土木工程,研究所唸的是(動力)機械工程,現在從事的是軟件技術。我並非科班出身,全心投入計算機領域的時間也很晚,知識幾乎都由自修而來。在場如果也有背景類似的朋友,但願這能帶給你一些激勵作用。

25 歲是生命中重要的轉折。那一年我正式全面接觸計算機,開啟了興趣之窗。我終於知道,學習可以如此快樂,而時光是多麼寶貴。雖然後來因為各種因素,沒有立馬踏向軟件開發這條路,但我已然知道,快樂之源何處。

由於開啟了興趣之窗,25 歲之後的數年中,我不斷地向計算機靠攏。最終,很幸運地在工研院機械所和電通所從事喜愛的工作(註2)。

註2:很多朋友對於侯捷有過什麼項目(專案)經驗很感興趣。我參與過的項目有DOS 時代下的專業型(非全面功能型)CAD 軟件,以及 Windows 時代下的多媒體編製播放(multimedia authoring and playback)軟件。我很喜歡工研院機械所帶給我的經歷 — 看到一台小小 PC 驅動「放電線切割機」切割出實際產品,驅動磁吸機 (?) 和火燄切割機處理超大型鋼板,是一種十分令人興奮的經驗。

29 歲是我生命的另一個重要轉折。那一年開始嘗試寫作。讀者的反饋和我對自己的認識,使我清楚認知,軟件界多一個侯捷,不痛不癢,技術教育這一塊少一個侯捷,可能是個大損失。我幾乎可以確定,我從事技術寫作會比我從事軟件開發更有貢獻。一般而言,寫作對個人現實經濟是不穩定的,難以掌握的。然而一來我很幸運地起始就獲得讀者的良好反饋(也就影響雜誌社和出版社對我的態度),二來我認真思考了人生的價值和貢獻度的論題,三來寫作使我「狂喜」,我感覺如果不走這條路將終身鬱鬱。因此我辭去工研院的工作,走上技術寫作與教育之路,一直到今天。

我最大的幸運就是在不算太晚的年紀發現自己真正的興趣和自己比較突出的才能。

很多人問我還寫不寫程序?我所寫的都是編程(programming)類的書,怎麼可能不寫程序。我只是不做項目罷了。侯捷徹頭徹尾是個程序員,一直都是。

●職場發展    以興趣為要。然後要有正確的認知

並不是每個人都能夠幸福地按自己的興趣來走自己的人生道路。但如果現實環境還允許,要忠於自己的興趣。在私人生活來說,天天開心,在個人發展來說,才有達到卓越的可能。   

以自己為例……

認知:對自我性向特質的認知,對發展方向的認知。你的興趣可能會變,但你的個人本質基本不變 — 你是個可以與孤獨為伍的人?還是離不開燈紅酒綠?你的毅力如何?你的個性堅強否?抗壓性?心理素質?你應該可以確實地為自己打一個分數出來。

認知影響態度,態度決定一切。在座各位的聰明才智都到了一個層次(基本上有讀完大學的本事),此後的奪勝要素已經不是聰明才智,而是聰明才智以外的東西,所謂 EQ 那東西。

●技術成長:注意 本質性(基礎建設, infrastructure)、不變性、復用性。

 

題目簡介 :蘇東坡和他的朋友「泛舟遊於赤壁之下。」他的朋友吹起了洞簫,「其聲嗚嗚然。如怨如慕。如泣如訴。餘音嫋嫋。不絕如縷。」蘇東坡就問他為什麼呢?朋友感嘆「一世之雄。而今安在。…哀吾生之須臾。羨長江之無窮。」蘇東坡是個樂觀的人,就拿水和月做例子,他說「逝者如斯。而未嘗往也。盈虛者如彼。而卒莫消長也。蓋將自其變者而觀之。則天地曾不能以一瞬。自其不變者而觀之。則物與我皆無盡也。

沒有萬變不變的手法,只有萬變不變的宗旨和本質。有了良好本質的支撐,我們就可以從容,不必汲汲皇皇。

各行各業,各個領域,都有本質性的東西。我不能一以貫之地給你一個答案。這是一種態度,一種觀念。

如果你有這種心和態度,但是現實因素下你不得不時時接受性質不同的任務,你也一定可以找出其中本質性的東西,找不出來不是沒有,是你無能。如果真的不是你無能而找不出來,那麼就是它們之間實在沒有本質相通的東西,這時候你已經因為很努力去認識它們的本質,而同時良好地掌握了兩者。

從武術講起。比力氣    比招式    比內力

舉例:張無忌  …

如果你基本功精湛,許多招數上的東西,對你就不構成障礙。招數還是需要學習,但不構成障礙

舉例:我把 MFC 這個 application framework 的體系結構搞懂了之後,很多很多高階技術上的環節我都了然於胸。從中歸納的設計模式(design patterns)也使我在大師書籍的那些抽象描述之外,更有了具體的理解。我最近實現了一個 MFCLite(精簡版,大約五六千行),使我更對整個 application framework 層級的軟件有了深刻的體會。有人說 MFC 都要過去了,你還搞?是不是 MFC 根本不重要,重要的是它曾經是那種層級的軟件的代表,重要的是我曾經徹徹底底地搞懂了它。這使我受用無窮。

技術上的成長。coding, programming, architecturing

若要別人聽你開口說話,首先你要有讓人閉嘴的成績


現代人普遍現象:小學大遺、捨本逐末

年輕的時候,不知道什麼是小,什麼是大,什麼是本,什麼是末,什麼是偏,什麼是全,基本上不是你的錯。但是林肯說過,40 歲以上的人必須為自己的臉孔負責。所以基本上在業界過水兩三年,在自己的領域上就應該明白大與小、本與末、偏與全。如果心中還沒底兒,是你太不用心。

●堅持:

大樹下站久了,樹蔭就是你的。「唯堅持,得成功」

上海湯臣…,自助人助,自助天助

退一步,海闊天空。撐一下,海闊天空。

一試再試做不成,再試一下。

 

●IT 技術圈觀念上的誤區:

(1) 程序員吃的是青春飯。30 歲就幹不動了。

30 歲連「半巔峰」都還沒到呢。

穿白袍的都是醫師。醫師有實習醫師、住院醫師、總醫師、主治醫師、科主任、院長、醫學權威。每一個領域的從業人員都有高低層次之分,都要在技術上努力精進往上爬,為什麼獨獨大家認為程序員幹不到 30 歲?從動手的,到動眼的,到動心的;從小模塊兒的,到大模塊兒的,到整個體系結構(architecture)的,

(2) 編程需要很高的智慧,很好的頭腦。

絕不部分的編程都是「抄」。荷蘭藝評家范曼德:偷畫家的構想絕對沒問題,就像蜜蜂採花蜜把它變成蜂蜜一樣。我自己很喜歡的兩句話是,

能讀千賦則善賦 能觀千劍則曉劍
巧者不過習者之門也


任何高深的理論,只要實際操作過,都可以霍然瞭解。所以看多寫多的人為贏。看得多才能左右逢源,觸類旁通,寫得多才能心到手到,眼手合一。只要下足功夫,並且經過系統化的訓練或自我學習,就能夠成為一個相當不錯的程序員。

當然這就牽扯到什麼是「系統化」的訓練。書籍是最最重要的資源和憑藉。你需要知道哪些書是好書,你需要把它們買回來,你需要用心看它們,內化為你自己的思想。

編程和學歷也沒有關係。姜亦波,高中學歷,EQ 很好。我的朋友破格錄用,也很有魄力。但學歷還是重要的,因為不是每個人有這樣的機緣以及遇到這樣的主管。

(2) 沒學過匯編,不算程序員。胡扯。沒挑過土,不算建築師,你信不?

(3) C++ 程序員,才是真正的程序員。神經病。自古文人相輕,於今尤烈。

我特別挑這些說出來,是希望提醒大家,不要劃地自限,坐井觀天。有些話很可笑,可笑到了可悲的程度。你一定要有開闊的胸襟。有容乃大,是中國人修身養性的目標,對技術也是成立的。

(3) 網絡是學習的好地方。

網絡是搜尋資料的好地方(因為搜尋引擎的協助),卻絕不是系統性學習的好地方。

免費的東西不見得是有用的東西。通常,愈是低廉的貨品,消費者愈沒有資格對質量有所要求;面對完全免費的貨品,則完全沒有要求質量的資格。稍微有點頭腦的人都知道如何取捨。BTW,由於互聯網當初發展的背景,使其服務成為「免費」的代名詞,而業者和使用者也開始嚐到了苦果。

不要淪為「信息收集員」— 只收集,不吸收。

(4) 看書做什麼?網上有各種文件資料。

資料有兩種,一種是學習性的(可學習的),一種是工具性的(查閱用的)。絕大部分書籍的設計著眼在於學習,絕大部分網上文檔的設計著眼在於規格(如有例外,你無法知其 credit,因為它 free)。


以下就我記憶所及,記錄現場 Q/A。

Q: 網上常有人稱您侯 sir,您感覺如何?

這個稱呼其來有自。我在工研院的一位同事當初這麼叫我,(可能)因為他喜歡看港劇,港劇裡頭常有「阿 sir」這樣的稱呼(印象中尤其警匪劇裡頭對長官這麼稱呼)。後來不知怎麼傳開了。任何人對我的任何稱呼,我都無所謂。這種帶有善意的稱呼,我還滿喜歡。

Q: 網上對您有書價過高的評量,您怎麼看?

在作者的立場,我不想說一句話。一句話都不想回答。我不喜歡給人「自我推銷書籍」的印象,我可以在序言中或文章中說某本書多好多好(我會指出道理),但不想在任何場合說某本書多麼值回票價,多麼高貴不貴。我不想(不屑)談價格。

但是站在教育立場,我想說幾句話。以下並不是一個書籍作(譯)者的談話,而是一個老師的談話。我在學校教書,也為業界做培訓工作,年歲也比較大些了,還有立場說些期許的話。

從讀者(書籍購買者)的角度看,我要說,兩本濫書的錢,可買一本好書。當書籍不再總是「非常廉價」之後,你便生出謹慎的選擇態度。

沒有調查就沒有發言權。我這次到大陸,在上海、大連、瀋陽也理解了一般中等家庭出來的大學生一個月的可用額度,以及一雙球鞋、一支手機的價格。我認為一本很棒的書定價80~120 RMB 並不貴。問題出在價值觀。你願意花 200~300 元在一雙名牌球鞋上,你就去做。你願意花 80~120 元在一本好書上,你就去做。的確,球鞋不必常買,書(也許)必須常買,但球鞋影響你的腳,書影響你的腦。總之,你認為什麼值得,just buy it,沒人勉強你。

(肯定有些經濟力極端的家庭 — 極貧或極富。但我們所能考慮的,實際點說,也就只能是常態分佈下的大多數人)

我不知道市上除了書,還有哪一種商品是在「群眾預期 75 折」的情況下銷售的。定價 100 元的書,在網上 75 ~ 80 肯定可以買到。那麼,說 100 元貴的這些人,其實心裡頭期望「比 80 元更低」。說 80 元貴的這些人,其實心裡頭期望「比 60 元更低」。別太貪心了,這些人。

我有一個例子,要勉勵尚堪造就的年輕人:

春秋大賈呂不韋見秦質子楚,知奇貨可居,謂其父曰:
『耕田之利幾倍?』曰:『十倍』
『珠玉之贏幾倍?』曰:『百倍』
『立主定國之贏幾倍?』曰:『無數』

目光深遠一點,敢於投資,則獲利無數。勿被短視所困。

從出版社的角度出發,我樂意看到好書有合理的高價。傳道還需道糧,出版社站在一個(對書籍而言)的樞紐位置,如果好書讓他的利潤高些,他便比較願意做好書,也比較能夠從容做出好書。

從書店的角度出發,我也樂意看到好書有合理的高價。做為面對讀者的第一線,書店其實相當清楚哪本書的斤兩。書不好而高價,庫存命運;書好而低價,利潤不高,做來無趣;書好而高價,利潤較高,promotion 做起來格外帶勁兒,好書也就更容易被推到讀者面前。

從作(譯)者角度出發,我也樂意看到好書有合理的高價。傳道還需道糧嘛,寫一本好書需要多大的心力呀。做為一個讀者,我願我心儀的作家們都衣食無虞,生活優渥,能夠毫無掛慮地潛心為我寫出更多好書。

另外,做為一個有能力引領風騷的作者,我也給自己一個任務。如果我的路走得好,便有機會吸引一批人才進入技術寫譯領域。我走得好,讓這些人看到希望,他們才敢走下去。我對自己的期許是,我的價值已不在於寫或譯出一本、兩本、多少本好書,而在於我能否起到對整個寫譯環境乃至出版事業的影響。大陸自己寫的 IT 技術書籍,定價有超過 50 RMB 的嗎?好像很少。我不相信它們都不值 50 RMB。一本好書,需要好的技術內容、好的表達文字、好的組織、好的版面;這樣的人才真的很少。能同時達到這些條件的人,確實值得一個好價錢。

Q: 我看到 STL 的 container 和 algorithm 都沒有問題,但遇上   iterator 就停滯不前,是否請您解釋一樣 iterator。

A: (現場我做了一些簡短的描述。此處略)

Q: 您最近譯了 Thinking in Java 這本書,請問您在 Java 上面是否有其他計劃?

A: 有的,另有 Effective Java, Practical Java, Refactoring(此書與 Java 無關,只不過是以 Java 為載具來表現)。請參考 侯捷寫作年表

Q: 您過去的兩本剖析源碼的書(MFC 和 STL)都對體系結構做了很深入的剖析,但並沒有讓讀者了解這些複雜體系的形成過程。請問是否有此寫作計劃?

A: 有的,2003 有一本關於 application framework 設計與實作的書,以及一本關於 STL framework 設計的書。請參考 2003 計劃

Q: open source 裡頭有許多優秀的東西,而它是完全免費的。但您剛才提到您不喜歡免費的東西。

A: 我指的是消費性的東西。Open Source 領域裡頭的那些人令人尊敬崇仰。大型的 Open Source 計劃當然質量是很好的,因為他們已經建立了自己的信譽。我想我造成了您的誤會,我的重點其實不在於是不是   free,而在於有沒有 credit — 得之我幸,不得我命。相較之下我寧願花點錢,買信譽保證,買售後服務。

有時候我感覺大家敏感了些。我自己也免費開放很多東西,如果我聽到某人說他不欣賞免費產品(因為品質堪虞),我絕不會生氣,因為我知道,他不是在說我的免費產品。

Q: 網上論壇可以看到對 OO 的批評,您怎麼看?

A: 很正常。OO 發展好多年了,金無足赤,技術又豈能完美。這種發展趨勢很正常。

Q: C++ Primer 繁體版是您譯的,大陸潘愛民先生譯了簡體版。請問您對這本書和潘愛民先生的看法。

A: 《C++ Primer 簡體版》我手上有。由於我有自己的譯本,所以簡體版基本上對我沒有閱讀價值,我拿它來參考大陸某些 programming 術語。我和愛民是舊識,知道他的人和他的做事態度,我信任他的質量。

Q: 如果出版界引進書籍翻譯權時,能夠形成兩家(或多家)競爭(都有翻譯權),就比較不至於造成「書籍被譯爛了,讀者沒得挑」的遺憾。是否可行?

A: 就我所了解的商業運作模式,不可行。目前的模式都是由外文書商授權某一出版社獨家翻譯。這種模式由來已久,不論授權的供應者或購買者,我都看不出他們有改變現狀的想法和意願。

讀者基於對出版界的不了解,常會提出一些過於理想(可能只是個人理想)的構思。例如「同時出精緻本(精裝、優等紙質、優質印刷;無以名之,名為精緻本)和粗糙本(平裝、次等紙質、次等印刷;無以名之,名為粗糙本),精緻本賣給有錢人,粗糙本賣給學生。或如「書價高沒關係,但對學生打三折」。這都是不可行的,其中也涵蓋某種不公平成份。

Q: C++, Java, C# 是 OOPL(Object Oriented Programming Language) 三大主流,我認為它們終將剩下一個。請問您看好哪一個?

A: 我的看法恰恰和您相反,我認為它們都會存在,而且都會存在很長一段時間。COBOL 安在哉?在!常有讀者來信問我哪一個語言比較好,哪一個工具比較好。對就業市場而言,我覺得都好。你在任何語言、工具、平台環境上磨練到達頂尖,你一定是炙手可熱的。別在意「工作機會」的問題,別去想「走這條路,有 10,000 個工作機會,走那條路,只有 1,000 個工作機會」這種事,那是剛畢業沒什麼積累的小夥子在意的事。你已經在職場上,眼界層次都應該高一些。如果你絕技在身,只有「事求人」,沒有「人求事」。

Q: 您到過許多地方,對兩岸三地都有理解,請為我們分析一下各自的情況。

A: 關於大陸,您比我熟悉,關於香港,我只是遊玩過。所以完全談不上對「兩岸三地」有什麼理解。通常對外演講座談,我只針對「程序員個人發展」發表一些看法。我離開企業已久,企業不是我能談的。這樣的問題由企業負責人來回答,才比較到位。

Q: 目前 IT 業不景氣?您認為從業人員如何應對?

A: 做好你的份內事,並加強學習,提昇自己的競爭力。

Q: 您對毛澤東和蔣介石怎麼看。您希望統一嗎?(註:這是會後私下提出的一個問題)

A: 毛澤東和蔣介石都不是 IT 界人物,我們就不談他們了吧。我的政治傾向,不會讓美靜以外的任何人知道。我知道你希望聽到什麼答案,我只想說一句話,你必須尊重所有人 — 包括和你意見不同的人 :)

Q: 我很早就接觸計算機,表現也優異。但後來走了一個大彎路,回想過去一段荒廢時光,非常後悔。現在我已經覺悟,很認真很努力,也獲得公司的肯定,但我有很深的惶恐。我在公司項目(專案)上接觸的東西很多,但感覺無一精通,也無充裕的時間來鑽研技術。(註:這是會後私下提出的一個問題)

A: 逝者如斯,人生不能重頭來過。凡走過的必留下足跡;走過荒誕歲月,也是一種成長。我想你應該開一瓶香檳,慶幸自己及早醒悟。至於缺乏充裕的時間,每一個程序員都如此。誰能夠更擠出一些時間進修成長,誰就更有機會出頭。

 

 

 

 

 

 

 

 

 

學習過程中,不同階段需要不同教材。若說某某領域只需一兩本書就夠,那便是還處於學習的幼稚階段中。若純粹從個人需求去抨擊不同定位的書,那便是處在本位主義的狹隘框框裡。真要鑽研某個技術領域,首先需要一兩本全貌性書籍,然後便是各類專著。

※ 讀書,需要實踐,這是根本不必說的道理。多讀書,絕對好過少讀書;少讀書,絕對好過沒讀書。至於讀死書,死讀書,不在討論之列。

想站在巨人的肩膀上看得更遠,首先要能夠站到巨人的肩膀上。

程式不一定都得自己寫出來。精讀名家源碼,知道「實際上怎麼寫」,也等於自己寫了這些東西 — 前提是「精讀而徹底理解」。

「謀定而後動」顯然比「在錯誤輪迴中不斷修正」更從容。寫程式,適當的速度是要的,但無需比快。物理向來是我的拿手,高中物理、大學聯考、研究所動力學考試,我都是超高標準。到現在我都很奇怪怎麼能在(高中物理月考)60分鐘內算出 50個不太容易的題目。愛因斯坦恐怕也通不過臺灣的聯考(和大陸的高考),但我連愛因斯坦的一根汗毛也比不上。

有一種說法頗為流行:「優秀的程序員寫程式很快,…通過速度上的優勢,在與別人相同的時間內重構精練其程式,達到 good 甚至 excellent 的境界」。這種說法大約對 99% 的優秀程序員成立,但不能說「」。比例較低的一種人,通過另一種鍛鍊方式來加強自己的軟體開發或掌握能力。這種程序員博覽群書,把精力花在思考與融會貫通,以及對好作品的透徹理解上。他們不再需要多寫程式(但曾經寫過許多程式),他們寫起程式來可能較慢,但無人敢否定他們的優秀。這種人並不是光說不練一型,也不是眼高手低一型。他們已經練過了,高過了,現在以一種更從容更有價值的方式來陶養自己。只要能成為一個優秀程序員(軟體人員),兩種過程都很好,後者看起來可能更從容,理論基礎更雄厚。

 

 

 

 

 

今天很高興也很榮幸在這兒和各位程序員朋友共聚一堂。最近三年來,我每年到大陸一趟,一趟比一趟久。今年這一趟共安排了 21 天;上星期剛結束上海華邦一個 9 小時課程,接下來的 7 天應東軟之邀分別在大連和瀋陽開兩個不同主題的課程。行前張立東老師問我可否給瀋陽東軟的年輕朋友們一個演講,我一口答應。後來肖國恩老師希望我在大連也辦一個,我也一口答應。於是有了今天的聚會。我之所以滿心愉快一口答應,因為我出自真心喜歡和程序員聊聊,因為我一直關心我們這個領域的學習。所以今天要和大家談談 IT 技術學習上的方向、態度、成長等問題。同樣的題目,12月我將為臺灣中原大學資訊系同學也進行一場演講,當然,聽眾不同,側重點也就不同。

這個活動其實不能也不敢定位為「演講」,說「座談」比較妥當,我預備保留相當的 Q/A 時間和大家雙向交流。我將以個人發展的角度(而非企業發展的角度),和大家談談個人技術的成長。當然,企業發展離不開個人發展,每一個個人都各安其所,企業也就興旺了。我成長的社會環境,加上我個人的成長經驗,使我比較喜歡談「個人發展」;那種把自己「奉獻」給公司、企業、民族、國家的口號,我並不欣賞。我害怕「奉獻」「使命」這種大詞兒。我的哲學是,個體發展好了,團體自然好。這兒的「好」,對個人或對企業都是指很恢宏、很陽光、很長遠的「好」。

首先我做簡單的自我介紹。我今年 41 歲。...     目前的工作主要在教育 — 信息技術相關教育。我把我在某些(我感興趣的)技術上的鑽研成果,整理為文章和書籍,以此為教育媒介,同時每年在大學授一門課,也為業界公司做內部培訓。10 年前我選擇了我的人生道路,不再做項目(專案),教育於是成為 10 年來我的全部工作內容,而為了完善這項工作並跟上業界水平,我必須與時俱進,不斷充實自己。我所充實的,不一定是(通常不是)最新知識,不小成份屬於根基知識。例如 2003 年我的計劃是把虛擬機器(VM)的機制徹底搞懂,另一個計劃是徹底搞懂一套嵌入系統。我所謂徹底搞懂,差不多也就是真正寫一套出來 — 但實際上我沒有這樣的時間和功力,因此,為了節省時間以及提昇我的技術層次,我會挑選一套帶源碼的系統來鑽研剖析。我個人對大系統的掌握,小部分是基於以往的項目(專案)經驗,大部分是因為我剖析了一些很棒的中大型系統,包括 framework 層次的 MFC, STL, Loki,以及 Windows OS 內部結構,以及即將進行的 HEC, JVM, CLR 虛擬機器,  uC-DOS 嵌入系統…等等。

說到這裡,各位或許注意到,我所研究剖析的,都是 library, system 層級的東西。都是基礎建設( infrastucture)之類的東西,都是極度著重復用性( reusibility) 的東西。把 OpenOffice(一個開放源碼的 Office 軟件)和 STL(一個開放源碼的 C++ 標準模板程序庫)擺在面前讓我選擇,我對後者的興趣遠遠大於前者。這首先是個人興趣,其次是個人認知。「興趣」這一部分,沒有道理可言,你愛青菜,就是愛了,你愛蘿蔔,就是愛了,沒有道理可說。「認知」這一部分很可以說說。誰都希望掌握知識的本質、技術的不變性,因為有了它們,我們就可以從容,不必汲汲皇皇。就我所選擇的人生發展方向而言,什麼是不易變的、穩定的、相對長久的?當然是屬於 library 層次、屬於 system 層次的東西,而不是某一個 application。

前面一直提到侯捷個人的人生發展方向。然而,除了

沒有人希望

其實不單是我所走的    不變性十分重要,我認為對每一個人,都十分重要。

誰願意每年每年

先前我說面臨 OpenOffice 和 STL 的選擇時,我說首先是個人的興趣,其次是個人的認知。為什麼我把興趣擺在認知之前?是的,個人的興趣永遠要擺在第一,否則你將痛苦一輩子。當然,人不是都那麼幸運地能夠按自己的興趣來過生活,但各位既然一技在身,就有了選擇和開創自己人生的本錢。

在我用的辭彙中,程序員(programmer)泛指所有與 program 有關的人。不論是用手的或用眼的,全算。

-- the end