大家都知道,ThoughtWorks的技术雷达每年都会发布两到三次,它不但是业界技术趋势的标杆,更提供了一种卓有成效的方法论,即打造自己的技术雷达。在这种思想的驱动下,我们诞生了自己的读书雷达(目前已推出最新版)。但这份雷达略显high level,缺乏某一具体领域的详细书单。又由于最近很多同事都跟我讨论过C#书籍的问题,于是突发奇想,“滥竽充数”地搞了这份C#读书雷达,权当是读书雷达于C#这一领域的补充。

跟技术雷达和读书雷达一样,.NET读书雷达也是非常主观的。并且我只会列出我读过(或粗略翻看过)的书籍,所以难免会有疏漏(如果有其他好书,欢迎各位补充)。

这份雷达同样分为四个象限:语言、应用、底层和规范,并且包含三个环,分别为初级、中级、高级。

基础

这个象限下的书籍都是不错的入门读物,从C#基本语法到高级应用(ASP.NET、WCF),但都是泛泛而谈,要想了解更深入的内容,还是应该阅读相关的书籍。

这三本都是大部头,适合放到案边以供随时查阅。个人觉得有其中一本就足够了。

技巧

本象限的书籍介绍C#的一些高级技巧,是学习C#的进阶读物。读了这些书,你就能写出高效优雅的C#代码。

前两本是Bill Wagner的大作,大名鼎鼎的Effective家族中的两位重量级成员。其内容包括语言习惯、资源管理、表达设计、动态特性、泛型、多线程、LINQ等等。两本书共包含100个行之有效的改善C#代码的tips,是便携C#代码的最佳实践,相信它们一定能帮助我们提升代码质量,增强可维护性。虽然这两本中文版书名容易让人迷惑,但只要记住它们的英文名(Effective C#和More Effective C#)就可以了。

《深入理解C#》是我打算重点推荐的,它是我阅读过的最好的C#书籍没有之一。它不但介绍了从C# 1开始到C# 5的所有特性,还解释了设计者为什么要这样设计。比如像迭代器块这样的特性,其他书籍很可能一笔带过,但本书却花整整一章去深入探讨,并且在补充材料中介绍了编译之后的状态机。

底层

说来奇怪,关于JVM的书籍如百花齐放,也不乏一些国产好书,但跟CLR有关的却凤毛麟角,翻来覆去就只有《CLR via C#》。但话说回来,这样的书有此一本也就足够了。本书涵盖CLR基础、类型系统、语言特性、核心机制和线程处理,常看常新,是居家旅行的必备。

