A C# Reading List by Eric Lippert (ZZ)

标签: c#listbooksmicrosoftcompilerannotations
797人阅读 评论(0) 收藏 举报

//z 2012-5-18 10:29:00 AM IS2120@CSDN
essential .net
CLRvia C#
The C# Programming Language, 4th edition by Anders Hejlsberg, Mads Torgersen, Scott Wiltamuth and Peter Golde

Essential C# 4.0 by Mark Michaelis 
C# In Depth, 2nd Edition by Jon Skeet

Effective C#, 2nd Edition by Bill Wagner
More Effective C# by Bill Wagner

A C# Reading List by Eric Lippert

//z 2012-3-28 15:04:03 PM IS2120@CSDN
C# expert Eric Lippert discussessome of the books he recommends to others and cannot live without himself.

Eric Lippert is a PrincipalDeveloper on the C# compiler team at Microsoft and a member of the C# languagedesign team. His blog,FabulousAdventures in Coding, is mostly about the design and implementationof programming languages, but also makes occasional forays into subjects heknows next to nothing about, like piano tuning, large-scale electrical powersystem safety, and relationship advice. He’s also a frequent contributor to the C#tag on StackOverflow. When not writing about programming languageshe can be found attempting to keep histiny sailboatupright in the middle of the Puget Sound.


As someone who reads and edits a lotof programming books, I’m often asked for book recommendations. Here are someof my favorites:

Sams Teach Yourself Visual C# 2010 in 24 Hours byScott Dorman
//z 2012-3-28 15:04:03 PM IS2120@CSDN
I’m not thrilled with the title – I strongly agree with Peter Norvig, who oncenoted thatten years ismore like the amount of time it takes to really master a difficult craft.But I am thrilled with the contents; for the money, this is a really solid bookfor the beginner C# programmer. What I particularly like aboutScottDorman’s book is that he does not make the pedagogical error made bya lot of other “beginner book” writers of introducing the material in the orderhe learned it; rather, he introduces the material in order of increasingcomplexity, even if that does not mimic the historical development of thelanguage.

Essential C# 4.0 by Mark Michaelis
C# In Depth, 2nd Edition by Jon Skeet

These two are the books I recommendmost often for the intermediate-to-advanced C# developer. ThoughMark Michaelis’s book does have a fair amount ofinformation for the beginner C# developer, it best serves either somewhatexperienced C# developers or developers experienced in other languages who arecoming to C#.StackOverflowlegendJonSkeet’s book assumes that the reader is already familiar with thebasic features that have been in the language since C# 1.0. Both books arewell-named:Essential C# delivers the essential information you need,andC# In Depth really goes into depth on some of the more obscurecorners of the language. Both books concentrate heavily on the C# languageitself, with occasional forays into describing the broader .NET infrastructure.I also particularly like Jon’s dry British humor laced throughout the book.

Effective C#, 2nd Edition by Bill Wagner
More Effective C# by Bill Wagner

Neither of these books are in anyway tutorials for the beginner programmer; rather, each delves into fiftyspecific and often subtle aspects of achieving high-quality C# coding. Thesebooks help the reader understand those language specifics at a deep level.BillWagnerreally gets it; he always explains difficult subjectsboth clearly and accurately. If you want to read even more about the best (andworst!) practices of C# developers, also check outBill’s articles on the MSDN Developer Center.These books and Bill’s articles help make good C# programmers into great ones.

The C# Programming Language, 4th edition byAnders Hejlsberg, Mads Torgersen, Scott Wiltamuth and Peter Golde

This is of course the one book Icannot live without; it is constantly open on my desk and full of post-it noteannotations. It is the definitive specification and explanation of the C#language, containing more information than even the MSDN documentation on thelanguage. Though you can conveniently download the specification for free, I recommendthat people also consider buying the print edition. The print edition isannotated by a large number of C# experts, including myself and theaforementioned Jon Skeet and Bill Wagner. The annotations point out, explainand justify some of the trickier points of language design that thespecification itself glosses over.

I’m extraordinarily fortunate inthat I’ve had Anders, Mads, Scott and Peter sitting down the hall from me forthe last six years. You don’t have that benefit, but the next best thing tobeing able to ask the design team in person for an explanation of how C# worksis to have their book within arm’s reach. Get the specification!

Java Puzzlers by Joshua Bloch and Neal Gafter

One might wonder what on earth isthis book doing on my list of books for C# programmers, particularly since I’venever written so much as a line of Java code. I love three things about thisbook: First, it was written with such an evident sense of fun. Second, everydevious trap that Neal Gafterand JoshuaBloch lead the reader into is actually a lesson for languagedesigners; if the developer is falling into a trap, that’s the fault of thelanguage designers for not making the trap easier to avoid. Third, over half ofthe pitfalls, traps and corner cases described in this book cause theequivalent C# program to produce a warning or error! The best mistakes to learnfrom, in language design and in life, areother people’s mistakes.

I am extremely fortunate to haveworked with Neal on the C# design and implementation team for several yearsnow, and we enjoy presenting similar C# puzzles to our coworkers and customers;perhaps someday we’ll write aC# Puzzlersbook.

Introduction to Algorithms, 3rd Edition by ThomasH. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Purely Functional Data Structures by ChrisOkasaki

