學編程是否應該堅持看英文版著作?
/*******************2015/06/23更新************************************************************************/
一開始回答數只有幾個,這幾天突然就暴漲到35個回答,好開心O(∩_∩)O哈哈~ 首先還是要謝謝各位的熱心回答,謝謝!! 看了大部分回答,兩大觀點,支持堅持英文的主要是覺得原汁原味,學的東西更細緻,接觸的信息是原作者的原意;支持翻譯的是看母語作品效率更高,便於理解,有些作品的翻譯質量還是不錯的,有些還更正了原版的一些錯誤等等。 總的來說,現在我既看翻譯版的(快速上手,讀起來舒服),也看原版的(主要是看一些細節或者是翻譯中不理解的東西)。希望本問題的回答也能幫助到跟我一樣曾經糾結此問題的童鞋。
最後,謝謝各位答主!!3Q/******************原問題描述*****************************************************************************/最近在學c++,圖書館借了《c++ primer》第五版英文版,邊看邊查單詞還可以應對,但感覺效率低,是不是買本中文版得了?是不是要堅持看英文版的呢?是不是學編程還是看英文版的比較好,畢竟有些東西中文翻譯起來確實和英文有點差異。。。
第一本純英文原版書,看得時候必然痛苦無比。然後你啃完了這一本,雲里霧裡完全不懂,但好歹是讀完了。然後第二本,你覺得輕鬆一些了,很多東西你已經可以試著理解一些。第三本第四本,你會發現越來越輕鬆。最後就和看中文沒差別。IT技術書刊有一個特點,就是專有名詞重複出現,表述簡練,大量代碼。這些都給閱讀帶來了極大的便利。你問該不該堅持?我說該。
建議讀原版。
首先國內編排的教材質量實在有些參差不齊,熱門教材也不乏錯誤理論扎堆,錯誤代碼成片的情況,相對而言美帝的教材平均質量要高出很多。
其次是關於譯版書。要知道在編程及演算法相關領域,國人的能夠廣泛使用的創新理論及名詞是很少的。而翻譯過來的教材,很多名詞的翻譯都有些關乎痛癢的詞不達意、一次多譯及多詞同譯問題。看同一本書一般不會有太多麻煩,看多了就不好說了。
考慮到以後相關論文、書籍、文檔會有很多要讀,因此一開始就是英文的並無壞處,況且正好是在學習階段,時間一般都還比較充裕,比起以後再去接觸這些材料,早看早好。看吧,技術類的英語使用都不複雜,初中水平就足以應付了。
==============第三次======================================本著負責的原因, 我必須把handle和handler這兩個詞說明白.handle:
- 微軟系中,通常翻譯為 "句柄", 剛開始我根本不明白這個奇葩的詞, 要想理解這個詞,先想想 "手柄" 這個詞, 也就是能把握住某個東西 "把柄". 在編程中可以理解為某個對象的引用. 不過,在我心裡總把他翻譯為 "瓢把子"
- 其他系的編程環境中,這個詞完全是個動詞, 是"處理"的意思. 對應的名詞是handler,"處理器"的意思
handler:
- 在微軟系中,我沒注意到使用這個詞,主要是後來我都用java了. 也許C#中用到了,因為C#這貨和java就是基友啊. BTW, C#一些語法糖真是好.
- 在其他系中,意思是"處理器",通常都用在事件處理的回調函數中,比如,Android的http的回調 onSuccessHandler和onErrorHandler
==============第二次======================================
感謝 @利文斯頓 糾正, "句柄" 對應的應該是 handle 不是 handler==============原先答案======================================介紹一下我的經驗吧: 盡量讀原版英文書.中文無論翻譯得再好,有些詞翻譯得很彆扭,或者說在中文中沒有對應的辭彙.比如,handler.- 這個詞在微軟系的編程書籍中,被翻譯為 "句柄". 當時我看這個詞的時候一頭霧水.
- 這個詞在Java系的編程書籍中,被翻譯為 "處理器". 但是, 很多英文單詞都可以翻譯成處理器,如,processor,還有其他的記不住了. 通常都用在事件處理的回調函數中,比如,Android的http的回調 onSuccessHandler和onErrorHandler
我的英文也就高中水平,開始看英文文檔非常吃力,被逼無奈,強迫自己翻譯英文文檔,曾經網上最早的Spring框架的指南前四章就是我翻譯的,真的是一字一句的琢磨,必須先保證自己理解英文的意思和技術上細節的意思才能翻譯得明白!!!!
之後,再看英文技術文檔,掃一下就能明白大概意思了,其實,如果長時間積累,技術上的單詞就那些,排列也就那些,掃一下,看著臉熟,大腦對應就能出來什麼意思了,其實就和看熟人一樣,在你腦中某人映射的是SB,某人映射的是大SB,不需考慮,一下就意思就出來了.就沖著良好的排版,都值得一看。
首先你要接受一個現實,就是目前大部分科技著作的話語權被英語使用者佔據。即使歐洲和日本,那裡的科技工作者往往能自稱一派,但也需要做出妥協,將專註和論文用英語首發。所以你想要持續的提高自己,就要不斷的閱讀英文材料。你堅持用英文書籍入門,最多痛苦一兩年,一輩子都能高效的攝取英文文獻的營養;你要是不翻過這道梁,一輩子要被蹩腳翻譯者虐,不但看到的比別人晚,而且翻譯可能還有錯,中文搜索引擎和社區也不那麼給力。。。孰輕孰重,不需多言了吧。
有些專業辭彙在國內的翻譯沒有統一,看中文版不蛋疼死?
當然。實際上所有的理工科教科書都應該去讀英文版,而且高中就可以開始這麼做了
在這之前,你可以先堅持2年遊戲、影視、軟體全都看英文版適應一下肯定得看原版,其實技術書籍的辭彙看得多了無非也就那幾樣。如果沒有看英文原版書籍的習慣,用土話來說就是,把技術比做翔,吃翔都夠不著熱乎的^_^
有中文的當然還是先看中文的,然而很多資料十分的缺乏中文,特別是API文檔。
要明白你的目的:
如果是為了快速上手,展開實踐,建議讀中文,以後有時間了再看相關英文文檔。
如果只是自學,沒有項目催著,時間充裕,可以直接看英文,也可以中英文對照著看。北大某老師(也有可能是手下的臨時工)把寬度優先遍歷這麼約定俗成的話翻譯成先寬遍歷的時候,叫我哭笑不得。。。書的質量翻譯的很好,只可惜裝逼過度。。。
還有現在大部分學校用的那本操作系統概念那本教科書,真是平均二十頁就有翻譯錯誤(或者紕漏)。
我就不說某本編譯原理的教材抄成了龍書的壓縮辦還把裡面的代碼換成了Fortran的,最後長難句翻得狗屁不同。。。只有默默阿西吧了。
你說我滋補資瓷用原版,我是資瓷的,因為依我看國內教師招臨時工翻譯教材真的是喪心病狂。
但凡翻譯者有阮一峰老師一半吊樣,我也不至於在這裡瞎BB了。
以上。不需要,你應該先讀中文版了解術語,中文術語旁都有英文原文,比查詞典方便多了。
一般大學生水平直接看英文原著不會感到很吃力的。所以推薦看原著。因為國內技術書籍的翻譯我總覺得讀不懂。可能是因為英語的術語翻譯成漢語很多時候有歧義吧。
我大學的時候就是聽了一些大牛的「忠言」,說一定要看英文版,所以我大學看的所有技術書都是英文版的,非英文版不看!看到身邊的同學都去列印中文版什麼的,很鄙視。可最後,我發現我錯了,我發現我要比別人花更多的時間和精力去理解書本的內容,特別像編譯原理,資料庫原理這種,非常吃力。時間是有限的,這樣下去了幾年,我的的水平越來越差。還好我在大三的時候發現了這一點,重新看回了中文書,效率非常高,但是很多東西已經無法挽回了。其實,我們看書,是為了學習裡面的內容,而不是表面上的英文單詞語境語感什麼的,所以看母語理解起來會快很多,不會覺得有挫敗感,真的是為了學英語,看這些英文版的書屁用都沒有,英文四六級一樣會考不過。
所以,以後,只要是有中文翻譯的,我一定會優先看中文,只有沒辦法的時候才看英文,像stackoverflow,github,還有google出來的一些國外的技術網站,一樣看,平時看中文書英文水平一樣不會下降。
人生苦短,我看中文。看到問題,果斷回答啊!
本人大三在讀,在大二時接觸了機器學習,一發不可收拾,而國內資料太少,於是自學,看英文原版書就是這一本書,啃了2個月。接下來啃還有幾本工具書,關於python的,還有一些cuda,爬蟲等等。
這些書看完,感覺就是還是原版好啊,
現在學習技術就是google,毫無壓力,看英文原版書沒有以前吃力了,附上最近學習的東東手機黨,不容易啊互聯網軟體這方面很多經典的著作和最新的技術文檔都是英文的,過很久才能有中文的翻譯版,而且翻譯質量還不一定有保障,如果打算長期從事這方面的工作,從一開始就練習看英文文檔對以後幫助很大。再者技術文檔的英文都比較簡單,對英文要求其實非常低,一旦習慣了要比看中文文檔效率高很多。
是的。每當我我看到下面的人看不懂官方文檔,只能去百度不知道幾手的中文文檔時,我都恨不得一鍵盤拍過去
我也比較不建議一開始就看英文的,剛開始應該中英結合,或等有一定編程能力了再接觸英文文檔或書籍會更好。剛開始做編程做IT,理解知識點,理解含意,理解思想比摳英文單詞更加重要。因為對於初學者,連監聽器都不知道是個啥東西,那即使他翻譯出來handler,那又有什麼意義呢?
學C++並且上來就看英語書很不好,你到底是學C++還是背科技英語單詞呢?還是看中文版(KeyWords帶英語)的,可以從查詢問題開始使用英文(Google, StackOverFlow等,自備梯子)。PS:如果你使用某些IDE,你IDE的界面上的英語看懂,也能學到不少了,對於初學者,因為那都是專業說法且是頻繁用詞。
推薦閱讀:
※在程序開發中,++i 與 i++的區別在哪裡?
※為什麼 C 語言對字元串的設計是用零結尾,而不是像 Pascal 一樣在字元串首指明長度?
※計算機專業的學編程是怎麼套路?
※有沒有一本講解gpu和CUDA編程的經典入門書籍?