<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx</link><description>Just a couple of quick links today. 
 First: One of the questions I get most frequently is " can you recommend some good books about learning to program better in C#? " The question is usually asked by a developer; the other day I was surprised to get</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10243681</link><pubDate>Fri, 02 Dec 2011 10:14:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10243681</guid><dc:creator>Spender</dc:creator><description>&lt;p&gt;I&amp;#39;m really surprised to learn that you&amp;#39;ve &amp;quot;never written so much as a line of Java code&amp;quot;. Given the obvious parallels between C# and Java have you never been tempted to have a play with the competition, or is this a decision taken to ensure a &amp;quot;clean room&amp;quot; environment?&lt;/p&gt;
&lt;div class="yellowbox"&gt;
&lt;p&gt;When Java was first released in 1995&amp;nbsp;it really hit a &amp;quot;sweet spot&amp;quot;; the Java designers did a really good job of making a language that was clear to C/C++ programmers while avoiding many of the pitfalls of C and C++. Its type safety, automatic memory management, and so on,&amp;nbsp;were very attractive. At that time, I was indeed intrigued by Java and considered learning it. However, there were no courses at Waterloo that I was interested in that did programming work in Java; I was finishing up my degree and interning at Microsoft on the Visual Basic team, so there was no professional need to learn Java, and so I never did.&lt;/p&gt;
&lt;p&gt;Nowadays, I have no impetus whatsoever to take Java for a spin. I work every day in a language with a&lt;strong&gt;unified type system, unsigned integers, high-precision decimals, nullable types, tuples, pointers, partial classes, anonymous types, properties, events, user-defined operators, user-defined conversions, indexers, object and collection initializers, explicit interface implementations, optional arguments, named arguments, iterator blocks, extension methods, conditional methods, partial methods, generics that actually work, lexical closures, homoiconic expressions, query comprehensions, local variable type inference, generic methods, generic method type inference, checked arithmetic, verbatim strings, conditional compilation with regions,&amp;nbsp;native/COM interoperability, dynamic runtime analysis and typesafe generic covariance, &lt;/strong&gt;just to name three dozen&amp;nbsp;major features that Java lacks.&amp;nbsp;No, I am not tempted to use Java any more than I am tempted to see how well I can type with one arm tied behind my back. I don&amp;#39;t need to try it to have a pretty decent guess about how unpleasant it would be.&lt;/p&gt;
&lt;p&gt;That said, of course it is valuable to understand the characteristics of other languages when designing one yourself. Fortunately I do work with several people who used to be Java language designers and implementors, so I get all the insight I need into the pros and cons of Java by just asking them for opinions.&lt;/p&gt;
&lt;p&gt;-- Eric&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10243681" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10240788</link><pubDate>Wed, 23 Nov 2011 11:07:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10240788</guid><dc:creator>Vitaliy</dc:creator><description>&lt;p&gt;Agree with previous commenters, I was shocked by not seeing Jeffrey&amp;#39;s CLR via C# in the top of the list.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10240788" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10239308</link><pubDate>Mon, 21 Nov 2011 23:57:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10239308</guid><dc:creator>Nis L. Simonsen</dc:creator><description>&lt;p&gt;I&amp;#39;m also surprised by the lack of CLR via C#. Is this due to the material being covered by the books you did recommend? Admittedly, I never read Wagners, but afaik those are a whole different ballgame.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10239308" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10238493</link><pubDate>Fri, 18 Nov 2011 12:29:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10238493</guid><dc:creator>Estevan Cruz </dc:creator><description>&lt;p&gt;I&amp;#39;ve read about half of those ... Jeffrey Richters CLR Via C# is my favourite book on C#. &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10238493" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10238122</link><pubDate>Thu, 17 Nov 2011 13:59:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10238122</guid><dc:creator>James Jenkins</dc:creator><description>&lt;p&gt;C# in a Nutshell is a great book for those who already know C# or at least some other language. I would suggest learning C# from online videos or MSDN!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10238122" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10236317</link><pubDate>Fri, 11 Nov 2011 20:37:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10236317</guid><dc:creator>Nick</dc:creator><description>&lt;p&gt;Thanks for the reading suggestions. &amp;nbsp;If you were to recommend a single book out of that list, which would it be?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10236317" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10236152</link><pubDate>Fri, 11 Nov 2011 12:38:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10236152</guid><dc:creator>Eric Main</dc:creator><description>&lt;p&gt;Excuse me for off topic, but I have some questions about Roslyn Project:&lt;/p&gt;
&lt;p&gt;1) Code for creating and modifying syntax tree is chatty, and this fact is clear for many people. The only way to improve this is to add to language some functional constructions, something like F# Active Patterns, and syntax for immutable object &amp;quot;modification&amp;quot; (now we have problem that calling method with optional value cannot be distinguished from explicitly setting null value) . What do you think about being more functional? isn&amp;#39;t it more appropriate for compiler building?&lt;/p&gt;
&lt;div class="yellowbox"&gt;
&lt;p&gt;You make some good points. We have been concerned on the C# design team for some time now that programming in an immutable style is somewhat &amp;quot;chatty&amp;quot; as you say. It would be nice if it were more elegant. We&amp;#39;ve got a few ideas but nothing that is in good enough shape to talk about it yet. -- Eric&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;2) The slogan &amp;quot;open compiler&amp;quot; cannot be the goal.&amp;nbsp;This is the&amp;nbsp;viewpoint of the manufacturer, not the customer. Better goals are maybe &amp;quot;leverage metaprogramming&amp;quot; as Nemerle or Scala (project Kepler) do. Or &amp;quot;support DSL writing&amp;quot;. Don&amp;#39;t you think that open C# compiler is insufficient for real goals?&lt;/p&gt;
&lt;p&gt;Excuse me for my english.&lt;/p&gt;
&lt;div class="yellowbox"&gt;
&lt;p&gt;You are absolutely right; there is quite a bit of confusion about what Roslyn is, and what the goals of the project are from the standpoint of consumers. The goal of the project is neither to allow metaprogramming nor to support DSL writing. I certainly expect that there will be people who use Roslyn to do those things, but those are not &lt;em&gt;explicit&lt;/em&gt; goals. Rather, the goal is to make available a set of basic low-level code analysis tools for C# and VB, so that our customers can use those low-level code analysis tools to build even better code analysis tools. The market of &amp;quot;people who build code analysis tools&amp;quot; is small, but one of the reasons it is small is because the barrier to entry is so high! We hope to greatly lower that barrier. -- Eric&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10236152" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10236137</link><pubDate>Fri, 11 Nov 2011 11:27:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10236137</guid><dc:creator>Huw</dc:creator><description>&lt;p&gt;A good list indeed. The only other book I always recommend is &amp;quot;CLR via C#&amp;quot;. Very good for understanding what&amp;#39;s happening underneath the covers as it were. Though both Jon Skeet&amp;#39;s book and the effective books are excellent as well.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10236137" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10235928</link><pubDate>Thu, 10 Nov 2011 20:18:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10235928</guid><dc:creator>Thomas Levesque</dc:creator><description>&lt;p&gt;Great list ! I rarely read programming books, but you made me want to read Effective C#...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10235928" width="1" height="1"&gt;</description></item><item><title>re: A C# Reading List</title><link>http://blogs.msdn.com/b/ericlippert/archive/2011/11/10/a-c-reading-list.aspx#10235919</link><pubDate>Thu, 10 Nov 2011 19:57:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10235919</guid><dc:creator>Jacob</dc:creator><description>&lt;p&gt;Really? No C# in a Nutshell? That seems like an unfortunate omission.&lt;/p&gt;
&lt;div class="yellowbox"&gt;
&lt;p&gt;I&amp;#39;ve never read &amp;quot;C# in a Nutshell&amp;quot;, so I can&amp;#39;t in good conscience recommend it one way or the other. I have heard others praise it. Incidentally, I was the technical editor of &amp;quot;VBScript in a Nutshell, 2nd edition&amp;quot; and I can heartily recommend it. :-)&amp;nbsp;&amp;nbsp; Eric&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10235919" width="1" height="1"&gt;</description></item></channel></rss>