These last two books have nothing todo directly with C# at all, but nevertheless I consult them frequently. I seeIntroductionto Algorithms on many bookshelves in Microsoft offices; there is a reasonwhy people are still hauling around this enormously thick and heavy book fromtheir undergraduate days. It is a great reference when you need to refreshyourself on the details of how to balance a binary tree or deduce theasymptotic efficiency of an algorithm from first principles. Many professionaldevelopers with CS degrees do not use the theoretical principles they studied ona daily basis, but we on the compiler team certainly do. And line-of-businesssoftware developers can also benefit from having a solid understanding of CSprinciples.

We are in a bit of a functionalprogramming renaissance right now. Functional languages like F# are gaining inpopularity, and ideas from purely functional programming languages are makingtheir way into mainstream object-oriented languages. LINQ in C# and VisualBasic, for example, was heavily influenced by Haskell-style monadic query comprehensions.Also, purely functional data structures work well in highly concurrentprograms, which we’re seeing more and more of as many-core machines continue tofall in price. The big thick algorithms book is primarily concerned withtraditional data structures full of mutable arrays, stacks, queues and so on;Chris Okasaki’s thin, elegant book is a great survey of how to build somepretty complex data structures out of immutable, threadsafe, memory-efficientparts. A lot of the material in the book is also available in his thesis, whichis availableonline.The comparatively terse syntax of the coding examples of his book take somegetting used to for C# programmers; F# programmers will have a much easiertime.

CLR via C# is by all accounts an excellent book;however, I have never read it myself. (I had no need to learn about theCLR via C#; I learned about the CLR via the CLI specification.) In goodconscience I can only recommend books that I've actually read.

I've met Jeff a couple of times and he's a perfectly nice fellow; I havenothing against him whatsover. It simply never occurred to me to *recommend* abook that I have not read and do not own. If you think it's reasonable torecommend books that you have not read and do not own then, well, I guess youand I disagree on that point. Similarly, I don't think it is reasonableto publically insult people I don't know; you and I disagree on that alsoit seems.

//z 2012-3-28 15:04:03 PM IS2120@CSDN

Eric Lippert推荐的C#书单

Eric Lippert是微软C#编译器和C#语言设计小组的重要成员,他还经常出没于Stack Overflow社区,解答开发者提出的问题。其中被问到最多的问题是:能否推荐一些学习C#的好书。最近,在接受InformIT采访时也被问到了这个问题,于是Eric列出了一份C#书单。 Sams Te...
  • wangzhen209
  • wangzhen209
  • 2017-01-18 16:30
  • 440

A Filesystems reading list

KHB: A Filesystems reading list August 21, 2006 This article was contributed by Valerie Henson We've all been there - you're wanderin...
  • ganggexiongqi
  • ganggexiongqi
  • 2014-02-09 16:12
  • 1062

Reading package lists... Error! 解决方案

ubuntu 下安装python开发包,执行命令 sudo apt-get install python-dev,报错; Reading package lists... Error! E: Encountered a section with no Package: header ...
  • my2010Sam
  • my2010Sam
  • 2014-01-23 09:45
  • 5231

Sublime2编译Python程序EOFError:EOF when reading a line解决方法

在Sublime2中编译运行Python文件时,如果代码中包含用户输入的函数时(eg. raw_input()),Ctrl+b编译运行之后会提示以下错误: 解决方法:安装SublimeREPL 打开Sublime Text2编辑器,按 Ctrl+Shift+p,输入install,选择P...
  • bravelee2009
  • bravelee2009
  • 2013-07-18 11:06
  • 10741

【自己总结】Sublime2编译Python程序EOFError:EOF when reading a line解决方法

sublime2运行用户输入数据程序:  代码: a=raw_input("input a:") b=raw_input("input b:") if a>b: print (a+">"+b) elif a...
  • u012803639
  • u012803639
  • 2016-04-11 19:36
  • 1060

Linux Readingpackagelists Error! 解决办法

今天在安装软件的时候遇到了一个问题:正在读取软件包列表... 有错误!利用sudo apt-get update,也是报同样的错误.在stackoverflow中找到了答案: sudo apt-get clean cd /var/lib/apt sudo mv lists lists.old...
  • u013050857
  • u013050857
  • 2015-10-25 09:58
  • 865

hibernate逆向工程时出现Reading schema error解决

问题描述 Reading schema error: Could not get list of suggested identity strategies from database. Probably a JDBC driver problem... 上述的这个错误,作者...
  • zhugewendu
  • zhugewendu
  • 2017-06-20 09:36
  • 471

sublimetext2 中运行Python提示EOFError: EOF when reading a line

要sublimeText2中编译运行Python文件时,如果代码中带有需要用户输入的函数时(raw_input/input)会提示以下错误 EOFError: EOF when reading a line 解决方法: 一、安装sublimeREPL    ...
  • songzhiyong1121
  • songzhiyong1121
  • 2013-11-02 11:20
  • 2592

There was a problem reading this document (110).解决方案

  • ytingone
  • ytingone
  • 2014-08-15 15:42
  • 1254

A Distributed Systems Reading List

A Distributed Systems Reading List Introduction I often argue that the toughest thing about distributed systems is changing the way you think....
  • chenstrace
  • chenstrace
  • 2016-01-08 14:50
  • 114
    公 告



    物皆有价 风雨兼程

    Be Well.@Eat better. Get active. Unwind.

    BG57IV3.Hello World!



    $ € ₤ ₤ € $