如果您常逛.NET社区,一定知道赵三本,即著名.NET程序员老赵推荐的三本.NET书籍(均在本雷达中)。不过这“三兄弟”其实还后续了一位“四弟”,也就是《Pro .NET Performance》。这是我读过的第二本(第一本是《CLR via C#》)深入介绍.NET类型系统和垃圾回收的书,并且它的关注点在性能,这个领域的书籍也确实偏少。本书国内已经引进,正在翻译,不出意外的话明年应该能买到。

规范

前三个象限(基础、技巧、底层)逐渐提高和深入,有点像台阶。而“规范”这个象限有点像扶手,帮助我们更好地提高。

相比其他领域.NET(或C#)也非常缺乏规范类的书籍,这大概也是因为有《.NET设计规范》这本标杆在。本书的作者来自微软.NET Framework团队,讲述了他们在设计.NET时的一些决策过程,包括命名规范、类型设计,同时还有经验丰富的框架设计师、业界专家及用户给出的评注,为书中的许多规范增色不少。并且,它不仅对于.NET的代码规范,对于其他语言来说,也大有裨益。

《C#语言规范》是一本免费书(严格地说应该是文档而不是书),就安安静静地躺在我们安装的.NET Framework文件夹里。它是C#语言的说明文档,是以上所有书籍的最终依据。我以前会打印出来装订好,放在手边当字典翻阅。

以上就是我的C#读书雷达。

C#读书雷达的更多相关文章

  1. [转]ThoughtWorks(中国)程序员读书雷达

    http://agiledon.github.io/blog/2013/04/17/thoughtworks-developer-reading-radar/#rd?sukey=f64bfa68330 ...

  2. 【转载】张逸--ThoughtWorks(中国)程序员读书雷达

    原文地址:ThoughtWorks(中国)程序员读书雷达 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与 ...

  3. ThoughtWorks(中国)程序员读书雷达 —— 书籍下载整理

    ThoughtWorks(中国)程序员读书雷达 http://agiledon.github.io/blog/2013/04/17/thoughtworks-developer-reading-rad ...

  4. 读书雷达 l 业务分析师(BA)篇

    http://chuansong.me/n/412991951441 ThoughtWorks BA社区从2011年起就建立了BA书橱,根据大家的推荐选择了来自软件需求.商业分析.设计思维.软技能,以 ...

  5. ThoughtWorks(中国) 程序员读书雷达

    ThoughtWorks(中国)程序员读书雷达 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界 ...

  6. 推荐:ThoughtWorks(中国)程序员读书雷达

    部分转自张逸的博客:http://agiledon.github.io/blog/2013/04/17/thoughtworks-developer-reading-radar/ 长久以来一直对程序员 ...

  7. BA - 读书雷达10本必读书

    https://www.douban.com/doulist/43172796/ 用户故事与敏捷方法 入门篇之一: “是每个ThoughtWorks BA都读的经典入门书籍,详细介绍了用户故事及实用操 ...

  8. C#读书

    C#读书雷达   大家都知道,ThoughtWorks的技术雷达每年都会发布两到三次,它不但是业界技术趋势的标杆,更提供了一种卓有成效的方法论,即打造自己的技术雷达.在这种思想的驱动下,我们诞生了自己 ...

  9. 程序猿的道路~~(How to be a programmer?)

    程序猿的道路其实很简单,主要就是三条: Learn (学习), Practice(练习), Summary(总结) 推荐给新手程序猿两篇文章: 给程序员新手的一些建议 程序员技术练级攻略 当然了,整个 ...

随机推荐

  1. 用自己的算法实现startsWith和endsWith功能。

    String str=new String(); str="erty"; Scanner sc= new Scanner(System.in); System.out.printl ...

  2. 问题解决——开启Guest后仍无法共享打印机

    ==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...

  3. jasperreports+iReport制作报表笔记

    一. 准备工作 1. 下载相关工具:点击此下载相关工具,jasperreports-5.6.0-project.zip中有提供所需的jar包. 二. 安装ant 1. 解压apache-ant-1.9 ...

  4. linux 查看静态库,动态库是32位还是64位

    动态库: file xxx.so 静态库 objdump -a xxx.a

  5. android 查看解压后的.xml文件代码(axmlprinter2)

    axmlprinter2工具下载地址:http://pan.baidu.com/s/1o67eXtS 方法:1.将要查看的.xml文件复制到AXMLPrinter2.jar所在目录2.通过cmd 输入 ...

  6. [No00002E]关于大数据,你不知道的6个迷思

    还是那个观点:计算机,编程语言,互联网,大数据等等都只是工具! 导语:看过美剧<纸牌屋>没?知道这部"白宫甄嬛传"为什么会火吗?靠的是大!数!据! 过去两年,在 Net ...

  7. [No00000C]Word快捷键大全 Word2013/2010/2007/2003常用快捷键大全

    Word对于我们办公来说,是不可缺少的办公软件,因为没有它我们可能无法进行许多任务.所以现在的文员和办公室工作的人,最基础的就是会熟悉的使用Office办公软件.在此,为提高大家Word使用水平,特为 ...

  8. NOI2004 郁闷的出纳员

    Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...

  9. oracle的substr函数的用法

    oracle的substr函数的用法 取得字符串中指定起始位置和长度的字符串   substr( string, start_position, [ length ] ) 如:     substr( ...

  10. window.execScript的兼容性写法

    把探嗅浏览器的操作提前到代码加载的时候,在代码加载的时候就立刻进行一次判断,以便让globalEval返回一个包裹了正确逻辑的函数 var globalEval = (function(){ var ...