程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Programming C# 4th Edition 中文版/英文版 對照閱讀體驗

Programming C# 4th Edition 中文版/英文版 對照閱讀體驗

編輯:關於C語言

   大概是耐心所至的緣故,我那幾篇冠以“深入淺出C#”的文章在網絡裡被廣泛轉載——這當然是好事!有更多的朋友通過我的介紹認識並喜歡上了C#這門可愛的語言。廣泛轉載的Side Effect就是我的郵箱時常被網友們熱情的來信所填滿現在沒人寫信了,不然我還可以用“讀者來信如雪片般紛至沓來”這類我上小學時的作文常用詞匯自吹自擂一下),大多數來信的內容都差不多——是初學者向在下詢問如何系統而又有效地學習C#語言程序設計。特別是在書籍閱讀方面,一定要我推薦出一些書來才算心滿意足。另外,最近有一些友人開辦的培訓機構邀請我去講些C#開發基礎課程並參與.NET開發的課程設置改革,也詢問到我選用什麼教材進行教學、讓學員們能夠快速、正確地踏入Microsoft .NET Framework開發領域這一問題。二事並一事,其實核心問題都集中在一點上,那就是“C#語言的初學者應該讀什麼書”。         在我看來,推薦讀書是一件非常困難的事情。第一,每個人的理解能力和閱讀風格都不一樣,正所謂“眾口難調”。同一本書A同學讀了說好,B同學可能就感覺一般般,搞不好到了C同學眼裡就成了垃圾阿猛怎敢冒“推薦垃圾”之惡名耶?);第二,正如人無完人一樣,書也沒有完美無缺的,不是有“盡信書不如無書”的古訓嗎……可是作為初學者特別是沒有任何編程經驗的初學者),尚無對一門知識的辨別能力,怎麼可能知道哪裡是正確的、哪裡有不足呢?結果往往是書的思想沒抓住、精髓沒領會、重點被忽略、被書中敗筆帶來的疑惑搞得徹夜難眠、書中的錯誤也就此埋下禍根此君不罵阿猛“誤人子弟”才叫見鬼)。如此一來,推薦好書本來是一件功德無量的好事,結果卻扛回一塊“推薦垃圾、誤人子弟”匾額,實在是劃不來。         那麼,到底怎樣的書才能算得上是一本優秀的入門書籍呢?以在下幾年來的教學和開發經驗來說,它應該具有這樣幾個特點: ·         全面性:有人認為入門教材就是給被學者看的,反正初學者什麼也不懂,那些高深的內容就不必提了。此言謬矣!一本入門書,最重要的一點就是讓初學者對一門學科有全面的了解,知道自己學的是什麼,學了之後能用它做什麼——最簡單能做什麼、最高深又能做什麼。不然的話,只可能越學越迷茫。 ·         正確性:這點自不必多言,一本高階書中有錯誤,至多書被人一把火燒掉了事;一本入門書中有錯誤,很可能就把一個人才付之一炬了。 ·         權威性:權威性意味著可信度。光給出一個正確的結果不算難事,還要有權威的诠釋才算完整、才能展示一個人的“功力”。“蘋果為什麼會從樹上掉下來?”牛頓告訴我是因為萬有引力,我侄女告訴我說是因為它不想在樹上呆著了,呵呵。另外,技術也是有雅俗之分的,權威的發言往往是很雅致的——那是有深度的象征。 ·         有深度:優秀的入門書不是“平”的,它會把該深的地方講深,讀者暫時理解不了的地方點到為止全面性決定了它不可能只字不提)。一本優秀的入門書讀下來,給人的感覺應該是在緩和的低山小丘間漫步,而不是在廣場上溜達。有句話說的很好:你把學生當什麼來教,那教出來的就是什麼。推廣一下,你把讀者當傻子、寫的內容一點兒深度也沒有,那到最後讀者對這門功課的理解就會像傻子一樣——書和作者的價值也就不言而喻了吧。 ·         有脈絡:這是一本入門書的精髓之所在。一門知識擺在一個好學者面前,時間有限,精力有限——從哪個角度介入這門知識最妥當?沿什麼樣的路徑學習最合乎邏輯?知識怎樣組合才能讓學習者堅持到最後?對高級內容應該怎樣留有接口以方便後續的學習?怎樣與實踐結合最能激發讀者的興趣?……要考慮的東西太多了,但絕不能不考慮,不考慮這些的書是一本沒有靈魂的書,最後的結果是讓初學者學完之後雲裡霧裡、糊裡糊塗。 ·         可讀性:如果沒有這一點,以上諸點恐怕都要作廢了。要達到可讀性強,往往不是作者一個人就能做到的。一本好書,不但有作者的智慧凝結在裡面,還凝聚著編輯們的辛勞很多書比較有意思,編輯的功力比作者本人還牛!),如果這本書是譯文版,那還凝聚了翻譯、校審、譯文編輯們的辛勞——譯文不准確、新文字排版不科學,一樣會影響可讀性。所以,選入門書的時候不妨看看作者、譯者、編輯、出版社都是哪些。補充一點:是不是書裡的例子越多越好呢?那可不一定。代碼實例是要看質量的,應該力求恰到好處,過多則有用花括號騙稿費的嫌疑;過少又會給人紙上談兵的感覺。)         現在是筆者喝茶時間,10分鐘後繼續……         上面說了這麼多,那麼究竟哪些書作為C#程序開發的入門書籍比較好呢?         考慮到權威性的問題,我們把選擇的目光放在Amazon的打榜書上,因為這些書可以說是經得起世界級考驗的書。在這些書中,本人喜歡的出版社有四個,分別是Microsoft PressApressO’ReillyWroxWrox的發展歷史可謂是一波三折,感興趣的朋友可以看看這篇文章[url]http://blog.csdn.net/aaahts/archive/2004/08/18/77757.aspx[/url])。有意思的是,雖然這四家出版社出版的書各成體系,但給書起名字的時候也會有“撞車”的時候。還有時候,英語版的名字並不撞車,但到了中文譯名卻撞上了特別是“XXXX技術內幕”,混亂得很~~~),所以大家在買書的時候一定要問清是哪個出版社的源社、譯社)和作者譯者。         下面說說這幾家公司出版圖書的特點: ·         Microsoft Press.NET技術的老家啦~~~權威性是最高的。但個人感覺文筆一般,出的書嗎,深的太深、淺的太淺看MSDN就行)。不過也難怪,人家微軟是賣軟件的,不是賣書的,呵呵。對於MS社的書,高深度的書我是極力推薦的,入門書嗎,如果你打算在巴士上惡補點什麼的話,可以閱讀它的Step By Step系列,帶圖解的,不坐在電腦前也能學習。 ·         Apress:我的最愛,書的質量很高、很細致。Apress一般不出大而全的書,每本書的目的性都很強。比如,針對C#,它並沒有推出一本全面描述C#的書,而是把C#ASP.NETSQL Server、電子商務、面向對象、自動化測試工具開發等專題結合起來,一樣出一本。如果一門知識層次拉的比較開的話,它會出一本Beginning XXXX和一個Pro XXXXApress的書很好認——黑底黃條,一目了然。可惜的是,Apress的書,中譯本比較少,可能是進入中國的時間還短吧。Apress的書,國內出版社中博文視點出版社譯的是最多的、投入人力物力也是最大的。去年我買的那本《Beginning C# Objects——概念到代碼》,讀了一年,依然愛不釋手。每當讀博文視點出的書時,我都會想起韓磊老師在年會上說的那句話——出書就要一本是一本。看來,在這一點上,ApressBroadView兩家公司倒是蠻相似的。 ·         O’Reilly:IT出版業老牌勁旅。權威到一塌糊塗——不光出微軟系列的書,Java系列、開源系列等等,樣樣拿得起放得下。O’Reilly出的書,系列也是最全的: o   XXXX In Nutshell:一門知識往往是新知識)的概覽。 o   Learning XXXX: 一門知識的專項入門書籍。 o   Programming XXXX:一門知識的全面入門書籍,一般比Learning系列要深、要廣,書也會厚不少。  XXXX Cookbook 有些人不喜歡看文字的東西,喜歡通過讀代碼學習知識特別是那些有經驗的編程老手們,更懂得從代碼中見微知著),OK,這個系列的書就是為他們准備的。 o   XXXX Definitive Guide:權威指南系列。這套書更像是詞典,用到什麼知識的時候可以到裡面按條目來查。 ·         Wrox:就是我們說的大紅皮系列拉。我的VB.NETC#入門都是用的這套書——那是0203年的事兒了,那時家鄉的書店裡只有大紅皮這一套書。大紅皮系列也是進入中國最早的.NET系列圖書,因此培養了巨大的讀者數量。Wrox的書一般分兩個層次,Beginning XXXXProfessional XXXX,中譯本分別為《XXXX入門經典》和《XXXX高級編程》。 從上述眾多系列中,我們可以選出兩個系列,作為大家的C#學習教材。 ·         O’ReillyProgramming C#àC# CookbookàProgramming ASP.NETàASP.NET Cookbook ·         WroxBeginning Visual C# 2005àProfessional Visual C# 2005àBeginning ASP.NETàProfessional ASP.NET         這兩個系列的書,再配以MSDN做參考、Apress的書作為實戰指南Apress的書非常注重與實際項目的結合),基本上就沒問題了。還有,在如今Web開發大行其道的情況下,上面的系列沒有包含Windows開發。從找工作的角度上來考慮,學習Web開發比Windows開發更好找工作。         現在到了問題的核心:一個初學者應該怎樣使用這些書呢?         我的建議是:《C#入門經典》和《Programming C#》這兩本書手頭都要有。說到這兒,阿猛有一個好消息要告訴大家——以前我只能推薦一本書給大家,那就是《C#入門經典》,因為《Programming C#》這本書是沒有中文版的網上有它的英文版,但學生們都不太樂意看),就在前幾天,我從博文視點的編輯那裡得到消息——Programming C#第四版中譯本)經過歷時近一年的精心翻譯和三遍校對,在8月底就要面世了!這兩本書終於可以“雙劍合璧”用於教學了。         前面說過,書無完書。《C#入門經典》這本書雖然很不錯,但也有很多讓我頭疼的地方。舉個例子:它的第27章,英文原版是Attribute,也就是“特性”,在中譯本中譯為了“屬性”,這就讓初學者搞不清什麼是Property、什麼是Attribute——其實這兩個東西的概念非常好分清的。就這個問題而言,困擾了我的整個初學階段,同時也給廣大讀者帶來了不小的麻煩。現在面試的時候,我一般會問“PropertyAttribute”的區別這道題,似乎凡是看過《C#入門經典》的應聘者都答不清楚——這就是譯文硬傷給讀者帶來的“後遺症”。     書中有錯是在所難免的,以前的問題在於世面上只有一本《C#入門經典》權威的入門書籍可供初學而且又被冠以“經典”——其實人家原書沒有“經典”二字嗎……),現在這個問題隨著Programming C#中譯本的到來將不復存在了。Programming C#中譯本的出現,一大價值在於讓初學者們多了一種選擇,另一大價值就是能夠與《C#入門經典》配合起來、互相印證,打破了原來“一家獨大”的壟斷局面。可能你會問:《Programming C#》裡面就不會有錯了?我的回答是明確的——書無完書,錯誤一定是會有的,但我們有多種措施可以把錯誤帶來的影響減小的最低。我們可以拿它與《C#入門經典》對照來讀,兩本書中孰對孰錯自然會浮顯出來;我們可以查看出版社的更正列表;當修訂達到一定數量後,出版社還會釋出新版或者修訂版……     插播一個小花絮:前幾天我聽說《Programming C#第四版中譯本)》已經定稿之後,問小編能不能搞幾個樣章出來。小編在MSN上的留言倒也非常痛快:Mission Impossible。我心想,算了,那就等書出來再說吧,後來我就沒再惦記這事兒……沒想到,就在幾個小時前,小編打來電話說他用一頓大餐從老編那兒幫我換來了幾章的樣張!於是我基本上是沖到工位上、打開附件一口氣讀完了樣張。感覺很不錯!順手又打開英文原版,對照了一下:譯文的質量也稱得上是上乘可惜我手頭只有那麼幾頁,要是多一些就好了)。不過話又說回來,畢竟是兩種文字、兩種文化的轉換,不可能100%轉換過來的,我也就不那麼吹毛求疵了,只要沒有硬傷、不誤導初學者就行了。     Programming C#》中譯本我就看了那麼幾頁,沒什麼發言權,書的質量還是留給日後大家去評說吧。這本書的英文版我已經看過多遍了,從中,我汲取了不少的營養。在這本新書即將上市之際,還是讓我們更多地來關注這本書的內容和使用方法吧。     先說使用方法: ·         找一本《C#入門經典》來對比閱讀。按照我們對一本優秀入門書籍的評價,這兩本書都是夠格的——至少英文版是夠格的。 ·         安裝上MSDN,作為知識庫 ·         最好買一本《C# Cookbook》的中譯本做上機練習 ·         找到這兩本書的英文版,對照閱讀。對照閱讀的作用很大: o   可以得到“原汁原味”的內容,特別是對於技術名詞 o   可以避免陷入翻譯時引入的歧義或錯誤 o   可以學習純正的英語現在稍微好一點的企業面試的時候都要求英語)     再說說內容: ·         比起《C#入門經典》來,這本書更適合作為教師的教材和學生自學的課本。為什麼呢?如果大家使用電騾下載一套AppDev講授C#編程的視頻應該是8CD)就會發現國外的大型培訓機構選用的教材就是這本書《Programming C#》 ·         兩本書在基礎內容上大同小異,但在高級內容上有所不同。《C#入門經典》補充的是GDI+Network編程,《Programming C#》補充的是與COM交互和CLR相關知識。在面試題中,CLR相關知識比較多;開發與VC++兼容的軟件比如自動化測試工具)方面,與COM交互的內容比較多。想讓你的軟件變漂亮,GDI+是必學的,想編寫像QQ一樣的軟件,Network編程必不可少。因此,兩本書可以算是各有千秋。 ·         Amazon上的評分——兩本書都是4星,打個平手。 ·         這本書的營養很豐富——我很多文章的靈感就是來自這本書,只不過用一篇文章來解釋這些事情會更細致一本書是不可能每個知識點都解釋那麼細致,不然厚度准會超過1米)。 ·         這本書是一張藏寶圖:讀這本書一定要配以MSDN。如果把MSDN看成一個埋藏著寶藏的海島,把一個學習者看作是一個勇於探索的尋寶人,那麼《Programming C#》這本書絕對可以稱得上是一張能指引你准確挖到寶藏的“藏寶圖”。 ·         這本書是一門攻城炮:並不都是所有的面試官都是伯樂、能因為你的潛質而把你收於帳下,並不是所有的公司都有資金用於培訓新人就算有,也希望優先選擇有更高基礎的應聘者),所以,在你成為一名高手、能與面試官在面試桌前“華山論劍”之前,絕大部分的面試都會是一場相當“慘烈”的攻城戰。面試時是被虐待,還是跟面試官開炮對轟,決定於你的真實技術水平。如果允許我為《Programming C#》這本書改個名字,那我一定給它改成《C#面試寶典》,為什麼呢?我給大家截張樣張的圖但願不算洩密)就明白了——在半頁書中,密集地出現了如此多面試官喜歡提問的問題,真的很難得。         OK,今天先寫到這兒吧:D     回過頭來看上面的文字,自己把自己嚇了一跳——竟然有這麼多!仔細想想,可能是有些很久就積累在心裡東西都倒出來了吧。真心希望對於初學者很能有一點幫助 ——特別是那些還在大學校園裡的同學們,衷心希望你們能多學些東西、找份好工作。說真的,扎扎實實學些東西、找份薪水不錯的工作並不難,也許就是從輕輕松松讀一本書開始。當你擁有藏寶圖和攻城炮後還缺什麼呢?我認為是“勇氣”,那種勇於探索、不懈追求的勇氣!     帶好你的藏寶圖,牽上你的攻城炮,拿出你的勇氣來——你就是一個征服者,你將會是一個富有的人!         恭祝每一個閱讀此文的人早日成功。

本文出自 “上善若水 潤物無聲” 博客,轉載請與作者聯系!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved