淺談程序員的英語學習【轉】

淺談程序員的英語學習

 

做爲在中國工做的程序員,不懂得英語彷佛也不妨礙找到好工做,升職加薪。但程序員這個工種則稍有不一樣,由於程序,尤爲是高級語言,基本上都是由英語和數字表達式構成的。英語對於程序員十分重要。個人大學本科所有采用英文教學,工做時也常常會遇到外國人,和他們談笑風生,自認爲本身的英語水平比園子的平均水平高一點。下面我就根據本身的經驗來講說英語的學習方法。html

爲何要學習英語

學好英語你能夠直接閱讀各類經典書籍的原文版。程序員這個行業之因此特殊,就是由於它全部的技術所有來自歐美,因此最主流,最新鮮,最正確的技術文章都是英文,大部分尚未譯本,有些譯文還比較差。與其等待別人的翻譯,不如直接閱讀原文。程序員

學好英語你能夠直接觀看來自世界最著名學校的網上課程或編程高手的教學視頻。較之漢語教學視頻,不知道高到哪裏去了,而這些視頻一般都沒有任何翻譯可尋。面試

學好英語你能夠和世界各地的程序員在Stack overflow,Reddit和Github進行交流,以碼會友。若是你不當心搭上了幾個哥們,你可能就誤打誤撞被他們推薦出國工做了。做爲工做多年的老鳥,你們天然知道內推的好使程度,要是拿到了公司的錄取,那麼什麼簽證都是浮雲。算法

學好英語,你的代碼中變量的命名不會太差,讓人摸不着頭腦(甚至有人變量使用漢語拼音進行命名)。假設別人寫一個方法演示反射的使用,你看到那方法名不是ReflectionDemo,甚至不是ShowReflection,而是FanSheYanShi時,你什麼心情?編程

學好英語也能夠爲你的前途打開一扇門,你能夠考慮到大陸之外工做生活,領略不一樣於神州大地的風土人情,感覺西方文化,甚至中西合璧,創建一個不同凡響的家庭。即便你留在大陸,英語好至少也會讓你勝任一些外事工做,能人所不能,這對外企員工來講十分重要,你的上級會高看你一眼,你談工資時籌碼比別人多。多線程

什麼水平算是英語比較好了,能夠不用刻意繼續學了

若是你以爲你知足如下這些條件,那我以爲你在英語爲母語的國家也能夠活得挺滋潤的,找到一個碼農的工做應該是沒什麼問題。固然,你可能會栽在醫院,街頭籃球場,酒吧這種須要高難度英語對話的地方。不過若是僅僅應付工做,你不須要刻意的提升本身的英語水平了,只須要保持便可。異步

  1. 裸考(故意不許備)託福100+,雅思7+,口語的成績不是其中最低的
  2. 詞彙量達到8000以上
  3. 可以應付30分鐘左右的全英文面試,且你在面試過程當中說話的比例佔至少三分之一,而不是人家說20句你說一句
  4. 閱讀通常的技術文章(例如MSDN文檔)和技術書籍沒有太大障礙,具體來講,生詞頻率在1/100之下(即任選文章中的100個連續單詞,平均只有一個不認識)
  5. 可使用英文email和公司的外國人交流
  6. 能夠和老外聊些簡單家常或你比較熟悉的話題,支撐至少15分鐘

關於單詞與閱讀

學英語不背單詞是不行的,背單詞是第一步,只有認識了單詞,你才能看懂它,聽懂它,最後在口語中運用。若是僅僅爲了應付工做,則不少詞並不須要背,例如,下面這個圖中的全部單詞你都不須要知道(可能第15個須要吧,但你多半應該認識),這絲絕不會影響你閱讀技術書籍的速度。基原本說,你只須要知道MSDN,牛人博客裏面出現的比較高頻的單詞,以及你工做中須要用到的概念對應的英文翻譯。async

