一般來說,程式設計師
讀文件唯讀**,是很多程式設計師的習慣,也是導致程式設計師雖然讀了很多英文資料,英文水平卻沒有相應提高的原因之一。以前曾在《程式設計師》上看到介紹閱讀技術圖書方法的文章,提出過「先**後文字」的方法,也就是「先看**,看不明白再看文字」。這種閱讀法能極大提高閱讀效率,但如果技術圖書只看**就足夠,還要文字幹什麼呢?很多時候,**只是冰山一角,**背後的思維和邏輯才是真正的重頭戲,只有寫成文字才能解釋,也只有閱讀文字才能理解。
舉個例子吧,兩段**都是 x = 5; 看起來沒差別,但一段的文字說明是「x should be not more than five」,另一段的文字說明是「x should be no more than five」。不查詞典,你能弄清楚兩種說法的區別嗎——前者是「x必須小於等於5」,後者是「x應當只有5」,光看**估計很難意識到這些。
近年來,有越來越多的技術人員投身譯介活動,這本來是一件好事,但如果平時只看**,英文閱讀能力不過關,反而會造成更多的困擾。經常有希望翻譯技術文件的程式設計師來找我討論翻譯問題,希望了解一些句子應該如何表達。一開始我也認為這是中文表達的問題,但後來逐漸發現,其實更多的問題出在英文閱讀上,所以我的回答經常是:你覺得作者這裡說的是什麼意思?引導對方把原文的意思逐步表達出來,其實這時候,真正的譯文已經浮出水面了。
最近的例子來自這句話:
這句話之所以難翻譯,問題似乎在於,除去句子的主幹,之前有乙個 but as…, 之後又有乙個 ******…。然而我最後發現,對這個句子有疑問的程式設計師其實根本沒搞懂 trade…for…的用法(翻譯為「基於 atom 的解決方案需要權衡延遲性和擴充套件性」),如果明白它是「犧牲 xx 換取 xx」之後,整個句子就相當好理解,也非常容易翻譯了:與所有基於 web 的系統一樣,基於 atom 的解決方案為追求可擴充套件性,增大了延遲,所以 atom 往往並不合適用對延遲要求極低的提示。
要避免出現這個問題,首先要做的是改變「只看**不看文字」的習慣,或者至少要做到「閱讀文字之後,能明白它的意思與**是一致的」;另乙個有效的辦法是通過閱讀純文字的英文資料來學習某些新的知識(比如關於原理的細緻講解),這個方法我推薦給許多朋友,非常有效。
以前總聽人說,中國人學了很多年英語,其實是啞巴英語。不知道現在的情況有多少改觀,但就我所見,不少程式設計師雖然閱讀了大量英文資料,也會加入英文的討論組,也敢開口說,但是還會在讀音上出現許多問題。這裡說的「讀音」其實不是字正腔圓的口音,而是一些術語的讀音。
電腦科學的術語**非常廣泛。比如設計模式
裡,有一種模式叫 facade,許多人往往直接讀作』fəkɑ:d,其實這個詞來自法文,正確的讀音其實是fə』sɑ:d;再比如「偽」**的 pseudo,正確的讀音是』su:dəʊ,但是我很少遇到能把它讀對的程式設計師,許多人乾脆不會發這個音。
也許有人說,這些問題不重要,大家「將錯就錯」,約定俗成就好了,但事情沒有這麼簡單。以前我參加技術聚會,有位嘉賓(技術高手)把框架名 chameleon(變色龍)讀成了』tʃəmiljən,而正確的讀音是kə』miljən,因為沒有文字資料,許多人聽了半天才知道他說的是什麼,一些不熟悉 chameleon 的聽眾更是到結束也沒明白。中國人聚會尚且如此,如果有機會參加中外技術交流,讀錯造成的問題就更大了。
解決這個問題有乙個非常好的辦法,就是學習美國大學的公開課,耶魯、斯坦福等學校的計算機系都放出了許多高質量的公開課,國內也有非常好的翻譯,學習其中的精品課程,不但能夯實基礎,還能順帶學會許多每天都要遇到,但不會或者讀錯的術語。
如果你背過單詞,大概聽到過「被動單詞」和「主動單詞」的說法,前者是指「看到了能認出來」的單詞,後者指「表達時能主動應用」的單詞。就我的觀察,許多程式設計師掌握的大多數英語,都屬於「被動英語」——看到了能認識,但要表達同樣的意思,未必說得出來。
要解決這個問題,最好的辦法是在閱讀資料時多用心,記住這些說法;另一方面,沒事的時候多瀏覽 stackoverflow 之類的**,不要因為問題與自己無關而忽略,多留心這些問題到底是什麼,注意人家是如何表達的。只有經過這樣的鍛鍊,才能在自己遇到問題時迅速找到可能的解決方案,節省時間。
有人說,以漢語為母語的程式設計師,學習英語已經是迫不得已,不但要會閱讀,還要會讀、會表達,真是難上加難。這種說法有一定道理,但是在目前並沒有更好的解決方案,學會閱讀、認準讀音、鍛鍊表達,確實可以給自己帶來好處。長遠來看,要改變這種情況,需要中文技術圈的所有人員努力貢獻高質量的資料(原創和翻譯都可以),如果只是「無責任轉貼」,既不親自驗證,也不整理格式,中文技術資料的整體質量只會持續惡化,反向逼迫更多的人把英語學好。
程式設計師要怎樣學英語
第一,既要看 也要讀文件。讀文件唯讀 是很多程式設計師的習慣,也是導致程式設計師雖然讀了很多英文資料,英文水平卻沒有相應提高的原因之一。以前曾在 程式設計師 上看到介紹閱讀技術圖書方法的文章,提出過 先 後文字 的方法,也就是 先看 看不明白再看文字 這種閱讀法能極大提高閱讀效率,但如果技術圖書只看...
程式設計師學英語 英語雜記
這是今天總結的英語學習,寫完了就想發表出來,讓大家幫忙指點指點,同時我也會盡量找到解決方法,成長有煩惱!大家踴躍提意見!這幾天較為全身心的學習英語,發現這個問題,越學越覺著還有很多很多不會!總結一下吧,以免以後懈怠了忘記了這些問題 英語的狀態時好時壞,但總的變化不大!如何更好的保持或者提高英語的學習...
程式設計師學英語(歡迎討論 )
這幾天在csdn上看到很多關於學英語筆記和討論英語水平的投票。覺得如果程式設計是看家本領,那麼英語就是軟技術了。英語水平高不高,程式都還是可以編的,只是看英文幫助文件 國外最新的技術或者自己發表相關英語技術 就會顯得捉襟見肘了。很多公司招人基本都是要求四六級通過,下面插了借來的一張關於英語水平投票的...