C# and .NET has become the official programming platform at my company for all new IT projects. I'm a bioinformatics scientist with 15 years of experience with C, C++, and Perl. And, fortunately, I'm not in IT, so I don't have to do my work using C#. But I anticipate having to work on a project with a C# programmer, so it's time for me to learn C#.

I'm old-fashioned, so I like to learn from books. In your experience, what books have you found useful for learning C#?


I probably wouldn't give this reply to a person who's just starting programming, but since you seem to have a lot of experience I will recommend two books.

One is about C# specifically: Professional C# 2008. This is a thorough, good introduction into the language. I own the 2005 version and it's great as a reference too.

And the other one is about object oriented architecture. If you don't mind reading the dry, heavy stuff, try Applying UML and Patterns.

You could also try Code Complete as the second book, because it gives you a pretty good introduction into the WHY's of OO, as well as best practices when coding. Its code examples are in several different languages.

+8  A: 

If you have such experience in programming, I would recommend you C# 3.0 in a Nutshell from Joseph Albahari & Ben Albahari to dive into C#:

C# 3.0 in a Nutshell

  • Opening chapters concentrate purely on C#, starting with the basics of syntax, types and variables, and finishing with advanced topics such as unsafe code and preprocessor directives

  • Later chapters cover the core .NET 3.5 Framework, including such topics as LINQ, XML, collections, I/O and networking, memory management, reflection, attributes, security, threading, application domains and native interoperability

+3  A: 

It might not be your cup of tea, but I was fairly fond of Headfirst C#. The text is breezy & explained well enough, but the constant examples give something to sink your teeth into. The main caveat is that I didn't always feel like they motivated why the example code is idiomatic C# when I could think of other ways to accomplish the same goal.

C Hogg
+4  A: 

In addition to learning C#, it's also important to know what's available in the BCL (Base Class Libraries). I think the best book I've read on that topic is CLR via C# by Jeff Richter. It's a lot of information, but it's very well presented and really helps you understand how the CLR and BCL work.

Sean Carpenter
+7  A: 

I liked Jon Skeet's C# in Depth due to the way it concentrates on the evolution of the language from version 1 to version 3. I wouldn't recommend it as your first C# book (nor would Jon, I seem to recall), but if you have another book that teaches you the basics, this one will help you understand why C# 3 is the way it is.


Skip the books, watch some videos:


Bryan Denny

Since you have some C/C++ experience you may also want to consult the C# language spec.

+2  A: 

Before I learned C#, I knew C++ and C.

I learned C# with the book C# Step by Step 2005 which was a great introduction for me and a great reference while I was learning the language. There is a 2008 version although, I have no experience with it.

+1  A: 

C# Unleashed was fantastic for me. Both as reference, and examples.

Brett Veenstra
+1  A: 

Jesse Liberty = C# 3.5 I have been a fan of his since the Second Edition on 1.1 =>