對於初學者而言,不須要閱讀其餘亂七八糟的小說散文,也不用把新概念看一遍,最重要的就是把你的主力語言中各類術語的維基百科都看一遍,新概念不會告訴你控制反轉的英文是IOC,pumas are large cat-like animals which are found in America(新概念第三冊的第一句話)只能讓老美以爲你腦子有問題。(這課是講從句的,因此幾乎全部的句子都是從句)背新概念還不如背技術文檔,對於C#,直接看MSDN就好了,例如委託的:https://msdn.microsoft.com/en-us/library/ms173171.aspxpost

這網頁中的單詞大抵都是技術上最經常使用的詞了,例如type,method,event,instance(實例)等等。若是你有任意一個單詞不認識,說明你的詞彙量不過關。不過,各類MSDN文檔中的單詞重複頻率很高,讀多了就會越讀越快的。你能夠把不會的單詞記在本子上,而不是買本託福詞彙開始背。過了不久你就會發現,技術文檔裏面轉來轉去就那幾百個詞,可能都沒有2000個,而一本託福詞彙背完了,你仍是不知道進程和線程怎麼說。若是你對MSDN文檔已經能夠作到基本不查字典,你能夠嘗試改用谷歌搜索了。例如,若是你拿不許鏈表應該在何時使用,性能如何,你能夠搜索stackoverflow linked list performance / linked list performance comparison,而後點開結果連接 - 這樣你的工做中的中文出現頻率就大大減小了。若是你已經大規模的使用谷歌,stack overflow,而且對搜出來的連接都讀得十分順暢的話,你不須要再背單詞了。性能

詞根詞綴法

不少技術單詞有個特色,就是他們都是造出來的詞。咱們知道100年前,世界上根本沒有計算機語言,因此不少概念不存在,後來,技術發展到今天,出現了不少之前沒法想象的概念,例如異步,多線程這種100年前毫無心義的單詞。它們都是生造出來的,之前的英語不包括這些單詞。而英語造詞法一般有兩種:一種是追本溯源,例如算法的英文algorithm來自1000年前的某本阿拉伯數學書籍,另外一種就是疊加,好比多線程的英文multithreading就是多(multi)和線程(thread)兩個字加起來的。異步這個詞解釋起來稍微複雜些,首先咱們要理解同步這個詞synchronous:它是由syn (同時) + chron (時間) + ous (形容詞後綴)合成的,同時的時間,即爲同步。而異步就是不一樣步的意思,故在同步的英文以前加上一個前綴a-,其表明否認,就獲得了異步的英文單詞:asynchronous。

詞根是快速擴展英語單詞的利器,例如剛纔咱們看到的幾個詞根,都是比較常見的,我再舉幾個例子,此次再也不限於技術單詞。Chron(時間)演化出來的詞還有: chronicle(編年史),chronosphere (時間結界,這個詞是dota中虛空假面大招的英文,應該是icefrog在dota中造出來的詞。Sphere表明一個半球,和時間拼起來,就是時空半球。咱們能夠直觀的想象出一個半球罩住一片地方,裏面的時間中止了)。

Covariance和countervariance這兩個貨,不少人一看單詞很長就產生害怕感,但實際上,越長的單詞,造出來的可能性就越大。先告訴你vari是變的意思,你確定知道一個它的衍生詞variable,變量(可以變的東西,瞧,你順便又學會了一個後綴 –able,可以的意思),variance能夠當作是其名詞的形式,在數學上,咱們用這個詞表示方差。那麼若是你知道co是協同(和con同樣),counter是反着的,那麼covariance和countervariance這兩個詞的意思你大概也就猜出來了:協變和逆變。另外說一句,counter加上單詞strike(打擊)就成了不少人都很熟悉的一個單詞,縮寫爲CS(反恐精英)。固然counterstrike這個單詞自己只是反擊的意思,和恐怖分子,精英都沒有半點關係,不過反恐精英這個翻譯確實不錯。

