英語對程序員來講有多重要?會英語的程序員和不會英語的程序員有什麼差距?


不會英語的程序員就不會Stack Overflow Oriented Programming


我就吐個槽:

別總指望中文翻譯

警告:提領類型雙關的指針將破壞強重疊規則

你他媽知道什麼意思嗎?我他媽也不知道。

說人話!把locale從zh_CN.UTF-8換成en_US.UTF-8之後……

warning: dereferencing type-punned pointer will break strict-aliasing rules

這不就好理解多了嘛!


別提看英文文檔這樣的「高級」技能了,英語不好的程序員變數、文件命名都能讓人鄙視。

曾經有個甲方程序員批評我的程序沒有注釋,他看不懂,而我的程序一般是這樣的:

public static LoginResult Login(string loginID, string password,out Account account)
{
LoginResult result = LoginResult.LoginIDNotFound;

account = GetAccountByEmail(loginID);

if (account != null)
{
result = account.LoginPassword.Equals(password) ? LoginResult.LoginSuccessed : LoginResult.PasswordNotMatch;
}
return resu< }

我直接回了一句——如果這樣的代碼都看不懂你可以考慮回去重修初中英語了。

說點正經的,前幾天教一個高中生彙編,我剛講完DJNZ指令的用途,他就念念有詞Decrease... Jump.... No Zero ...非常省心的


差別太大了。

首先,除非你用易語言或者丙正正這種Chinese programming language,要不無論如何你都要接觸一部分英文單詞,這個是最基本的。有的人可能會說就那麼點記下來就好了,但是我想說的是,理解這個單詞的意思並使用,肯定要比記下來好很多(應該沒有程序員差到連那幾個東西都不認識吧)。

第二,你要看error message吧,要看warning吧,我反正到現在沒看見有中文的這些東西,當然你可以翻譯,但是感覺呵呵。

第三,要看document吧,doucument裡面可都是英文ou。補充下,document簡直太有用了,要是想查什麼method,肯定要自己翻啊,總不能讓別人教吧。

第四,如果你要學習一門新的語言,或者一些新的知識,英文的資料要比中文的多太多了,而且大部分質量還要優於中文的。不可否認中文資料也同樣有很優秀的,有的翻譯翻譯的確實很好,但是奈何那只是小部分,就舉個最簡單的例子,你想學haskell,又不會英語,好吧,可以洗洗睡了(目前可能是唯一一本中文的書還是我老師去年出版的)。

第五,你有的時候並不能靠書本解決一切問題,這個時候你需要問別人,而國外的geek的網站的氛圍,確實不是國內能比的,而很多大牛也都是用英文交流。

第六,你需要和別人討論吧,萬一你出國了,只會中文討論個毛線。論teamwork的重要性。要是你英語不好,和別人討論的時候根本就插不上話,更有甚者連別人說的是什麼都不知道。

第七,萬一你研究出了某些成果,你要寫論文吧,如果要國際發表的話,不會英語就躲在廁所里哭好了。

不說了,背單詞去了。


幾個簡單的栗子:

某個RFC或者SDK更新了,修復了以前的bug或者更新了某種方法,你看不懂英文版的,只能等有好心人幫你漢化,一般這個時間是6個月-65535個月,然後你就卡在那裡了;

開發遇到問題,打算去網上查詢或提問,用中文,發現全部都是跟你一樣「急,在線等」的;

原廠商中文技術支持頁面多點幾次,有價值的頁面就跳回英文版了;

跟原廠PM打電話,對方操著印度英語。。。。。。


看前人寫的代碼,請假寫成:pleaseHoliday,當時直接笑噴。


流暢使用英語的人看待世界的角度都會不一樣,不僅是對程序員,對所有擁有更高追求的人來說都應當掌握英語。

今天看到一句話拿來這分享一下「編程的真正奧義在於,把人類的思維、設計、語言、邏輯和精神創造以一種計算機可以識別和儲存的方式記錄下來。」,編程不是重點,重點是如何變得有思想。


程序員懂英文很重要,不一定要能說會道,至少要保證看英文技術文檔無障礙。

主要是因為:

(1)雖然不少技術文檔都有中文版,但是,最新的文檔資料幾乎都是英文的(國產的除外)。只看中文,就會發現總是看「過時」的東西。

(2)最新的技術進展,大部分時候都是沒有人主動翻譯,我們了解的時間就會滯後。

(3)技術文檔翻譯不是一件容易的事情,對翻譯者綜合要求很高,首先翻譯者本身技術要過硬,對技術本身理解不能有誤。然後英文要出色,而且,翻譯水平也不能低,不能翻譯錯,同時要讓其他同學能夠看懂。所以,我們常說,優秀的翻譯文檔和書籍不多,就是這個原因。

所以,看懂英文技術文檔很重要。


到需要看文檔的時候不會英語你就over了。


最簡單的,英文不好文檔都看不懂。不敢說自己英文多好,至少閱讀專業類文檔和使用相關軟體不成問題。昨天剛幫別人翻譯和編寫操作指南,眼瞎心累。


不光是寫程序,目前這個世界新的科技方面的東西,大部分是用英語傳播的,等到寫成書,翻譯了,都是比較過時的東西了,還不考慮翻譯錯誤。所有有志於技術的人,都有必要學習英語


程序員。。。。。需要漢語?


當你遇到疑惑時,你是選擇讓全中國的程序員幫助你,還是選擇讓全世界的程序員幫助你?當然我還有一件事沒說,中國的優秀程序員好多也只在英文圈混。


在此必須要推薦 @余晟 老師的一篇文章:

亂象,印跡 " 程序員為什麼要學好英語


不會英語也能叫程序員?


不懂英語,怎麼去看MSDN文檔、Github等網站,沒有這些,怎麼寫程序?


最花時間的三件事:

看文檔

變數取名

debug

你看,這三件事要干好,英文都不能差吧。


不熟英文的話,看文獻會有很大的障礙,這個虧可就大了。比如說Hinton叔叔的新論文,你得花很長時間才能看完文字,而人家早就理解文意了,那是一種被甩出幾條街的感覺啊。


我建議 IT 從業人員多學習英語。以我自身的例子來說,以前水平比較低,一些知識是英文的,掌握起來比較低效,急得自己晚上睡不好;後來我堅持每天臨睡前聽 30 分鐘的 podcast, 效果非常好: 雖然計算機水平一直沒提高,但是睡眠確實好多了。

(轉)


變數名起得沒有逼格,在同行面前會抬不起頭。


推薦閱讀:

金士頓內存條強在哪裡,為何市場佔有率第一?
為什麼年年喊互聯網泡沫要破,但是一直沒破?
家裡wifi疑似被鄰居電腦蹭網並且反而把我的主機踢出去?如何解決?
你平時如何維護電腦,保證電腦使用安全和安全上網?
地信的前景好嗎?

TAG:程序員 | 編程 | 計算機 | 信息技術IT | 英語學習 |