程序人生演講內容摘要 ---侯捷
如果你不曾聽過侯捷的名字,不曾知道侯捷做的事情,你不可能有興趣走入會場。因此,各位遠道而來,我竊以為,無非想看看侯捷本人,聽聽他說話。如果你期盼在這種場合聽到某某技術的剖析,某某趨勢的發展,肯定你會失望。我不是趨勢專家,對此也毫無興趣。臺上說話和臺下聊天不同,我不能也不敢講我沒有心得沒有研究的話題。「程序人生」這個話題旨在讓大家對一個你感興趣的人(侯捷我)的學習歷程有些了解,或許從中給你一些靈感或激勵。
我在一個被昵稱為「少林寺」的地方,磨練三年。後半期因為發現了自己濃烈的興趣與不錯的天賦,決定轉向技術寫作與教育這條路。30歲之後的我,行事常思「貢獻度」,我知道自己在技術寫作與教育這條路上能夠走得比程式開發更好,所以決定把自己擺在最適當的位置。一口食物,放在嘴里是佳肴,吐出來就成了穢物。天生我材必有用,每個人都應該仔細思考,自己真正的興趣和才能在哪里。很多人都問,30歲之後做不動程序員了怎麼辦。30年正是英年,體力和智力和成熟度都正達到巔峰,怎麼會做不動程序?想往管理階層走當然很好,那就努力充實自己,并且捫心自問,你做管理快樂嗎?要知道,人事絕對比機器讓你更焦頭爛額。如果你決定爭取一個粥少僧多的職位,就不要再問「怎麼辦」。還能怎麼辦呢?就努力以赴呀!比賽還沒開始就問「輸了怎麼辦」,這不像話,你注定要輸。
技術養成階段,對我影響最大的一件事是,我自動請纓做一套公用程式庫,目標給全部門乃至全所使用。這使我學習到技術的整理、文件(documents)的撰寫、人際的溝通。重要的不在具體實作,而在多方培養了正確觀念。如果你問我,對於程式,我最重視什麼?我最重視可讀性(含說明文件)、維護性、復用性,完整性。這些其實是一體多面。
轉向技術寫作後,我的生活和待在業界沒有什麼改變,只不過業界的產出是軟體,我的產出是書籍和文章。寫一本書和規劃一個專案(project)沒什麼兩樣。但是,專心於技術寫作之後,從此我有絕對的自由鉆研我最感興趣的「技術本質」與「技術核心」。
我周遭的朋友,但凡表現不凡者,都有非凡的資料整理功夫。如今網絡發達,資訊爆炸,硬碟又便宜,資料整理功夫更顯重要。沒有經過自己整理的資料,形同垃圾。許多人喜歡上網「收集」一大堆電子書、電子文檔。你得想個辦法把這些龐大的資料化為你的圖書館,而不是擱在硬碟角落里做為安慰或炫耀。書籍也一樣,買來要看,安慰自己或炫耀他人都沒有任何意義。當然,一旦你到達某種層次,以及某種經濟能力,你買書不見得馬上看,不見得整本看。我有個私人小圖書館,其中的書有許多還沒看,當初購買是準備隨時叁考用的,也有些是當做學習的目標,擺著準備有空時看。
今年是我寫作的第10個年頭。我認為自己確實走上了一條最適合我的路,尤其今天這麼熱烈的場面,實在令我情緒激昂。我不會忸怩作態地不愿承認我的作品給別人帶來幫助,然而我要說,作者和讀者是相互激勵相互影響的,我們彼此進入了一個善性循環。沒有優秀的讀者,就沒有優秀的作者。藝術家可能不是這樣,但電腦技術寫作,或更縮小范圍地說,我,是這樣。因此,我要衷心感謝那些給我鼓舞、給我勘誤、給我贊美、給我批評的熱情讀者。
下面回答幾個常被提出來的問題。
1. 如何學習
大哉問。學習需要明師。但明師可遇不可求,所以退而求其次你需要好書,并盡早建立自修的基礎。迷時師渡,悟了自渡,尋好書看好書,就是你的自渡法門。切記,徒學不足以自行,計算機是實作性很強的一門科技,你一定要動手做,最忌諱眼高手低。學而不思則罔,思而不學則殆,一定要思考、沉淀、整理。整理的功夫我要特別強調。許多人一味勇往直前,追求最新技術發展,卻忽略了整理沉淀的功夫。如果知識不能深刻內化為你的思想,那麼這份知識很快會離你而去。
2. 科班與非科班, 名校與非名校
各位身為名校學生,身為科班生,從來不必在乎這個問題,那是飽人不知餓人饑。這個題目上我是 50-50,我出身名校,但非科班。雖然我從來沒有被這個問題所惑,但的確有許多年輕學子為此輾轉反側,苦惱不已。學歷和背景只是一個證明,證明你曾經經歷過某種考驗,證明你曾經經歷過某種訓練。但并不保證考驗後或訓練後的質量。你所處的環境如果極重視出身,這是你無能為力的 ─ 毛主席要廢除封建,千百年來的人心卻難以廢除。但是不要氣餒,你總有機會證明你的能力。上天不會不給任何人至少一個機會,關鍵在於機會來時你準備好了沒有。
3. 升學(考研)與就業
先升學好還是先就業好?未曾對發問者的個人背景做一番深刻了解與分析,就遽然給答案,是不負責任的騙子。我只能說,以我的經驗和我的觀察,如果你能夠先就業再繼續深造,就業所得的各種經驗會對你的治學方式帶來很大的幫助。就連你的人生歷練,都會對你和你的指導教授的相處帶來幫助 ─ 這可是件大事,影響你3~6年的生活。(注:臺灣碩士生兩年,博士生四年,大陸碩士生三年,博士生三年)。
4. 培養自信心
嘴巴無法培養自信心,手才能夠。只要切切實實地動手做點東西,你的自信心就會逐漸建立起來。隨著自信心的建立,你就再也不會問「C++ 還有前途嗎」「Java 還有前途嗎」「VB 還有前途嗎」這種問題。