Interoperablity,別看它很長,你應該也能猜出來,若是你認識operate的話,你就能夠看出來它是怎麼來的了吧。它的意思是「互操做性」,咱們知道C#有一些庫例如Microsoft.Office.Interop.Word,Microsoft.Office.Interop.Excel,Interop就是Interoperablity的簡單說法,這些庫也是專門用來和COM打交道的,可謂名如其庫。inter表明相互的,交互的,很天然的咱們都知道它的兩個派生詞:internet,交互的網,即互聯網(相對的,intranet就是內聯網),interview,互相看,即面試(因此面試不只僅是公司挑你,你也在挑公司:)),還有intersteller,若是我告訴你stell是星辰的意思,你猜猜這個詞(交互的星辰的人)啥意思 – 中文翻譯 – 星際迷航。那麼好了,你知道stell是星辰了,又知道con是一堆的意思,那麼constellation是啥?一堆星星 – 星座!

一些其餘的例子:

  • Re-factor: 重構
  • Trans-action: 事務
  • Pre-process-or: 在前面+處理+的人 –〉預處理器

對於有必定英語基礎,好比考過四級的人來講,詞根詞綴能夠迅速擴大詞彙量,一般能夠擴大一倍。掌握了一些基本詞根詞綴以後,你會發現,不少詞你根本沒見過,但你就是能猜出它的意思。你的詞彙量遠遠多於你意識中本身的詞彙量個數。詞根詞綴爲何如此強大?有時候,我會把詞根詞綴造詞法類別漢字中的偏旁部首。咱們的漢字有不少字的偏旁都相同,而有些偏旁本身是有意義的,例如雨字頭自己表明下雨,屬於雨字頭的不少字和天氣也有關,例如霏,霽等。英語自己來自於拉丁文,不少詞根本身就是拉丁文單詞,例如aqua,在拉丁文中表明水,它做部首的單詞aquarium(水族館),aquamarine(水藍色)就能夠類比爲三點水旁的漢字。關於詞根詞綴記憶法,若是有興趣,能夠參照http://www.360doc.com/content/11/1117/15/1930525_165197518.shtml。不過,不要鑽牛角尖,也不用把全部的詞根詞綴都背下來,那樣你的詞彙量太大了,保守估計也有2萬,你不須要那麼多單詞,你也沒那麼多時間。你只須要對技術文章中出現過的單詞的詞根詞綴研究一番就好了,碰上一個詞研究一個,沒碰上過的(好比你是不怎麼可能會在技術文章中遇到aqua這個詞根的)就不用管它。

固然,不是全部英文單詞都是這麼造出來的,好比最簡單的get,set,have之類的動詞。在幾百年前,英語的單詞數量遠遠小於如今,那時候就沒什麼單詞是用詞根詞綴造出來的。根據詞根詞綴猜出來的單詞意思也不見得都對(就如同秀才識字讀半邊,不必定全對同樣),不過,通常來講猜出來的意思都八九不離十,並且不少技術單詞是造出來的,這使得咱們看技術文章時,能夠少背點單詞,多猜想下它是怎麼來的。

掌握一個單詞不只僅要作到看到單詞知道意思,還要將其讀準,不然,老外依然不知道你在說什麼。你可使用谷歌查找單詞,得到單詞的音標,一般後面都有播放鍵。若是你是走美音路線的,要作到一些捲舌。要知道長單詞中重音的位置(有些在前面,有些在中間),儘可能減低中文發音的痕跡(有些速成書中把英文音譯成中文以達到速成效果,例如how are you發音好啊油,必定要杜絕這種方式,離這種書越遠越好)。你也能夠在視頻中捉到一些你讀的不許確的單詞,聽聽人家怎麼讀的。

關於聽力

當認識了足夠多單詞以後,下一個比較天然的目標就是聽懂它們。這比閱讀難一些,但遠遠比在口語中用到它們容易。練習聽力除了和老外對話,就是看視頻了,看視頻也是咱們練英語的一個主要目的。如下的幾個視頻網站是我常常看的,有些須要付費:

Pluralsight:所有都是技術類教學視頻。有些視頻出自大牛,例如Jon Skeet。部分視頻帶有英文字幕。視頻內容翔實豐富,且十分與時俱進,在ASP.NET Core出來僅僅一個星期,就有了關於它的教學視頻。最近網站改版,對於某些話題還添加了學習之路功能,例如如下的視頻是關於C#的學習之路,分爲簡單,中等和高級。

