Lately I’m finding myself in an big puddle of mud, and feeling that I’m getting outdated really fast, everyone around me are talking POCO’s, IoC, DI, TDD, DDD, BDD etc.
Even though, I know what the acronyms are, I feel more an more uncertain about when to use what, how to apply, etc. I still feel that I can call myself an good developer, having good grasp of what is going on, I have to agree to lot of what Torbjørn writes here: http://blog.kjempekjekt.com/2008/12/28/a-bli-en-net-ninja/
So, for starters, I have been bugging my twitter colleges about where should I start, what books to read, I have so far, come up with this list: (no order yet)
Domain-Driven Design: Tackling Complexity in the Heart of Software (Hardcover)
by Eric Evans (Author)
xUnit Test Patterns: Refactoring Test Code (Addison-Wesley Signature Series) (Hardcover) by Gerard Meszaros (Author)
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series) (Paperback)
Code Complete: A Practical Handbook of Software Construction (Paperback)
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) (Hardcover)
by Erich Gamma (Author), Richard Helm (Author), Ralph Johnson (Author), John M. Vlissides (Author)
Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams (Paperback)
by Steve Maguire (Author)
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition) (Microsoft .NET Development Series) (Hardcover)
by Krzysztof Cwalina (Author), Brad Abrams (Author)http://www.amazon.com/dp/0321545613
Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series) (Hardcover)
by Martin Fowler (Author), Kent Beck (Author), John Brant (Author), William Opdyke (Author), Don Roberts (Author)
Working Effectively with Legacy Code (Robert C. Martin Series) (Paperback)
by Michael Feathers (Author)
Head First Design Patterns [ILLUSTRATED] (Paperback)
by Elisabeth Freeman (Author), Eric Freeman (Author), Bert Bates (Author), Kathy Sierra (Author)
POJOs in Action: Developing Enterprise Applications with Lightweight Frameworks [ILLUSTRATED] (Paperback)
by Chris Richardson (Author)
These two I have read, and I own the PoEAA, but I need to restock the PP book I guess:
The Pragmatic Programmer: From Journeyman to Master (Paperback)
Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series) (Hardcover)
by Martin Fowler (Author)
That's a lot of books, and it will take a lot of time to cover them all, so without knowing exactly what you want to learn, here's a suggestion for how to go about it:
Read these first:
Pragmatic Programmer - Quick, easy and qood read.
Head First Design Patterns - Much easier to read than DP, and a better place to start.
DP - Again a must read. But it isn't as readable, so it will be heavier. HFDP will cover several core patterns, so you could consider postponing this.
Clean Code - Good read on writing quality code.
PoEAA - First 100 pages or so of PoEAA, briefly look at the rest of interesting patterns. No need to look into the details until you need them.
Domain-Driven Design - Great book. You might consider just reading the quick overview, but you ought to give the full book a go as well. Not quite sure what to recommend given the range of things you want to cover.
Refactoring - Refactoring is important. Ensure you get the principles at least. Don't bother learning the specifics of many of the smaller refactorings, Resharper will help you with lots. Consider having a look at Refactoring to Patterns instead.
xUnit Test Patterns - sure.
Not so much:
Framework design guidelines - Have a look at the TOC, and check interesting sections, but don't read cover to cover.
Working effectively with Legacy Code: You should read it, but don't tackle it first unless you need to tackle large existing legacy codebases
Code Complete - Great book, but it's big, and Clean Code covers lot's of the same topics.
Debugging the Development Process