leetron
leetron

Leetron,中學時文科成績總比理科好,但大學和研究所時選擇了理科,也從事了理科相關的職業。理科有其美的一面,現在退休了,又想回來用餘生追求文科的美,特別是想用文字來表達科技領域中人文的一面。

對我影響深遠的兩本書

此生翻過、看過的書何止千千萬萬,但是真正精讀過的書卻屈指可數。本文想回顧一下對我此生影響深遠的兩本書。讀書在求精不求多。精讀一兩本好書再加上實踐書中所學,對人之一生會有重大的助益。

此生翻過、看過的書何止千千萬萬,但是真正精讀過的書卻屈指可數。本文想回顧一下對我此生影響深遠的兩本書。一是在我少年時讀的,一是在我壯年時讀的。兩本書都和「語言」相關,對我此生的學業、事業發揮過重大的助益。

第一本書是「新英文法」,作者是「柯旗化」[1]。這是我在十三、四歲上初中二年級開始學英文法所用的教科書。哪個時代(1960年代中期)的學生都是上初中後才開始學英文。我在小學升上初中的暑假,母親就開始在家教我英文。我那時滿心的不情願,因為才剛剛脫離了小學五、六年級的學業煎熬,考上第一志願的初中(是的,那個時代小學上初中還是要經過升學考試) ,滿心認為應該可以好好的玩一個暑假,不應該再念書。但在母親的強力要求下,也只好一面心裏暗罵,一面打起精神來背那幾個英文單字。

初中一年級的英文課的確沒有給我太大的困擾,但是好像我對英文也沒有特別有興趣。到了初中二年級臺灣開始有電視公司播送電視節目,很多節目都是原汁原味的美劇。不知道是不是常看這些美劇的原因,又加上在學校學了幾句英文,所以劇中的對話可以聽得懂幾個字或幾句話後我就對英文產生了莫大的興趣。學校裡開始用「新英文法」這本書開始教英文法後我對書上的內容一讀再讀,直到爛熟於胸。閒暇時常想像各種情境,用英文自我對話。在初中二、三年級,英語這個科目就成了我的強項。

英文法在各種英文考試中佔的比重極高,熟記「新英文法」書中的各種文法規則對我後來的初中升高中、高中升大學的升學考試都有著極大的助益。在這兩個考試中我的英文成績都在90分以上。所以雖然我其他的科目成績平平,但靠著英文成績的拉抬所以總分都還不錯,讓我進入了理想的學校。

大學畢業後要去國外留學。那時候申請美國學校要考測英語水平的「托福」考試。那時托福滿分是700分,申請比較好的美國大學托福分數門檻是550分。我的成績是680分。托福要考聽力測驗。我在考試時剛好有架飛機飛過,所以有一段聽力試題沒聽清楚,導致我錯了一題,不然我相信是可以滿分的。托福考高分也不能完全說是「新英文法」的功勞,但當年讀這本書時打下的扎實基礎的確也起到了關鍵作用。

在美讀書、工作以及後來回台後在外商的工作常常需要用英文和全球的老外溝通,包括寫文件和上臺演講。不論是說、讀、寫英文,往往在腦中閃過的其實還是在少年時學過的那些英文文法規則。不得不說小時候「新英文法」這本書給我打下的英語基礎和我受到的品格教育幾乎同等重要。

對我影響重大的另一本書是Kernighan and Richie著的”The C Programming Language” [2]。這是我在1980年代初期剛開始在美國一家公司工作時,自學名為"C"的電腦程式語言時用的書。這本書作者之一Dennis Ritchie是C語言的發明者。當初Ritchie和在貝爾實驗室的同事Ken Thompson為了開發Unix作業系統而發明了C程式語言。

我學C之前已學過幾種程式語言。那時想自學C的動機是因為公司要去買一套在Unix上已開發完成的軟體,然後把這套軟體移植到公司自己的操作系統上面運行。該軟體既然是在Unix上開發的,所以理所當然的就是用C語言寫的,所以我想學習C語言也是為了工作上的需要。另外一個原因就是當時也許Free Software(開放原始碼)的觀念不像今天這麼流行,但是拜Unix開風氣之先,把他們內核的原始碼開放給學界及工業界共享,所以那時在業界分享軟體源代碼的趨勢也逐漸成形,而這些源代碼多半是用C寫的,所以一個程式員想從廣大的軟體界同儕中吸取養分或偷學招數,先學會C是必須的。

我那時剛好上一個案子已經做完,下一個案子還沒開始,所以有一、兩個月的空閒時間。我就用了這段時間來研讀Ritchie的書來學習C。

剛開始讀此書時並不困難,畢竟我已有一些電腦程式語言基礎,所以學習像是變數,資料類型,數列(array) ,迴圈控制,函數等等觀念,固然和我以前學的有語法上的差異,但觀念還是相通。再加上我每看完一段,書後的習題我全部都認真去做,所以即使是新的語法也可以快速掌握。

我碰到困難是在學「指標」(pointer) 時。這個觀念是我以前學過的程式語言中沒有的。「指標」是一種「非直接定址」(indirect addressing)的觀念,也就是一個變數中所儲存的並不是一個數據而是另外一個變數在記憶體中的地址。這種定址觀念在低階的組合語言中常見,但在高階語言中似乎沒有(我後來學的Java、 Python等語言中也沒有) 。那個時候花了很多功夫想把Pointer搞懂。在實作上甚至還有pointer to pointer的用法,也就是「非直接」「非直接」定址,真是令人腦筋要轉好個彎。還好後來多做練習,再多畫圖作為輔助,最後終能掌握pointer要領,甚至在很多情況下覺得不用pointer才不自然。

掌握C語言的基礎後對我日後從事程式員的工作有莫大助益。後來我在1980, 1990, 2000年代在美國及台灣又陸續做了近30年的軟體工程師。雖然科技界的技術進展突飛猛進,但當年在C上打下的基礎,一直讓我能從容面對更種新技術的挑戰。

回顧此生,雖然一路走來頗為坎坷,但幸好有兩隻支柱一直幫助我前行:一是英文能力,一是電腦程式能力。英文的基礎是在讀「新英文法」時打下的,程式基礎是在研讀”The C Programming Language” 時打下的。英文早年幫助我的學業、考試;後來幫助我在國內外求學、工作上和老外溝通上沒有困難。程式語言讓我在高科技業界工作了數十年,靠著這門技藝養家糊口,在數家世界500強的高科技公司擔任過主管多年。我這一生受這兩本書之所惠大矣。

本文的目的並不是在鼓勵讀者去讀上述二本書,畢竟英語學習和程式語言的學習方法日新月異,不能期望一本50年前的英文法教科書還能適合現代的需要。本文的主要目的是指出讀書在求精不求多。精讀一兩本好書再加上實踐書中所學,對人之一生會有重大的助益。

[1]暢銷超過50年、銷量突破200萬冊,卻有17年人生葬送黑牢...《新英文法》之父悲歌

https://www.businesstoday.com.tw/article/category/183036/post/201810090015/暢銷超過50年、銷量突破200萬冊,卻有17年人生葬送黑牢...《新英文法》之父悲歌

[2] C程式設計語言 (書) on Wikipedia

https://zh.wikipedia.org/wiki/C程序设计语言_(书)

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论