須要付費,但能夠先享受10天的試用。費用是每一年300美圓,這個價格說貴也不貴,但也不便宜,若是手頭十分寬裕,又能保證每週有必定看視頻的時間,能夠考慮購買。並且說實在的,當你購買了以後,你能夠把你感興趣的視頻都錄下來(經過各類方式),這樣一來,這個網站的費用就近似的變成終生300美圓了,聽起來也不錯啊。

Coursea:這個大名鼎鼎的網站包含了世界頂級大學的網上課程。好處是免費,壞處是不會有很具體專門的課程,大部分課程都是比較general的,例如算法課程:https://www.coursera.org/learn/algorithm-design-analysis。

這個網站包括了各類話題的課程,不只僅只是計算機技術。這個連接歸納了Coursea課程的特色:https://www.zhihu.com/question/20722223

你也能夠找一些喜歡的電影來看,但看的時候要拿掉字幕,而後設法本身把全部的單詞都聽出來寫在紙上,再對照字幕看看本身有哪些地方錯了。這個過程極爲辛苦,你最好找你很喜歡的電影來看,起碼知道整個故事的流程。但若是你這麼看了哪怕只有幾部電影,你會發現本身的耳朵彷彿什麼都聽得懂了。

關於口語

通常來講,你只會在面試的時候用上口語。雖然,有些外企你須要和老外打交道,但大陸的外企一般來講仍是中國人佔主導,老外只能忍受不少中國人水深火熱的英文而不能自拔。若是你沒有出國工做學習的打算,那麼你能夠不用練習口語。若是你打算幾年以後出國工做,體驗不一樣的人生,你的口語起碼要好到讓老外面試官在和你談技術的時候,知道你在說什麼。就這一點來講,在大陸練習技術口語是比較困難的:你不能和一個大陸人練習口語,特別是一個水平和你差很少的人,這樣大家的發音必定會無可救藥。但不少在大陸作事的外國人又不是碼農,不懂技術。因此,只能經過曲線救國的方式練習:和外國人聊天,但不聊技術,一方面找自信,糾正發音,一方面熟悉平常英語交流。至於技術英語,某種程度上比平常英語容易一些,只要你已經認識了足夠多的技術單詞(經常使用的也就幾百個),並看了不少視頻,你就能聽得懂。若是你找不到老外,你能夠隨便找一套美劇,而後把它全部的臺詞都背下來,達到能夠隨時配音的程度。你能夠在上下班的時候聽,能聽多少遍就聽多少遍。我不建議聽新概念,由於它不少的句子都是十分刻意的,並不符合如今的說話習慣(它不少句子寫成那樣是爲了讓你學習某種語法的,好比第三冊有一課,全篇全部的句子都是定語從句)。

我必需要強調,發音是十分重要的。即便你的句子毫無語法,單詞簡單,但只要發音對了,老外也能聽懂你在說什麼。而只要老外懂了,其餘都不重要。我認識好幾個在摩根士丹利這種級別的投行工做的碼農,英語水平都菜的一筆,雅思口語目測不會超過7。

我參加的幾回全英語面試中,有些面試官是香港人,英語十分菜鳥,這樣的面試基本都以他支撐不住先改講廣東話爲結局。但碰上比較強的主兒,狀況就十分複雜而有趣:

美國口音:這是最容易應付的,由於這是如今英語的主流口音。一般你的口音也會是美國口音,除非你裝比學英音。

印度口音:這種口音實在太可怕了,你不習慣基本聽不懂。如今好多大投行的碼農是印度人,並且他們還互相提攜,因此若是你去面投行,你極可能會撞上一個阿三面試官。印度人但凡比較牛鼻的,英語語速都超級快,並且思惟也比較快,技術水平倍棒。和阿三面試單挑的強度很大。

日本口音:多拉a夢的英文單詞doraemon是日本人用英語讀「夢(dream)」這個單詞的發音。

英國口音:當你聽了太多蛋疼的口音以後,你會有如沐春風的感受。英國口音的英語最大的好處就在於,實在太標準了。它讓你不由有這樣的感嘆:這纔是英語阿!固然,你若是沒有經歷過阿三,港式,日式這種奇葩口音的歷練的話,可能不會有太深的感觸。若是你在美國口音中呆了過久,可能會不太習慣,但不會有像聽印度人說話那麼困難。

