程序員如何掌握專業(yè)英語
程序員如何掌握專業(yè)英語
干程序員是一項很辛苦的工作,要成為一個高水平的程序員尤為艱難。這是因為計算機軟件技術更新的速度越來越快,而這些技術大多來源于英語國家,我們在引進這些技術時往往受到語言障礙的制約,嚴重影響到對新技術的理解和消化。
首先編程本身就依賴于英語,雖然現(xiàn)在技術的發(fā)展,可以使得某些開發(fā)工具在變量名和字段名中支持中文,但還未發(fā)現(xiàn)能夠完全使用中文的編程語句。
其次,軟件開發(fā)中的技術文檔和資料大都是來自英文,即使有翻譯好的,不是晦澀難懂,就是譯法混亂,比如:roll back就有“回滾”、“回退”、“返回”、“重算”等多種譯法,又如我們遇到翻譯后的術語“域”,往往不清楚譯者是根據(jù)“field”、 “region”還是“domain”所譯(如果閱讀原文則不存在這些問題)。
還有更重要的一點,這就是等待譯文會嚴重影響我們掌握新技術的時間。通常,一本外版計算機圖書從獲得版權到翻譯出版要一年的時間。就算原作者消化新技術和寫作的時間最短為一年,那么加起來這已經(jīng)超過通常軟件版本的更新周期(軟件版本的更新周期一般是1年至2年),這意味著當你通過閱讀翻譯資料掌握這一版本的軟件時,可能該版本已經(jīng)淘汰至少是面臨淘汰。
當然,這并不是說國內(nèi)沒有好的譯者和譯文,也不是說不能通過閱讀譯文來進行學習。而是說通過別人翻譯的間接閱讀風險較大,如果能掌握計算機英語,利用第一手原文資料進行學習,除了效率之外,被誤導的風險較小。
因此,我們可以得出這樣的結論,干程序員這行實在是離不開英語。實際上,可以毫不夸張地說英語是IT的行業(yè)語言。由于英語的優(yōu)勢,印度、愛爾蘭等國的軟件業(yè)在國際上比我們更有競爭力,這并不是說我們的程序員在編程和開發(fā)能力上不如別人,而是在使用計算機英語水平上差距太大。在南京舉辦的一次高規(guī)格的軟件開發(fā)交流會上,就遇到過印度專家講課,英文翻譯譯不下去的情景,因為太多的IT專用術語和縮略語以及很強的專業(yè)知識使得沒有計算機背景的英語專業(yè)翻譯無能為力,而在場的開發(fā)人員因為語言障礙又無法和印度專家直接溝通,錯過了一次極好的交流學習機會?,F(xiàn)在,已經(jīng)有越來越多的程序員意識到計算機英語的重要性了,這種壓力一方面來自進一步向高級程序員或資深IT開發(fā)人員發(fā)展的需要,一方面來自于后起之秀不斷競爭的威脅。對于前者,沒有較好的計算機英語,能難進一步發(fā)展,晉升到更高的技術職位;對于后者,不少大學已經(jīng)開始使用原版教科書進行專業(yè)授課,畢業(yè)生的計算機英語水平實在是后生可畏,挑戰(zhàn)是不言而喻的。
那么,一個程序員應該怎樣去學習和掌握計算機英語呢?是立即開始背英漢計算機字典還是先考完6級再考“托”考“G”?其實,在下定決心之后最關鍵的是要搞清6個W,即:為什么學(why)、學什么(what)、怎樣學(how)、何時學(when)、何處學(where)、跟誰學(who)。下面我們就談一談這6個W。
首先是為什么要學計算機英語。
幾乎所有的程序員都知道學習計算機英語的重要性,但并不是所有人都具有學習的主動性。這個問題的提出就是要讓我們從自身的需求出發(fā),掌握學習的主動性。一旦你有強烈的學習動機,任何學習上的困難都不會認你屈服,而你的每一點進步都將給你帶來無比自豪的感覺。
學什么,是死背單詞?還是猛摳語法?其實都不是。
計算機英語的學習是一項系統(tǒng)工程,需要找到一個適合自己的學習目標,并從詞匯、語法、閱讀、寫作多方面去融匯貫通。用程序員的術語講,“學什么”的問題本質上是一個“確定系統(tǒng)邊界”的問題。因為學習計算機英語是一個很寬泛的概念,若不根據(jù)個人的具體情況進行定義,恐怕難以有一個可以管理學習目標。無目標的或邊界不清的項目往往是失敗的項目,在學計算機英語的問題上也是一樣。因此,我們先要根據(jù)自己的實際英語水平和工作需要界定計算機英語學習的系統(tǒng)邊界。關于實際英語水平,我們可以簡單地以大學非英語專業(yè)的英語教育作為參考,以通過大學英語四級考試(CET4)作為基線,即如果你通過了CET4,則表明你的英語水平為中高級,詞匯量接近5千,不存在基本的語法問題,有一定的讀寫能力;如果你沒有通過 CET4,則表明你的英語水平為初中級,詞匯量不足4千,可能存在一些語法問題,讀寫能力較弱。關于工作需要,我們可以將計算機英語學習對象劃分成計算機研發(fā)人員、泛IT人員。其中計算機研發(fā)人員是指從事計算機研究和開發(fā)的專業(yè)人員,他們又劃分為軟件研發(fā)和硬件研發(fā),顯然程序員是屬于前者。計算機研發(fā)人員要掌握的計算機英語最專業(yè),要求最高,但軟件硬件各有側重。泛IT人員是指在IT行業(yè)從業(yè)的或與IT行業(yè)有密切聯(lián)系的那些非研發(fā)人員,包括操作使用人員、技術管理人員、支持服務人員等等。不難看出,泛IT人員對計算機英語的要求不是太高,也不太專業(yè),一般能夠使用英文界面的軟件,能夠閱讀原版的操作手冊和說明書即可。針對以上的劃分,我在下表中大致給出了計算機英語的學習目標:
計算機英語的學習目標
初中級、中高級、泛 IT行業(yè)人員掌握計算機英語的基本術語;了解計算機英語中常用的語法和慣用法;能借助字典閱讀英文界面和在線幫助以及簡單的操作手冊,閱讀熟讀在 70-90詞/分鐘。掌握計算機英語的常用術語和縮略語;掌握計算機英語中語法和慣用法的表達方式和功能;能借助字典閱讀英文文檔和技術資料,閱讀熟讀在 100詞/分鐘以上;能使用英文編寫簡單的文檔。
計算機研發(fā)人員掌握計算機英語的常用術語和縮略語;熟悉計算機英語中的語法和慣用法;能閱讀英文界面和在線幫助以及簡單的操作手冊,閱讀熟讀在 80-100詞/分鐘。掌握大量的計算機英語術語和縮略語;熟練掌握計算機英語中語法和慣用法的表達方式和功能;能閱讀英文文檔和技術資料,閱讀熟讀在 100詞/分鐘以上;能借助字典翻譯專業(yè)技術圖書;能使用英文編寫簡單的技術文檔和程序注釋。
知己知彼,百戰(zhàn)不殆。在了解了學習計算機英語的一般要求之后,接下來就需要對自己的具體情況進行具體分析,制定一個學習計劃或簡單地定一個學習方向。作為程序員學習計算機英語的根本目的是為了提高自己在英語環(huán)境中掌握計算機技術的能力,所以學習的內(nèi)容應該是圍繞本專業(yè)的領域展開。對于沒有上過計算機專業(yè)英語課程的程序員來說,學習的重點應該是掌握專業(yè)詞匯和術語,了解計算機英語的一些規(guī)范譯法和習慣用法。對于有一定計算機英語基礎的程序員則應該把重點放在提高閱讀速度和閱讀質量上,并逐漸習慣使用英語注釋程序撰寫文檔。
在明確學習目的和學習方向之后,還必須有一個好的學習方法,“怎樣學”就是一個學習方法問題。這其中還包含了何時學、何處學、跟誰學等一系列問題。在這里我建議把短期的系統(tǒng)學習和長期的日常學習結合起來,這樣做的效果最好,也最科學。所謂短期的系統(tǒng)學習是指集中一段時間系統(tǒng)地學習計算機英語,這對于沒有參加過大學計算機英語課程學習程序員尤為重要。而日常的學習則是指在日常工作用有意識地多接觸和多使用計算機英語,邊用邊學,持續(xù)不斷地積累提高。下面我就從這兩個方面來具體談一談。
要系統(tǒng)地學習計算機英語,最好是參加專門的計算機英語課程培訓班。培訓班的選擇非常重要,好的老師、成功的辦學經(jīng)驗和系統(tǒng)的課程設置都是選擇的重要依據(jù)。然而大多數(shù)程序員工作繁忙,可能采取的方式多是自學了。如果不能選擇一位好老師,那就只能選擇一本好教材了。一本好的計算機英語教材對系統(tǒng)地學習計算機英語幫助極大。目前市面上的計算機英語教材多達30種,在選擇教材時不少程序員往往無從下手,大家不妨從以下幾方面進行考慮:
教材的難易程度--對于不同學歷層次有不同的教材,選擇教材是一定要看清該教材的培訓對象是中專、大專、本科還是研究生。選擇難易程度適合自己的教材,太簡單則不利于提高、太難則容易使學習受挫。
教材的專業(yè)側重--有的計算機英語教材偏重于硬件,有的偏重于軟件,還有的教材是信息電子類的計算機英語,側重于通信電子方面,比如:匯編語言、單片機等。另外有的教材側重于理論,如:數(shù)據(jù)結構、離散數(shù)學;而有的則側重于應用,如:軟件工程、數(shù)據(jù)庫開發(fā)。所以程序員在選擇計算機英語教材時,應仔細察看書中的內(nèi)容,以免偏離軟件開發(fā)的實際工作需要。
教材的體系結構--目前計算機英語教材主要分為按語法體系組織和按計算機體系組織的兩種結構。如果你是初中級的英語水平建議使用前者,如果你是中高級的英語水平建議使用后者。
教材的易用性--教材的易用性是指教材的編排是否符合人們的學習習慣。雖然計算機英語是專業(yè)課程教材,但如果編排活潑、圖文并茂、注解查閱方便肯定能調(diào)動學習的興趣,降低閱讀的難度。這方面國內(nèi)的教材應該多向國外的教材學習。
然而國內(nèi)許多大學的計算機英語課程作為專業(yè)英語教學起步較晚,而早期出版的計算機英語教材大多出自于任課老師收集的計算機英文資料,教材規(guī)劃不夠系統(tǒng),編排也比較簡單。這些教材雖然使用的學校較多,為早期的計算機英語教學做出過不可磨滅的貢獻,但致命的弱點是內(nèi)容陳舊、與時代脫節(jié)。最典型的代表是清華大學出版社的《計算機英語》,該書最新版本是1997年更新的,里面還充斥著Dos這樣的陳舊內(nèi)容。
系統(tǒng)學習計算機英語,這里的系統(tǒng)性包括了計算機體系的系統(tǒng)性和英語語言的系統(tǒng)性,我們在學習時必須時刻牢記。除了借助計算機英語教材系統(tǒng)地了解計算機硬件軟件、操作系統(tǒng)、軟件工程、編程語言、網(wǎng)絡通信、信息安全、應用系統(tǒng)等諸方面的英語表達和專業(yè)詞匯外,還要對英語語言本身從聽、說、讀、寫四個方面下功夫,以免出現(xiàn)偏廢。有些程序員就是因為在聽和說方面偏廢,以至于影響到出國發(fā)展。如何加強聽和說的訓練,這是關于英語學習的話題,我自己的一個經(jīng)驗是多看原版電影(VCD/DVD)以提高聽力(當然不能看字幕),多參加英語聊天(英語角)以提高口語。
計算機英語的學習不同于考“托”考“G”,無法靠短期的突擊來完成。長期的日常學習尤為重要。所謂的日常學習并不需要你拋開工作,安排專門的時間,而是邊用邊學。比如,你為了解決編程上的一個問題,查閱英文的幫助或技術資料。然而,不少程序員不太喜歡看英文,他們喜歡使用中文版的軟件,喜歡漢化的幫助,喜歡讀翻譯好的書。這實際上就錯過了許多日常學習計算機英語的機會。不可否認,讀中文肯定比讀英文方便,節(jié)省時間,但從長期的發(fā)展來看,弊大于利。這種對翻譯的依賴使許多程序員失去了獲取一手資料的寶貴機會。
其實,既然你已經(jīng)通過對計算機英語的系統(tǒng)學習掌握了一定數(shù)量的專業(yè)詞匯,就完全可以借助字典去使用那些原文資料和在線幫助,加上有滬江小d這樣的工具,閱讀原文并不很困難,關鍵是一個習慣問題。我有一個朋友,在自己的電腦里從不裝任何中文版或漢化軟件,連上網(wǎng)聊天也堅持用英文。幾年下來英語突飛猛進,效果甚佳,有志者不妨一試。
在日常工作中大量閱讀英文書籍和資料是提高計算機英語水平的最佳途徑。目前市場上大量的計算機原版影印圖書為我們提供了絕好的機會。閱讀英文計算機圖書一開始是“啃”的感覺,比較費時費力,對于不太好讀的地方,不妨拿起筆來逐行逐字翻譯出來,這樣對提高英語水平很有幫助。對于有經(jīng)驗的程序員可以利用自己的專業(yè)背景知識和上下文(Context)進行大膽推測,這樣有利于提高閱讀速度。即使是不求甚解,也不要緊,你可以通過多讀同類書來彌補。原版計算機書讀多了,你會發(fā)現(xiàn)一些很有規(guī)律的東西和一些常用的詞匯,這些來自實踐的經(jīng)驗非常寶貴,并讓你終生受益。一般在完整閱讀2-3本原版書以后,你就能發(fā)現(xiàn)讀原版書的樂趣。值得一提的是讀原版書的真正樂趣并非只是在于提高英語水平,而更是在于獲得一種和西方人一致的思維方式,這種思維方式對學習計算機技術極為有益,因為計算機技術甚至現(xiàn)代科學體系都是建立在這種思維方式的基礎之上的。堅持閱讀英文計算機圖書可以達到“品”的感覺,這種感覺是指在閱讀時無需將英文轉換為中文,而是直接用英文和作者在同一個水平線上進行思考和交流。至此,我們獲得的不僅是英語水平的突破,更是計算機水平的突破。這也是許多計算機高手成功的秘密。
如果你有一定的英語基礎,并希望突破計算機英語的障礙并成為高手,從現(xiàn)在起就養(yǎng)成一個學用計算機英語的良好習慣吧。
1.給自己起一個英文名字。并用作網(wǎng)名和登錄名。
2.選一本適合自己的計算機英語教材。
3.保證一年至少讀1-2本原版影印的計算機書,并堅持讀完。
4.上網(wǎng)盡量多訪問英文的技術論壇和網(wǎng)站,不使用漢化的幫助。
5.在程序中使用英文注釋,堅決不用中文或漢語拼音作變量名、字段名、文件和文件夾名。
6.每月至少看1-2部原版電影(VCD/DVD),盡量不看字幕,提高語感和聽力。
7.不看中英文對照讀物,但可以看注釋讀物;多使用英英字典,少使用英漢字典。
8.每天堅持記錄和復習遇到的生詞,對于縮略語,一定搞清每個字母的英文含義。
如果你還有什么更好的方法不妨也提出來和我們交流,以便使更多的程序員受益。