偶对学习C#以及理解.Net平台的一些看法(二,Junior Bibliography)

二,Junior Bibliography

续上一篇 Prerequisites

不可否认小马哥是软件学院里最有实力的老师之一,至少他的.Net课程激起了偶对CS的兴趣,将偶引入了CS的大门。但对于学习.Net是否需要阅读相关书籍这个问题,偶和小马哥的理念出现了分歧,hoho

偶一直认为小马哥是典型的实用主义者,奉行"实践出真知"这个套路,他认为从初学到理解再到熟悉.Net这个过程需要大量的实践,这一点偶是很赞同的,但是他认为学习.Net不需要阅读相关的书籍,换句话说,小马哥认为学习.Net,只需要做一些项目,遇到问题百度GoogleMSDN,在实践的过程中就可以掌握.net技术。

偶认为任何技术都是要有一定理论的基础的,只有实践而缺乏理论的指引的话,很有可能会把你指引到一个错误的学习方向上而你本身还毫不知情。小马哥的看法在学习.net基本语法这个范畴下是成立的,然而想深入理解.net技术的话,不阅读经典的书籍而只去做大量的项目几乎是不可能的,况且,如果对.net的理解仅仅停留在那些简单语法知识的堆砌上的话,是很难完成一个高质量的项目的(For example: string s=""; while(i++<10000){s=s+","+1;} 从语法上说它一点错误都没有,但它的执行时间绝对会give you a big suprise)。

偶在学习.Net的过程中,相关的书籍看了不下十来本,堆在一起估计能有半米多高吧,这些书有粗制滥造的,也有通俗易懂的,也有精深玄奥的。偶筛选出几本偶认为最值得看的图书,按照从入门到深入理解的顺序,逐一介绍一下。


Programming C# 4th Edition
中译本已由电子工业出版社出版



这一本是入门级的.Net图书吧,偶在前一篇Prerequisite里面曾提到过,良好的基础是深入理解.Net的充要条件,但是肯定还会有一些童鞋就是迫不及待想学习下新技术的,这本书属于那种很初级的入门读物,对于基础的概念(甚至连流程控制语句)都写的很详细,因此很适合编程基础比较薄弱的童鞋阅读。

此书是偶学习.Net的看的第一本书籍,也是偶第一次接触O'Reilly动物世界系列。此书第四版在Amazon的评价还是很高的。篇幅适中(虽说有600余页,但内容实际上并不多)。这本书花了很大一部分篇幅来讲解C#的语法特性(So我认为这本书是很不错的入门级读物),然后相对简练的介绍了一些ASP.net,ADO.net以及WinForm的内容。书中的代码虽然实践意义不大(不像K&R的Tcpl里面的代码那么工程化),但是都很简单易懂,因此初学者很有必要将这些代码敲一遍,从而对C#的语法特性及一些基本类库的使用有一个大概的了解。

然而这本书并没有涉及到.Net平台的讲解,一些相对白盒的内容(比如说装箱拆箱抑或是值类型引用类型这些相对深入的概念)也仅仅是一笔带过而已,so这本书仅仅适合入门阅读,了解C#的语法而已。如果要对.Net进行深入的研究的话,这本书则是远远不够的。

PS:此书已出第五版中文版,但是价格居然升到了99元,况且内容的变化并不大,so大家在购买之前最好斟酌一下

一句话评论:初学者的C#语法和类库API小词典

Understanding .Net
中译本 .Net大局观



严格来说,这本书并不算是一本.Net平台的教程书籍,更算不上一本C#的参考书籍。正如这本书的作者所说,Understanding.Net,就是对.Net2.0平台的一个Overview。

之所以会推荐这本书,并不是因为这本书里面提到了多么高深的理论抑或是给出了多么精妙的见解,这本书的最大特点,就是把你带到了一个相对高的位置来俯瞰.Net平台,从而对.Net有一个整体的认识,而非仅仅停留在语法细节抑或是类库使用这样的细节问题上。毕竟,在细节上刨的过深的话有可能会导致自己在错误的路上越走越远,偶以前在学习C++的时候就犯过这样的错误。这和写作文要先列大纲的道理是一样的。

这本书首先对.Net平台的概念以及它的组成(CLR/FCL/编程语言/WebService)作了一个简练的介绍。同时用对C#这个VB和Java以及C++的杂交语言进行了一些特性上的阐述,并同VB.Net以及托管C++作了一个语法上的比较。之后就是ASP.NET,ADO.NET,Win Forms的一些简要介绍。虽然每一部分都很简短,但足以让你了解到这个技术的大体模型,从而在今后的学习中不至于迷失方向。

一句话评论:.Net平台的一幅蓝图

Pro C# 2008 and .Net 3.5 Platform
中译本--C#与.NET 3.5高级程序设计



这本书是偶在Amazon网站闲逛时搜索.Net这个关键字发现的,毕竟,排在第一位,相当显眼,也是通过这本书,让偶知道了Apress这个出版社以及其旗下的Pro系列。

当时这本书没有中文版,但看了Amazon的读者评论就按捺不住了,直接到Rapidshare干下来一本EBook,然后拿着电子词典直接开干,直到看完(认真的研读了C#基础知识以及高级知识,不过后来的各种框架就是走马观花了)。

这本书的分量十足(偶印象中原版EBook有1400多页),而且涉及的内容也很广,从.Net2.0的基础语法特性,到新增的LINQ和Lambda表达式,以至WF,WCF和WPF,甚至连当时(07年末)刚出炉不久的Silverlight都有涉及,称其大杂烩可谓名副其实。

这本书明显要比之前提到的ProgrammingC#深入了很多,在提供了更多的细节性的C#语法特性的同时,也对一些基础但核心的CLR概念进行了阐述(比如说对象的创建的过程,GC的工作流程,甚至在讲述as/is以及直接强转这三种C#类型转换时搬出了MSIL),这样的写法对于想要进阶学习.Net童鞋来说是再好不过的了。此外,这本书还有一个很有趣的特点:它把OO的基本思想贯穿到了C#高级语法特性中(详见原书的Three pillars of Object-Oriented Programming),并拿出了不少不错的例子来展示OO在C#中的实际应用。对于早晚都要接触OO的童鞋来说,这再好不过。

一句话评论:.Net平台技术大杂烩

PS:突然想起自己在大三的时候初学.Net,不知道该学些什么,于是求助于学院创X实X中心的"学长"们,结果他们的答案都是出奇的一致:到MSDN上查就是了。是的,MSDN给了偶很大的帮助。在实习时,在学习时,碰到不熟悉的基类库API,总会去MSDN查个究竟,but do pay attention,这是偶在有了一定的基础的条件下,把MSDN作为一个开发辅助工具。So,MSDN更像是一部.Net库函数的大辞海,那些让初学者去阅读MSDN来学习.Net的创X实X中心的"学长"们,你们在初学英语的时候,莫非是从阅读牛津高阶英语大辞典直接上手的?

下一篇:Senior Bibliography
posted @ 2009-09-29 22:26  _Luc_  阅读(1684)  评论(4编辑  收藏  举报