這個話題可能就如「爲何男人應該多掙錢?」同樣永遠不會休止,但其實也是一個你們都對答案心知肚明的問題。你們都知道掙錢只有好處沒有壞處,惟一可能稱得上「壞處」的就是你須要付出不少時間和努力。學好英語也是同樣,只有好處沒有壞處。若是你以爲本身這輩子都用不上英語,那也應該爲你的下一代想一想...其實這裏我並不想用什麼出去旅遊、和老外交流、看懂英文電影之類的老套理由來告訴你們應該去學好英語,而僅僅是想從一個程序員的角度來討論爲什麼須要去學好英語。雖然我只是一個還未畢業的大學生,六級也只是勉過,但有些事情不落到本身身上是永遠體會不到英語這個東西的做用。廢話很少說了,今天寫這篇文章也正是由於最近身邊發生的一些事而讓我有了一些感悟。寫得比較粗淺,若是以爲寫得很差盡情踩我。php
個人一個朋友和我同樣都是大四學生,剛出來實習。他是作java的,去了一家很不錯的外企,聽說是一個新加披的公司。他們一塊兒進組的有四我的左右,清一色應屆實習生。前幾天都是熟悉公司之類的,沒有安排正式工做內容,老大告訴他們過幾天會有一個組內面試,也就是進一步考察能不能適應工做內容和環境之類的,要求全程英文。這可把我朋友給難倒了,由於他的英語真的不怎麼行,基本上是沒法聊上兩三句那種。不過他當時也告訴咱們本身不是太擔憂,第一是已經經過考覈進入了這個公司,第二是他說一塊兒進組的幾個英語應該都不怎麼樣,畢竟接觸的周圍的程序員也沒幾個英語好的。而後也就沒作過多的準備...前端
很快面試時間到了,但令他萬萬沒想到的是,和他一塊兒進組的幾個實習生英語都很不錯,基本上能和麪試官進行無障礙的交流,他當時就懵圈了。輪到他的時候,基本說不出一句話,後來面試官問他是否是不會說英語,他認可本身英語確實很差,能不能用中文......最尷尬的事情來了,面試官最後讓他本身用電腦和手機去翻譯成英文,用聊天軟件進行交流...這個操做是真的騷,關鍵是還只有他一我的有這「待遇」。完了以後他告訴我,公司後面的項目內容,包括文檔之類的基本都是英語,可能熬不到轉正了...java
再來談談我在學校參加雙選會面試的經歷。我應聘的是前端實習,個人專業雖然與計算機關係仍是很緊密,計科系學的大部分課程咱們也有學,可是學校莫名奇妙的把它放在了「信息管理系」下面,也就是嚴格來講是屬於管理的。而當時和我一塊兒參加面試的基本上都是計科系的,軟件工程、計算機科學之類的專業。因爲去的人太多,我是最後幾個才排到面試的人。輪到個人時候,我還記得面試官看到我簡歷後的第一句話就是,「你過了六級?」。一種疑惑中又帶着驚喜的感受,或許就是由於前面計科系的同窗英語不怎麼好,不少四級都沒過。雖然四六級這個東西說明不了什麼,但確實在求職時給了我幫助。python
其實經過我朋友的例子也能側面反映出一個現狀,一句話總結就是:英語不是萬能的,但不會英語是萬萬不能的。webpack
那麼英語對程序員到底有多重要呢?文檔、代碼、工具、google、github、命令等等全部與編程有關的東西,無一列外的都避不開英語。看到這裏你還會說英語對於敲代碼不重要嗎?那麼下面我將列舉一些與編程有關的英語使用場景,這樣就更能深入體會到英語的重要性,也能針對性的去提高本身的英語水平。git
這是最重要的一點,敲代碼就是在敲英語,我也找不出理由來反駁這句話。C、C++、java、python、js、php等等主流的編程語言都是老外編寫的,哪怕你不知道英語是什麼,我也能夠確定的告訴你,你代碼中敲的東西就是英語。由於除了數字、符號以及特殊文字,你敲的代碼都是由26個英文字母組成。而編程語言的魅力也正是在這裏,英語賦予了它新的生命。從0和1到如今豐富的編程語言,英語能夠說是最大的功臣之一。有了英語,編程語言就能被大多數人所理解,不少編程語言的語法也都是符合人類說話和思惟邏輯的。因此若是你能明白英語表明的意思,你也就能明白大部分語法的做用了(對於結構和用法須要其餘的邏輯思惟能力和數學能力)。程序員
舉個例子,if和else就是若是和不然的意思。就算你不是個程序員,也至少明白這個東西是與判斷有關係的。而更多的例子是一些內置函數,如match、random、replace等等,這些單詞翻譯成中文就很直白地把這個函數是幹什麼的告訴了你,匹配、隨機、替換就是它們的做用。當你對這些單詞的意思都很清楚以後,哪怕你忘記了這個函數的用法,你也知道它的做用。這一點其實對面試是很是有用的,好比當別人問到「要替換這個文字應該怎麼作啊」,哪怕你想不起具體方法了,你一想到替換的英語是replace,立刻就能答出「用replace方法啊」,而不是告訴別人我知道這個方法,但就是記不起名字了,這但是很尷尬的。github
對於像我這種每天都在寫Bug的人來講,報錯固然是屢見不鮮。當咱們的代碼報紅的時候,要作的第一件事不是立刻複製粘貼去搜索解決辦法,而是應該先把錯誤讀一遍,看下這個錯誤是什麼緣由形成的。那麼問題來了,錯誤確定是全英文,而且複雜一點的錯誤會變成長難句,光會一兩個單詞但是不行的。好比下面這個錯誤:Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
乍一看當場就懵逼了,這啥東西啊。完成時、從句什麼都來了,不過仔細一看,這些都是初中就學過的語法知識。因此若是這種狀況下我能理解大部分關鍵語句的意思,那麼我就能夠針對性的去找錯誤,而不是一頭霧水的先去百度或者谷歌。若是你基礎還行,像下面這種錯誤,即便你不知道404狀態碼的含義,一看也知道是「加載資源失敗」,服務器端的迴應出了問題,找不到相應的東西。
Failed to load resource: the server responded with a status of 404 (Not Found)web
程序員另外一個每天打交道的東西就是命令,不管是操做Linux系統仍是使用cmd、git、npm包管理等,都得用命令去執行,這些命令還恰恰全都是英文,你說氣不氣人。那麼怎麼更好地去掌握和理解這些命令呢?還得學英語,好比下面這個很是常見的命令寫法:面試
npm i webpack@3 -g
這樣的命令語言讓人感受沒有什麼邏輯可言,也不太好去記,彷佛只能靠屢次使用和死記硬背才能記住。但並不是如此,i就是install的縮寫,g就是general的縮寫。一個是安裝的意思,一個是全體的意思。連起來也就是耳熟能詳的「全局安裝」的意思了。其實命令寫出來的東西不少都是碎片化的,它每每不讓你寫一個完整地英文句子,而是用關鍵性的單詞或者縮寫去書寫,其實這樣反而下降了對英語掌握水平的要求,由於單詞就能解決大部分問題。
這一點其實沒什麼說的,官方文檔大多數都是英文的,若是你想深刻了解某門語言的特性和使用方法,必須去看原汁原味的文檔。
這一點我相信你們都感覺頗多,那就是下載一個IDE或工具後,第一件事就是去配置中文,否則大部分菜單欄的東西都看不懂。若是英語還行,徹底能夠省去這個步驟。甚至有些工具根本不能輕鬆地配置中文,好比MySQL的可視化工具Workbench,要想配置中文還得本身把菜單上的單詞都給翻譯一遍,再對應地寫入配置。就算你配置了中文,要下載一些插件,插件的介紹仍是英文...因此我以爲與其每次都去網上翻譯,不如直接把英語給學到每次都能看懂七八十,八九十的程度。
程序員經常使用的外網資源很是之多,好比搜索神器Google,找錯天堂Stack Overflow,基佬彙集地Github,視頻教學Youtube等等,英語很差還真很差操做這些東西...其實不少優質的資源外網都有,我曾經就由於光看文字不太理解callback這個東西,就去油管上搜索了一下「what is callback」,而後看了視頻一下就明白了。這裏真的強推去油管上看編程的視頻,免費還好用。
其實做爲一個程序員,除了上述的一些內容,還有很是很是多的地方都須要把英語學好。咱們經常掛在嘴邊的I/O,HTTP,IP等等都是英語的縮寫,要很好地理解這些東西,不是非要去搞懂他們的英文意思,但你得知道他們爲何這麼叫,而這些東西都是老外叫出來的,爲何固然也只有英語說得最清楚。
這一點我沒有太多的發言權,做爲一個還沒畢業的學生,談這個未免也太裝逼了。可是我確實在網上瀏覽了許多與之相關的內容,英語好不管在哪一個行業都是有優點的,固然也會對你的職業發展起到必定的幫助。這裏又要拿我朋友開刀了,他公司是能夠選擇去新加坡工做的,工資也比快是國內的一倍了,但他明確地告訴我,就算讓他去他也不回去,由於不會說英語...就算每天不出門,和別人交接項目的時候總要說話吧。
寫這篇文章其實也是鞭策本身要不斷保持學習,同時把英語給撿起來。若是你也以爲英語很重要,網上有無數種方法去學習,世上無難事,只怕有心人。其實我心中還總是有一個極端的想法,鞭策程序員去學習英語,這就和追星同樣。若是我有幸見到了java的創始人、有幸見到了比爾蓋茨、扎克伯格等崇拜的外國友人,我可不能只會說一句hello world啊!