編程的技術資料好多都是全英文的該怎麼學習?
編程的技術資料好多都是全英文的該怎麼學習?英語不是很好。。。
剛學編程的時候我英文也很差,高考英語70分,大學英語一二三四級,別人考四次,我考了六次才過。
那時中文文檔根本就沒有,msdn只有英文的,硬著頭皮看唄,裝個詞典軟體,不認識單詞就查下,多看看就懂了。
msdn還是很好讀的,它編寫的時候照顧了非英語母語的人,用詞和語法盡量簡單。
相比之下apple和google的文檔要晦澀些。
英語的聽說讀寫里,讀是最簡單的。
好久沒有遇到讓我有答題慾望的題了。我來講下我的經歷和感受,看能不能幫到你。
------
我最初開始學編程的時候,英文是考過 4 級 2 年後的水平。你懂的,作為一個正常人,考過考試基本就不會再專門學英語了;很遺憾,我也是個正常人。同時,我是學商科的,毫無編程背景和能力,也沒有英文閱讀習慣。但當時我想學 Ruby ,Ruby 沒有中文書籍。
而我最早開始選擇學習編程,是從學 Command line 開始的。
所以我的第一本英文編程書是:The Linux Command Line好,背景情況就是這樣。------
我花了近 2 個月時間看那本書,我遇到的問題是:
1. 我不知道很多英文單詞
2. 那些英文單詞(專業術語)翻譯成中文,我也不知道什麼意思
------
我當時的解決方法是:
硬著頭皮看完,每一個看到生單詞的地方,就把中文寫在旁邊。
為什麼怎麼做?
因為,那個生單詞不會出現一次,後面還會出現多次。而出現多次的單詞,就一定是核心辭彙,在你不斷看材料的過程中,反覆看到它,你就回去找中譯,頻繁了,你自然能記住。這一點你要相信你自己。------
我想對你說什麼:
0. 你不應該回去專門學英文 / 背單詞
你背再多的詞典,記住再多的單詞意思,也無助於你看懂那份文檔。等你背完單詞再回頭看資料,你本來被消耗的積極性會更加消耗,戰線太長不是好事。你需要短期的反饋,那就是,你看懂了某一句、某一段、某一章。得到了對編程理解力的提升,這才是你要的。學會英語背單詞,不是你要的。
記單詞,在理解上記住,而不是,死背下中英文對照的翻譯。
理解力 ≠ 信息量。
1. 你要能接受自己不能 100% 看懂資料
當你看不懂資料的時候,找一個最簡單的「託詞」,它是英文的,所以我看不懂。這是不好的。
任何一份你用來學習的資料,一旦是你覺得必須要看的。那必然,它其中的知識,必然有部分是超出你目前的認知能力的。你看不懂,是很正常的。而你想辦法搞懂,你之前不懂的東西,這才是學習的邏輯。跟是否是英文,沒什麼關係。
不然,你找一本中英對照的書,中文未必你在沒有基礎的時候,能 100% 看懂;或者說,能很輕鬆的看懂。
因為我試過,我看中文的編程書,發現也有閱讀困難,而這種困難,是來自於理解上的困難,不是語言上的。
反而,因為少了一道人為的翻譯過程,從理解的角度,看原版,是更容易理解的。
2. 你要學會的,是閱讀;而不只是,閱讀英文
有時候看不下去一份閱讀資料,是因為過早糾結於細節,而並沒有先對資料有全盤的認識。加上又有英文阻撓,更容易陷入一詞一字一句的糾結當中。而沒有 big picture,就提前糾結在細節裡面,並不利於你理解。
所以在你看不懂資料中某些地方的時候,不要過分糾結它。記下單詞,繼續讀下去。
當你對閱讀資料部分詞句,章節也有疑問的時候,也不要跟它過分死磕,繼續閱讀下去。繼續讀下去的目的,是對整份資料有認知;而對整體有認知,有助於你日後回頭理解之前不理解的細節。3. 你要培養一種習慣,能用英文閱讀的習慣
當你能看完一份資料(不一定是完全看懂)的時候,你應該為自己感到高興,給自己認可,然後繼續去看下一份。
你會發現你內心認可了自己,可以看英文資料這個事實;接受了,就好辦,遇到不會的,查就是了。慢慢日積月累,你會養成習慣。然後你會進入下一個階段。
如何學會 XX,跟語言無關。
學會學習 學會你想學會的東西,才是更重要的事情。
看英文文檔、paper及技術類書籍,個人認為需要過三關:
1. 心理關首先不要怕!
很多人見到英文就放棄,就不看了。要有堅定的決心啃下讀英文文檔這個骨頭。
第一篇看得肯定很慢,你讀上三個月之後會發現也就是那麼一會兒事兒,沒啥的。2. 單詞關
一開始肯定會有很多單詞不認識,但沒關係,這時候要在單詞上下一些功夫,但是這並不是說讓你重頭找一本單詞手冊去背,記住,你現在不是學英語,你是要讀文檔,學習專業知識。一般文檔是有一個人或者一個地區的人寫的,我發現一篇文檔中的行文風格總是類似的,人的說話習慣總是很難改變,所以常用詞是集中的。加上文檔肯定是專業技術文檔,並且很多時候只講一方面的事情,所以專業用語也是集中。那麼,多瀏覽幾遍文檔,把不認識的詞都查一遍,建議可以標註在文檔上,或者記下來到一個單詞本裡面,看這篇文檔的這幾天沒事兒就背背這幾個生詞,看幾遍大概就記住了。整片文檔大概就沒有幾個生詞了。
長久之後可以積累一定常用單詞:)3. 技術關
要想清楚一件事情,很多Paper即便有個非常牛的技術翻譯譯成中文,你也不一定看得懂。很多時候看不懂和英文沒關係,而是因為你的技術等級還不夠。這在讀論文時候特別明顯,很多論文綜合性及跳躍性非常強,默認你了解了非常多的東西。舉個例子,很多文檔裡面有數學公式,很多時候你會發現這個公式裡面很多符號你都不認識,那麼顯然你看不懂這個公式背後的含義。碰到這種問題,建議看文檔後面的參考文檔,先把參考文檔大致瀏覽一遍,了解這篇文檔中說的是什麼事兒,自己還差那些知識不了解,先把這些知識搞清楚,再回過頭來讀這篇文檔。很多時候為了學習一篇文檔要學習一整套分支課程,這是很正常的情況。
連語言關都沒過就不要談技術水平了
裝個有道詞典劃詞翻譯。
英文的語法永遠是高中那點東西,最大的障礙應該是辭彙。個人感覺,使用key-value形式的單詞表來背單詞效率有限,而讀文章時遇到生詞去查字典,查幾遍記得更牢。
我高考英語120左右,不算太高,太高我就不幹這個了。高中時候上的課外班基本是講語法,沒啥辭彙積累。大學英語沒怎麼用心學。看文檔無壓力,但是無壓力和快還不是一回事兒。英文的信息熵本來就大,再加上非母語的閱讀速度要慢一些。慢是正常的,切不可急於求成。另外有人說1500個詞就夠了,其實是因為可以藉助字典,看文檔又不是考試,對吧。
有些datasheet不僅沒有中文,甚至沒有英文。硬體工程師都是一句句啃出來的!
回答一句就好,但應該有用: 先學看 英文 API 說明,也就是函數或類的說明就好;先不要看英y文的教程。 為什麼?因為前者看似技術化,其實翻來覆去就那麼幾個單詞。
如果你真的想在這個領域有所成就,只有一個方法,硬著頭皮看,因為到最後,你肯定要經常上github,stackoverflow,google code...剛開始有點難度,堅持下來,你收穫的不只是技術水平。順便把英語水平也提升了,豈不是一舉兩得。
我大二的時候四級掛了,大三考程序員證通過,這年的四級也通過了,就是因為全英的書啊。
編程資料的英文還是比較專業化的,辭彙一般都是常見的,看多了也就看的快了,不懂的單詞就用有道翻譯。我英語僅僅只過四級而已,大部分英文資料參考在線翻譯也基本能搞定,不會特別慢。當然,學習英語真的是非常有用的一件事。
養成英文寫博客的好習慣!
順便打個博客廣告http://kellen.wang/
小學六年級的時候剛接觸 windows,那時候硬碟還是 500MB 的。當時還沒有網,軟體都是買那種 100 合一的盜版光碟。某次在雜誌上看到一款軟體叫 Winzip, 可以把文件變小!!!那我的 500 MB 硬碟不就變 1G 了么??!!我這輩子都不需要多於 1G 的空間啊!!
於是我就在盜版光碟里找,居然有!!!裝之!!啟動!!卧槽!!尼瑪是鳥語的?? 而且按鈕圖標都沒見過啊!!怎麼用???說好的全宇宙只有新建保存打開這三種按鈕的!!!
父母都不懂鳥語,腫么辦?? 當時好像連金山詞霸都沒有,還好我知道 help 是幫助的意思,於是打開了自帶的 .hlp… 還有人記得 .hlp 么???尼瑪文檔也是鳥語,但我真想用這個軟體啊,1G 空間在招手!!於是我搬了一本英漢詞典,一個詞一個詞地查????????
最後我學會了,順便學會了一堆單詞,compression extraction 神馬的。
然而我發現壓縮以後要用的時候需要先解壓?????? 媽的坑爹啊!!!!!
題主如果你想承認你不如一個六年級小孩???? 那就這樣吧~~那就學英文吧。不是很複雜,一邊看一遍查字典。慢慢的就會了。
我記得有個電影裡面說了一句很有道理的話。大體意思是,在某個領域國外中國強,那麼為了學好這個技術就要先學好他們的語言。為什麼呢?如果你不會他們的語言,你就要等翻譯翻譯。一來是這個很滯後有可能等很久,就像國內IT業的教科書,都Java 8都發布了,還在教Java 6。另一個就是翻譯的內容是基於翻譯者的理解的。要是內行來翻譯還好,要是外行來通過字面意思來翻譯會很坑爹。所以不如直接看原文。每天看看TED的演講,既有助於開闊眼界,又可以提高英語。
我英語就初中水平而已,現在不也天天看MSDN,stackoverflow,quora
學習方法也很簡單,就是多看就對了,當你工作到一定時間或者水平後,你不想看外文還真不行,剛開始就是下個翻譯軟體,看見不懂得就查,看了一年後基本就不需要翻譯了英語好的人看著也費勁。高考英語125,四級一次過。基本都知道單詞啥意思,組合起來還是不明白。
有的文檔有中文版,相信我你看著也超級費勁。
那麼咋辦尼。
最好的辦法就是,先不看文檔,你入門先找個老師教,或者看視頻,不要看生澀的書。對於不懂得知識點,就算你看書,看完你也記不住。
通過看視頻看人家怎麼實現的一個個小功能,把代碼自己寫一遍或者複製粘貼一下,跑起來。通過加斷點等等調試方法後。你再找相應的文檔看。(注意,假如你今天寫的代碼是做一個選擇功能,你就找文檔里有關選擇功能的那一塊來看)
英語不好也沒事,下載個有道詞典,設置取詞功能,不懂得單詞就直接看翻譯。有的翻譯過來的意思也很怪,但是你已經事先知道代碼怎麼實現的了,對照著看,很容易就知道文檔的結構和單詞在編程里特定的含義,多重複幾次這樣的過程,以後你就能看懂了。
舉例:
淺顯易懂例子1:英文:declaration 中文:聲明 (你可能不知道聲明是咋回事兒,但是看下面有一句好似代碼的東東,而且程序也用到這句話跑起來了,於是你看到declaration,就知道下面是一個代碼介面,複製一下就能用了)(都不用翻譯它的中文意思了科科)//呦吼,該繼續工作了,有機會再接著寫。反正我一開始是這樣乾的,剛開始特痛苦,多來幾次就熟了(?≧?≦?)