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