Programming C# 4th Edition 中文版/英文版 对照阅读体验

简介:
  大概是耐心所至的缘故,我那几篇冠以“深入浅出 C# ”的文章在网络里被广泛转载——这当然是好事!有更多的朋友通过我的介绍认识并喜欢上了 C# 这门可爱的语言。广泛转载的 Side Effect 就是我的邮箱时常被网友们热情的来信所填满(现在没人写信了,不然我还可以用“读者来信如雪片般纷至沓来”这类我上小学时的作文常用词汇自吹自擂一下),大多数来信的内容都差不多——是初学者向在下询问如何系统而又有效地学习 C# 语言程序设计。特别是在书籍阅读方面,一定要我推荐出一些书来才算心满意足。另外,最近有一些友人开办的培训机构邀请我去讲些 C# 开发基础课程并参与 .NET 开发的课程设置改革,也询问到我选用什么教材进行教学、让学员们能够快速、正确地踏入 Microsoft .NET Framework 开发领域这一问题。二事并一事,其实核心问题都集中在一点上,那就是“ C# 语言的初学者应该读什么书”。

        在我看来,推荐读书是一件非常困难的事情。第一,每个人的理解能力和阅读风格都不一样,正所谓“众口难调”。同一本书 A 同学读了说好, B 同学可能就感觉一般般,搞不好到了 C 同学眼里就成了垃圾(阿猛怎敢冒“推荐垃圾”之恶名耶?);第二,正如人无完人一样,书也没有完美无缺的,不是有“尽信书不如无书”的古训吗……可是作为初学者(特别是没有任何编程经验的初学者),尚无对一门知识的辨别能力,怎么可能知道哪里是正确的、哪里有不足呢?结果往往是书的思想没抓住、精髓没领会、重点被忽略、被书中败笔带来的疑惑搞得彻夜难眠、书中的错误也就此埋下祸根(此君不骂阿猛“误人子弟”才叫见鬼)。如此一来,推荐好书本来是一件功德无量的好事,结果却扛回一块“推荐垃圾、误人子弟”匾额,实在是划不来。

        那么,到底怎样的书才能算得上是一本优秀的入门书籍呢?以在下几年来的教学和开发经验来说,它应该具有这样几个特点:

·           全面性 :有人认为入门教材就是给被学者看的,反正初学者什么也不懂,那些高深的内容就不必提了。此言谬矣!一本入门书,最重要的一点就是让初学者对一门学科有全面的了解,知道自己学的是什么,学了之后能用它做什么——最简单能做什么、最高深又能做什么。不然的话,只可能越学越迷茫。

·           正确性 :这点自不必多言,一本高阶书中有错误,至多书被人一把火烧掉了事;一本入门书中有错误,很可能就把一个人才付之一炬了。

·           权威性 :权威性意味着可信度。光给出一个正确的结果不算难事,还要有权威的诠释才算完整、才能展示一个人的“功力”。“苹果为什么会从树上掉下来?”牛顿告诉我是因为万有引力,我侄女告诉我说是因为它不想在树上呆着了,呵呵。另外,技术也是有雅俗之分的,权威的发言往往是很雅致的——那是有深度的象征。

·           有深度 :优秀的入门书不是“平”的,它会把该深的地方讲深,读者暂时理解不了的地方点到为止(全面性决定了它不可能只字不提)。一本优秀的入门书读下来,给人的感觉应该是在缓和的低山小丘间漫步,而不是在广场上溜达。有句话说的很好:你把学生当什么来教,那教出来的就是什么。推广一下,你把读者当傻子、写的内容一点儿深度也没有,那到最后读者对这门功课的理解就会像傻子一样——书和作者的价值也就不言而喻了吧。

·           有脉络 :这是一本入门书的精髓之所在。一门知识摆在一个好学者面前,时间有限,精力有限——从哪个角度介入这门知识最妥当?沿什么样的路径学习最合乎逻辑?知识怎样组合才能让学习者坚持到最后?对高级内容应该怎样留有接口以方便后续的学习?怎样与实践结合最能激发读者的兴趣?……要考虑的东西太多了,但绝不能不考虑,不考虑这些的书是一本没有灵魂的书,最后的结果是让初学者学完之后云里雾里、糊里糊涂。

