tags:

views:

325

answers:

9

Are there any books you recommend for an intermediate c# programmer? If you check some of my questions you'll see that I'm not an expert, but I'm neither a beginner.

Most books I find waste my time with this is a for loop, this is how you declare a variable, etc. Which book can I buy that will teach me nifty tricks about C# I might not know about. Patterns?

Any input would be helpful! :)

+12  A: 

CLR via C# and C# in Depth are two classics.

C# in Depth, by Jon Skeet is excellent for taking a working knowledge of C# and deepening that knowledge to an expert level.

CLR via C# is great for learning the .NET CLR platform (e.g., it has the greatest description of the garbage collector I've ever read). So, it's important for learning the context in which C# programs execute.

Stephen Cleary
Would you say these are reference books or rather progress from chapter to chapter and can be read right through?
fletcher
They're definitely well-written enough to read straight through (I did). They also act well as references. *Depth* deals more with the C# language, and *CLR* deals more with the CLR, so they each can act as references in their own domain.
Stephen Cleary
@fletcher: C# in Depth is definitely designed to be read from start to finish. You can use it for reference once you're done, but if you try to just dip into (say) chapter 11 without understanding generics, lambda expressions etc from earlier chapters you'll get lost *really* quickly.
Jon Skeet
+6  A: 

C# In Depth is the book you're looking for.

You can purchase the MEAP Edition directly from Manning Publications:

Manning: C# in Depth, Second Edition

I would also suggest picking up Real-World Functional Programming. Even though you're a C# Developer, the book has some really good points that will help you better understand LINQ, Reactive Extensions, and the like.

They usually have some good deals if you combine two or more of their books. I picked them both up and got both books for the price of one.

Justin Niessner
The cheque's in the post... care to recommend Groovy in Action at the same time? ;)
Jon Skeet
@Jon Skeet - Haha...if you'd stop writing (or at least contributing) to such good books, I wouldn't have to recommend them. And if you send me a copy of Groovy in Action to review, I'd probably add it to my recommendation list (although not for a C# Developer) ;-).
Justin Niessner
+2  A: 

Check out "CLR via C#" by Jeffrey Richter if you want to learn more about how your code actually works under the hood.

Check out this old post for tips on design pattern books:

http://stackoverflow.com/questions/105049/what-are-the-best-design-patterns-books-you-have-read

Longball27
Kris Krause
+5  A: 

c# In Depth by Jon Skeet is a great resource to take your c# knowledge up a level.

The Early Access edition is currently available too.

Rex M
Kris Krause
+2  A: 

If you want a very good book about how C# works under the hood, I would recommend Jeffrey Richter's CLR via C# book. It really spells out why things are the way they are with C#.

It doesn't go into patterns, but you will learn SO much about the right way to use C#. It's definitely not a beginner's book...but great for intermediate and experienced developers.

Hope this helps!

David Hoerster
+3  A: 

Essential C# 4.0 is a great reference for how particular aspects of C# work and interact with the CLR and the framework.

It's like having a little Eric Lippert on your bookshelf.

Ron Warholic
There's a scary thought. And I note that it is rather more like having a little Mark Michaelis on your bookshelf.
Eric Lippert
A: 

I have PRO C# by Apress. No hand holding with loops and other basic programming via the Pro Apress books. They go into other details like the CIL output of C# and when to use tools like anonymous delegates. As far as design patterns I really enjoy the Head First version. Its based off the GoF book, but what's really cool is how great a read it is. They spent alot of time studying human learning patterns to put out this wonderful guide.

P.Brian.Mackey
A: 

If you would like to pick up a few new tips and tricks, you could check out

Effective C#, Bill Wagner

Also there are a few "classics" to help become a better developer, although not c# specific. My best tip is:

Clean Code, Robert C Martin

Markus Andersson
And don't forget the sequel: More Effective C#.
Eric Lippert