你好
Veeam学院的未来学生经常向我们询问有关准备进入C#编程课程的书籍。 我们通常会推荐几种来源,并附有关于它们为何有用的评论。
但是,大多数编程书籍长于1K +页,阅读它们的内容要花一个多月甚至更长的时间! 因此,我们为Veeam学院申请人提供的所有建议仅作为指导,而不是强制性要求。
随着时间的流逝,我们总结了对每个出版物的评论,并最终获得了对于C#程序员的职业成长而言似乎不错的书籍清单。
我们将在简要介绍下进行简要概述。

以下是以下书籍的概述:
- J.里希特。 通过C#进行CLR
- 斯蒂芬·斯金(Stephen S. 演算法 开发指南
- 乔·阿尔巴哈里(Joe Albahari)。 C#中的线程
- Itzik Ben-Gan。 Microsoft SQL Server2012。T-SQL基础
- J. Skeet。 C#专业人士。 编程的精妙之处
- 乔·达菲 在Windows上并发编程
- 埃里克·弗里曼(Eric Freeman)等人 。 设计模式
- 谢尔盖·特普利亚科夫(Sergey Teplyakov)。 .NET设计模式
J.里希特。 通过C#进行CLR

读里希特就像用白色粉刷房间的墙壁一样。 我读过一次-涂在一层上。 在这种情况下,通常一层是不够的-油漆不能总是平整地摆放,并且不会像我们所希望的那样明亮-因此,最好将其覆盖并固定在另一层上,并随着时间的推移对各个位置进行着色。 通常,层数越多,房间越白!
每次阅读Richter时,您都会发现一些新东西。 重点并不是这本书的更新版本会定期发布(顺便说一句,它很受欢迎)。 即使阅读相同的版本,由于呈现材料的深度和广度,您也会发现有趣的地方。
许多人将本书称为C#程序员的“圣经”和“字母”。 但是,值得注意的是,它很少关注特定的编程语言-重点是.Net平台及其操作的基本原理。
因此,它仍然不能被视为C#教科书(对于初学者来说,这在一般情况下是可以接受的),但是我们可以说,这是任何专业.Net开发人员都必须读的书。 但是,即使在您刚刚开始职业生涯的情况下,Richter也会绝对帮助您避免很多错误,并使您可以更有效地编写程序,因为您将更好地了解平台。
那么里面是什么:
关于Microsoft .NET Framework公共语言运行时环境(CLR)内部结构的约1000页引人入胜的文字,以简单的语言并以友好的方式编写,得到了编程专家Jeffrey Richter的认可。
这些章节分为相关的子主题,但它们不能顺序阅读(甚至需要阅读)。 每章都有与其他章的链接,这使您可以方便地阅读各部分,并且使您不必再太过冗长地讨论那些现在看来特别困难或无趣的主题。
同样在本书的页面上,您将找到他们希望在C#和.Net采访中提出的大多数问题的答案。
对于具有.Net平台编程经验的专业人士,本书不需要广告。 对于初学者,我们强烈建议您不要将与她的相识放在长箱子里!
斯蒂芬·斯金(Stephen S. 演算法 开发指南

如果您已经掌握了基本算法的普通大学课程,并且需要在短时间内复习要点,那么这本书就是最好的书之一。
这不是教科书,而是实践中有效开发算法的指南。 这本书的特点是非常好的和易于理解的介绍,其中充斥着与现代文学的联系和有用的例子。 “人生故事”中的部分特别有启发性,作者在其中讲述了如何为自己职业中遇到的艰巨任务找到合适的解决方案。
本书分为两部分。 第一部分将使您快速回顾本课程中的算法要点(复杂性,数据结构类型,排序,使用图,组合搜索,动态编程等)。 在这里,您将收到有关算法开发的实用建议。
第二部分是结构和算法问题的目录,可帮助您找到工作中遇到的问题的解决方案。 提供了许多示例和有用的链接,并列出了现有的软件实现。

无论选择哪种编程语言,多线程都是现代开发人员面临的最困难的主题之一。 在编写高负载的分布式系统时,该主题特别重要,因此在
Veeam多线程学院要特别注意。
Joe Albahari的站点是熟悉该主题
的好地方,其中
包含他书中有关CLR环境中多线程的相关章节的结构化材料。
简而言之C# 。
在这里,您将找到使用流的示例:开始,结束,中断,锁,同步,同步上下文等。此外,还讨论了.NET流功能(线程池,异步方法),并行LINQ,SpinLock / SpinWait结构等。
如果您想更深入一点,那么我们推荐Joe Duffy撰写的这本书,其概述如下。
Itzik Ben-Gan。 Microsoft SQL Server2012。T-SQL基础

关于T-SQL基础的这本书对于长期熟悉该语言的初学者和经验丰富的开发人员都将很有用。 这本书的特点是介绍简单。 除了基本的SQL查询外,还介绍了表表达式,窗口函数和其他主题。 每章均附有大量示例和练习以巩固材料。
作者并没有绕过该理论,但是并没有用定理和证明来使本文过多。
即使在使用SQL多年之后,您也肯定会发现一些新东西,并且能够刷新和组织您的知识。
J. Skeet。 C#专业人士。 编程的微妙之处。

这本书有许多出色的评论,绝非偶然。 作者选择了一种类似于C ++语言创始人Bjorn Straustrup在其作品“ C ++语言的设计和演变”中使用的样式。 本书讲述了创建和开发C#语言的基本原理,展示了C#语言从一个版本到另一个版本的演变,并解释了为什么给该语言这种机会。 所有这些最终形成了C#语言感知的完整描述。 该书还包含作者的建议和实践经验,并通过大量示例揭示了该语言的精妙之处。 LINQ主题非常受关注。
J. Skeet的工作完全不同于Richter的书,尽管它也详细介绍了C#内部实现的功能。 我们认为,与Richter搭配使用,这本书将是深入研究C#和.NET Framework的绝佳工具。
可以读的评论之一
在这里 。
乔·达菲 在Windows上并发编程

在阅读Joe Duffy的作品时,您可以“煮”,但付出的努力是值得的。 这是Windows上最基础的多线程书籍之一。 认真的话题,足够的内容(超过1000页)以及对多线程底层细节的深入了解可能不是最容易阅读的内容。 但是,任何想要为Windows编写高效,容错和可扩展的代码(托管-托管和非托管-本机)的开发人员都不应绕过。
尽管这本书是十年前出版的,但它几乎涵盖了与多线程相关的所有主题:基本算法和同步原语,.NET中的异步编程模型,内存模型,无锁等等。
该书将理论和最佳实践与许多使用Win32和.Net API的示例结合在一起,并且还包含可在代码中使用的算法和数据结构的示例。
除了多线程之外,J。Duffy的著作还将帮助更好地理解Windows,CLR和.NET Framework的工作原理,并回答“为什么”的问题。
注意:此处未涵盖任务并行库(TPL),因为当时TPL尚未发布。 有关TPL的介绍,您可以推荐Stephen Cleary。
埃里克·弗里曼(Eric Freeman)等人。 设计模式

如果您还没有使用设计模式的丰富经验,但是想修复它,同时又巩固了您在OOP中的知识,那么本书可能会非常有用。 它的装饰风格相当不寻常(尽管对于Head First系列而言是传统风格)-它包含大量图片,任务和非正式描述,并配有大量示例,而它的书写却没有水,而且非常易于阅读。
在分析最流行的模式和相应的UML图的同时,在此与旁白一起说明了OOP的基本原理。
不要混淆代码示例是Java。 所有这些都非常简单,即使是新手开发人员也可以轻松地解决它们。 当C#开发人员发现浏览Java书籍很有用时,就是这种情况。
谢尔盖·特普利亚科夫(Sergey Teplyakov)。 .NET设计模式

与我们的评论中所涉及的其他文献不同,这本书最初是用俄语编写的,因此没有大多数现代英语翻译所固有的弊端。 但是,它的优势还不止于此。
这本书是由C#开发人员为C#开发人员编写的,这意味着您具有基本的OOP知识。 作者分享了他的经验,同时考虑了经典的方法和更适合.NET平台实现每种模式的方法。 在这种情况下,将分析每种方法的优缺点。
在整本书中,通过一个示例演示了使用考虑的模式的可能性,该示例使您可以创建模式世界的整体图。
您可以在此处阅读有关这本书的更多信息。
您将如何补充此清单?