·           可读性 :如果没有这一点,以上诸点恐怕都要作废了。要达到可读性强,往往不是作者一个人就能做到的。一本好书,不但有作者的智慧凝结在里面,还凝聚着编辑们的辛劳(很多书比较有意思,编辑的功力比作者本人还牛!),如果这本书是译文版,那还凝聚了翻译、校审、译文编辑们的辛劳——译文不准确、新文字排版不科学,一样会影响可读性。所以,选入门书的时候不妨看看作者、译者、编辑、出版社都是哪些。(补充一点:是不是书里的例子越多越好呢?那可不一定。代码实例是要看质量的,应该力求恰到好处,过多则有用花括号骗稿费的嫌疑;过少又会给人纸上谈兵的感觉。)

         现在是笔者喝茶时间, 10 分钟后继续……

         上面说了这么多,那么究竟哪些书作为 C# 程序开发的入门书籍比较好呢?

         考虑到权威性的问题,我们把选择的目光放在 Amazon 的打榜书上,因为这些书可以说是经得起世界级考验的书。在这些书中,本人喜欢的出版社有四个,分别是 Microsoft PressApressO’ReillyWrox Wrox 的发展历史可谓是一波三折,感兴趣的朋友可以看看这篇文章 [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.NET SQL Server 、电子商务、面向对象、自动化测试工具开发等专题结合起来,一样出一本。如果一门知识层次拉的比较开的话,它会出一本 Beginning XXXX 和一个 Pro XXXX Apress 的书很好认——黑底黄条,一目了然。可惜的是, Apress 的书,中译本比较少,可能是进入中国的时间还短吧。 Apress 的书,国内出版社中博文视点出版社译的是最多的、投入人力物力也是最大的。去年我买的那本《 Beginning C# Objects ——概念到代码》,读了一年,依然爱不释手。每当读博文视点出的书时,我都会想起韩磊老师在年会上说的那句话——出书就要一本是一本。看来,在这一点上, Apress BroadView 两家公司倒是蛮相似的。

·           O’Reilly :IT出版业老牌劲旅。权威到一塌糊涂——不光出微软系列的书, Java 系列、开源系列等等,样样拿得起放得下。 O’Reilly 出的书,系列也是最全的:

o     XXXX In Nutshell :一门知识(往往是新知识)的概览。

o     Learning XXXX 一门知识的专项入门书籍。

o     Programming XXXX :一门知识的全面入门书籍,一般比 Learning 系列要深、要广,书也会厚不少。

o     XXXX Cookbook   有些人不喜欢看文字的东西,喜欢通过读代码学习知识(特别是那些有经验的编程老手们,更懂得从代码中见微知著), OK ,这个系列的书就是为他们准备的。

o     XXXX Definitive Guide :权威指南系列。这套书更像是词典,用到什么知识的时候可以到里面按条目来查。

·           Wrox :就是我们说的大红皮系列拉。我的 VB.NET C# 入门都是用的这套书——那是 02 03 年的事儿了,那时家乡的书店里只有大红皮这一套书。大红皮系列也是进入中国最早的 .NET 系列图书,因此培养了巨大的读者数量。 Wrox 的书一般分两个层次, Beginning XXXX Professional 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 ——其实这两个东西的概念非常好分清的。就这个问题而言,困扰了我的整个初学阶段,同时也给广大读者带来了不小的麻烦。现在面试的时候,我一般会问“ Property Attribute ”的区别这道题,似乎凡是看过《 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

     回过头来看上面的文字,自己把自己吓了一跳——竟然有这么多!仔细想想,可能是有些很久就积累在心里东西都倒出来了吧。真心希望对于初学者很能有一点帮助 ——特别是那些还在大学校园里的同学们,衷心希望你们能多学些东西、找份好工作。说真的,扎扎实实学些东西、找份薪水不错的工作并不难,也许就是从轻轻松松读一本书开始。当你拥有藏宝图和攻城炮后还缺什么呢?我认为是“勇气”,那种勇于探索、不懈追求的勇气!

     带好你的藏宝图,牵上你的攻城炮,拿出你的勇气来——你就是一个征服者,你将会是一个富有的人!

         恭祝每一个阅读此文的人早日成功。




本文转自 水之真谛 51CTO博客,原文链接:http://blog.51cto.com/liutiemeng/49513,如需转载请自行联系原作者
目录
相关文章
|
C# C++ Windows
windows程序开发中c++和c#的对照
有的选项可能仅提供C++和Windows Platform SDK中的方法(API):(1)将窗口设为顶层窗口:       c++:         //[注意]:BringWindowToTop( hwnd )不会使窗口成为TopMost窗口!         SetWindowPos(h...
882 0
|
SQL 定位技术 C#
C#3.0 Sepcification(中英文对照)
      C# Version 3.0 Specification September 2005 Notice © 2005 Microsoft Corporation.
1021 0
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
20 0
|
2月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
75 0
|
2月前
C#WinForm基础编程(二)
C#WinForm基础编程
57 0
|
2月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
60 0
|
4月前
|
数据采集 前端开发 C#
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
Twitter是全球最大的社交媒体平台之一,包含丰富的音频资源。用户可以在Twitter上发布、转发、评论和收听各种音频内容,如音乐、播客、新闻、故事等,直接从Twitter抓取音频数据并非易事,尤其是在考虑到可能的封锁和反爬虫机制。Twitter会对频繁访问的IP地址进行限制或封禁,以防止恶意爬虫的行为。因此,我们需要使用一些技术手段来规避这些障碍,确保稳定而高效的数据访问。
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
|
3月前
|
程序员 C#
深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。 要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项:
38 0