程式設計這一領域變遷迅速,各種新知不斷地產生,今天是對的概念,明天可能就成為了錯的選擇,為了能獲得最新最即時的資訊,程式人具有閱讀英文技術文件的能力是必要的,就這點而言,沒有任何開發者能否認,畢竟,若要等技術文件翻譯成中文,那麼時間上就晚了許多,更何況有許多技術文件,你可能永遠等不到文件的中文化!
看不懂英文技術文件?
為了獲得新知,許多程式界的前輩總會建議,要培養閱讀英文技術文件的能力,只是該怎麼培養?許多人的建議是「多看、多啃,自然就能越來越熟練了」,這說法基本沒錯,只是,對於一個還無法上手英文技術文件閱讀的人來說,通常有點缺乏方向而幾乎沒什麼幫助,而且坦白說,即使我本身翻譯了幾本書,閱讀過大量的英文資料,面對一些英文技術文件,說實在話,一開始還是會有看不懂的時候!
為什麼?這當中有許多原因。首先,英文畢竟不是我們的母語,因此閱讀英文技術文件時,除了進入技術的情境外,我們還得進入英文思考的情境,或者更進一步地,進入作者寫作的情境中,最後一個最為麻煩,你得知道作者的敘事風格,有些作者的文風真的是不好掌握,或者是描述確實不清不楚,因而妨礙了技術內容的理解與吸收,想想看是否有這樣的經驗,有些中文技術文件,明明作者寫的都是中文,你卻怎麼也看不懂?
當然,基本的英文閱讀能力還是要有,至於要到什麼程度,這很難清楚地界定。多益?全民英檢?我建議採用更簡單的測試方式,選擇一本感興趣的程式語言入門書(學過的程式語言更好),或者是線上入門文件,看看當中第一個「Hello, World」程式撰寫的說明,問自己能否可以瞭解它的英文在說些什麼,如果能看懂,應該就有基本的英文技術文件閱讀能力了。
獲取技術的基礎與情境
為什麼要從程式語言的「Hello, World」開始測試?就我來說,訓練閱讀英文技術文件與訓練閱讀技術文件,是兩碼子事,有時不見得是看不懂英文,而是因為不瞭解技術的背景,或者不具備某種技術的基礎能力,使得每個英文單字都看懂了,但就是不知道整句、整段或整篇文章在說什麼。
想訓練英文閱讀能力,並不一定要從接下來想要學的技術開始,有時從一門已經會的技術開始,找一本同主題的原文書開始閱讀,往往就容易上手的多,因為此時,對技術本身早有概念,可以專心地訓練或琢磨這些概念,在英文中是如何表達。
類似地,有時我在看一篇技術文件時,確實也會遇上看不懂的情況,此時我會試著搜尋看看有無中文相關文件,看看能否看懂中文的說明,如果連中文的都看太懂,那麼顯然地是對該技術的基礎或情境不夠,這時試著尋找更多的中文說明,大量閱讀,往往在對技術有基本能力之後,回頭去看當初看不懂的英文文件,也就豁然開朗了,這類情況,許多人應該也有著不少類似的經驗。
如果文件中有範例,有時我會在看不懂描述的情況下,先直接看看後頭的範例在做些什麼,因為有時前頭的描述,是在說明一個抽象的概念,看這類英文很容易令人神遊,而範例通常會是實現該抽象的具體實例,在看過範例之後,回頭重看描述,往往也就能夠理解前面在解釋抽象時是在說些什麼了。不過,這個方式要小心使用,千萬不要養成看文件時只看範例,而不看英文描述的習慣。
大量英文閱讀的訓練
很不幸地,有些時候同一主題,就是找不到中文的技術文件。舉例來說,不久前在學習OpenSCAD這個3D建模語言,幾乎沒有中文文件,官方網站文件一開始又有點看不下去,這時只好從同一主題的其他英文文件下手了,不同的作者針對同一主題,都會有不同的講述方式,你或許看不懂這個作者寫的東西,但也許另一個作者寫的方式你就能夠接受。
因此,這就可以跟許多人的建議「多看、多啃」相結合,只不過,可以挑選同一主題的多份英文文件或多本書籍來閱讀,比方說,同樣是Java程式語言入門的英文書,就可以多看個幾本,這不是在訓練Java(當然,多看幾本的同時,也會更瞭解Java),而是在訓練英文技術文件閱讀,如果想以更輕鬆一些的方式來訓練,Manning的in Action系列、O'Reilly的Head First系列,基本上都以比較平易的英文,以及輕鬆的筆調進行,會是個不錯的選擇。
想要以「多看、多啃」的方式來訓練英文技術文件閱讀,選擇完整的一本書或者是線上一整個系列的Tutorial,會是比閱讀短篇或單篇文件更為建議的方式,因為除了技術情境與基礎的鋪陳會有先後順序之外,隨著主題難度持續地加高,不免也要用到更複雜的英文句型來描述,若能系統性地閱讀完一本書,或者一個系列的Tutorial,能理解的英文句型複雜度,也會有所提升。
有時難免還是會遇到無法理解的英文句型(像是作者突然地,一個句子拉得又臭又長),若有中文翻譯書或文件的話,中英對照也是一種方式,就我個人的建議來說,先看中文再看英文,或者是先看英文再看中文都無所謂,兩種方式對技術情境及英文句子的理解,都是相互助益的。
因為寫程式得使用API,大量閱讀的一個不錯來源,就是線上API文件。有的中文書或文件,會擷取一些常用的API進行說明,可以試著找出英文API文件的出處,一方面可以養成查詢官方API的習慣,二方面也可以藉由這類時不時的接觸,頻繁地訓練英文技術文件的閱讀能力。
從使用中訓練而成習慣
還有一個小小的訣竅,如果文件是網頁或電子書之類的,把它列印出來吧!在紙張上閱讀,就可以透過對紙張的觸碰以及筆的書寫等來提昇專注力,雖然電子載具現在也可以做到畫線、註記等功能,然而,跟紙本的閱讀感相比來說,還是有一段差距。以我剛開始接觸Haskell的經驗來說,即使我將電子書放到了Kindle中閱讀,閱讀時仍難以吸收理解,後來將之列印出來後,關掉電腦找到地方專心閱讀,效果就好上許多了。
最重要的是記得:「語言本身不是拿來學的,而是拿來用的」,你不需要先有多厲害的文法,或者得先記憶多大量的單字,技術文件的英文基本上都不會用到太艱深的文法或字眼,而就我在閱讀或者翻譯英文技術書籍時,有許多時候會對某個句型必須逐磨許久,也有不少時候是必須查詢單字意義的,因此,你需要的就是開始試著進行閱讀,然後從中累積技術文件的語感,以及相關領域的字彙。
基本上,我本身並沒有受過專門的英文閱讀訓練,這些都是過去數十年來閱讀英文技術文件,所累積而來的經驗技巧,不過,技巧終究是技巧,其實最後還是會回歸到「多看、多啃」這個建議上,閱讀能力的提升,基本上,就不是一件容易的事,無論是中文、英文或任何一門語言都是(程式語言也是如此)。
如果真有心培養英文技術文件閱讀能力,那麼就要從現在開始刻意練習,然後從使用中養成習慣,直到遇到問題時,能自然而然地尋找英文相關資源作為解答,屆時反過來地,方才談到的幾個訓練方式,就只會是偶而你看不太懂作者在講些什麼時,才會使用到的技巧。