關於語法和寫做

語法這東西基本不多人在意。聊技術的時候,基本上你只須要如今時。你不須要被動語態,各類從句,虛擬語氣除了if I were you以外,不少美國人也不知道是什麼。只有聊生活的時候,你可能須要過去或者未來時。基本的語法也沒什麼難度,英語的語法是最簡單的之一,簡單到你不須要學。對於固定搭配,不少美國人本身都整不明白。

寫做是沒有捷徑可言的。一個比較快的提升方法是,將你閱讀時看到的好句子抄下來而後絞盡腦汁的複用它們。好比你背下了新概念3第一課第一句,pumas are large, cat-like animals which are found in america。而後,你就能夠展開瘋狂的複用之旅: 

delegate is a kind of function pointer which is introduced in C# 1.0.

LINQ is a set of features that extends powerful query capabilities to the language syntax of C#. (MSDN的原句。看來他們也喜歡定語從句。這句話也具備和上一局相同的基本結構)

直到你以爲膩味了爲止。你能夠積累若干這些例句,這樣一來你的英語就不會再是簡單句的集合了。

將本身置身於英語環境

你能夠把本身的操做系統,各類軟件換成英文的,QQ使用國際版。而後弄一些材料,天天不離耳朵,它們包括但不限於:英文歌曲,英文劇視頻,技術教學視頻等(你能夠不看光聽)。除了gossip girl這種每季都有若干次激情互動的戲碼,致使你不能專心學英語的劇以外,大部分劇均可以,例如越獄,老友記。你也能夠天天寫一小段英文日記。若是你以爲本身就算是寫中文日記也屁都寫不出來的話,你能夠找來託福做文題目,而後天天寫一篇,而後和你的好友交換批改。

你也能夠考慮玩英文遊戲,不過,這個體驗是十分痛苦的,尤爲是若是你單詞量不多的話。不一樣的英文遊戲對你詞彙量的提升也不一樣,好比暗黑破壞神,基本上只能讓你掌握一大堆武器護甲的英語單詞。我做爲一個暗黑破壞神愛好者,能夠作到對任意一件白色裝備,瞥一眼它的英文就能夠估計出它大概的價格,但這對我讀技術書籍和麪試基本沒有任何幫助。RPG類的英文遊戲可能會好一些,由於它包含一些平常對話,總有點用獲得的單詞和小片斷。

你能夠參與字幕組,嘗試和其餘人一塊兒將英文劇中的對話摳出來。你也能夠嘗試翻譯一些你感興趣話題的文章,例如國外大牛最新的博客。不少老外很是喜歡和不一樣文化的人交流,你能夠主動在各類社區上和他們互動,不只練習了寫做,還能夠解決你心中技術方面的疑惑。若是有老外和你一見如故,聊到停不下來,你甚至還能夠經過他把本身整出國。好比,你能夠考慮去撩各個外國大公司在stack overflow上的員工(經過對他們的回答撰寫評論,或者直接問問題),這總比撩女人容易多了,還不用當面交談。

若是你以爲本身技術書籍都看得差很少了,也沒什麼障礙了,你也能夠看看Quora,在上面積累本身的名聲,或者看點其餘的暢銷小說,例如冰與火之歌,它的難度仍是不小的,和哈里波特至關。我我的以爲,若是你已經大概知道了劇情,你再去看原文的看得下去的機率要大大高於什麼都不知道的狀況下直接去看原文,因此儘可能不要選擇不熟悉的大部頭。但即便是這樣,過於高深的英文也會大大下降你對故事自己的興趣。在我中二的時期,曾對紅樓夢愛的走火入魔,中文看了至少八遍,對各類情節滾瓜爛熟。但即便是這樣,也未能讀完它的英譯本,死在了第五回無窮無盡的判詞上。

總的來講,學英語仍是有不少渠道的,尤爲是如今這個互聯網發達的時代。祝你們從學英語中得到樂趣,發現英語的魅力。

相關文章
相關標籤/搜索