书籍推荐:《C#7.0本质论》

在dotNet平台中有多种开发语言可以使用,C#无疑是其中应用得最为广泛的。学习一门编程语言最好的方式就是找一本好书系统地学习,我读过的关于C#的书籍中,我认为下面三本最为经典:

  • 《C#本质论》:入门类,目前最新为《C#7.0本质论》
  • 《C# in Depth》:技巧类,目前最新第四版
  • 《CLR via C#》:底层原理类,目前最新第四版

之前看过《C#本质论》的第四版,最近拿到了最新的《C#7.0本质论》,近700页,也算是一个大部头了,因为内容比较熟悉,所以花来一两个星期就快速地略看了一遍。不要以为我归类为入门类就以为很简单,书中依然有很多高级的内容可以用来进阶,有经验的开发人员依然可以从中收获良多,并且可以作为进一步阅读《CLR via C#》的一个桥梁。

下面我谈谈我最近看了这本最新版本的感受。

翻译

阅读中译本的书,翻译质量是非常重要的,最怕的就是中文字都认识,就是不知道什么意思,还不如读原版。本书的译者是周靖,他同时也是《CLR via C#》第二三四版的译者,专业技能上没有问题,通读下来还是非常流畅,表达清晰,我觉得这就够了。

结构

一本书的内容再好,如果组织结构和排版很差,会让人不想去读或读不进去,本书在这方面我认为还是很用心的。

思维导图

平时的工作中,思维导图用的非常多,所以在本书的每一章开头看到有思维导图感觉非常亲切。每章的思维导图就是每章内容的提纲,可以让我们快速熟悉这一章节的相关知识点,并建立自己的知识体系。看完一个章节后,再回过头看看这个思维导图的内容,也便于复盘知识点是否完全掌握了。

版本标示

编程语言的发展非常的迅速,每个版本中都会新增很多新的特性,很多系统讲解的书,很难体现每个版本的变化,像《C# in Depth》这类讲解特性的书感觉又不是很系统。本书通过在页面的侧边加上Begin、End的标记完美地解决了这一问题,让我们系统学习语言的同时又能很方便地了解每个版本的变化。

上图中是C#6.0对异常处理的一个特性,有了这个标记可以快速地定位到语言特性讲解的范围。并且在合上书的时候在书的侧面也能够看出哪些地方有这些标记,方便定位和查找。

这种Begin、End的标记从2.0到7.0,因为本书是7.0本质论,所以7.0的背景颜色最深,2.0最浅。

内容

只是有好的结构和排版,内容不好,我们很容易可以读完一本书,但收获甚少,本书在内容上有下面一些亮点。

设计规范

学习编程语言的语法,可以让我们写出能运行的程序,同样的一个功能10个程序员写出的代码可能都不相同,有的优雅高效,有的逻辑混乱。本书在每个章节中穿插着大量的「设计规范」,可以给我们很好的指引,避免入坑。

分类解说

考虑到阅读本书人员的水平的不同,本书在每个章节中重点突出显示了初学者主题和高级主题,让不同的人员可以各取所需。

考虑到有从其他开发语言转学C#的,书中有大量语言特性和其他语言对比的讲解,涉及到Java、C++、VB.NET等。

示例代码

  • 书中的示例代码没有平台依赖性,也就是说Windows和Mac上都能运行,这个对我这种Mac用户来说比较友好
  • 关键字加粗,关键代码有背景色区分,看起来比较清晰

总结

如果说想要用一本书来系统学习C#语言,那么这本《C#7.0本质论》将是首选。