Keeping up to date on the latest information is an important part of my life–on a number of subjects. Technology, business, entrepreneurship, process improvement–not counting other hobby interests–gives me a LOT to read and keep up on.
As you can see from the photo, (not withstanding the included photo of my old dog–who loved to pose for the camera), I love books. There are currently four book cases, two closets, and a few boxes left unpacked of various materials that I reference and refer.
Thankfully (as space becomes limited), my favorite publishers like Manning, have started focusing on eBooks–PDFs I can read from the comfort of a netbook or laptop. In addition to eBooks, blogs, twitter, and newsgroups provide a neverending array of information available online.
In regards to technology, here are a few books I recommend and blogs that I regularly follow. There isn’t a particular reading order, though, looking back, I have times that one resource clarified another. YMMV.
Books are fantastic resources; however, as time progresses, become more and more difficult to keep up-to-date. eBooks and MEAP programs help, but I fear the day I won’t be able to sit down with a good book and geek out in front of the fireplace.
The books in this section are currently on the shelf to read or in-progress. They’re outside the scope of the other sections, but will be moved there when I finish reading them.
ASP.NET MVC in Action
Jeffrey Palermo, Ben Scheirman, Jimmy Bogard
This is my current "in progress" book and so far, so good. I am half way through the MEAP book and recently downloaded the final version and feel the need to restart from the beginning.
Brownfield Application Development in .NET
Kyle Baley, Donald Belcham
Many of my projects at the office are "brownfield"–taking existing software OR processes and dragging them (sometimes kicking and screaming) into the light. I especially look forward to the first part of this book–focusing on bringing existing systems into CI environments. That’s something that I’m currently fighting at work on a daily basis.
NHibernate in Action
Pierre Henri Kuaté, Tobin Harris, Christian Bauer, Gavin King
A rabid user of Fluent NHibernate, I needed "the manual" to the underlying technology in NHibernate. While I haven’t had a chance to dig through this entire book, it’s been my reference manual for learning criteria and understanding how and why NHibernate operates as it does.
The Art of Unit Testing
I’ve been a reader of Roy’s blog for ages now and picked up this book as soon as I could. I’ve skimmed through it and look forward to picking it up as soon as I’m done with ASP.NET MVC in Action.
Windows PowerShell in Action
Another "missing manual" book, I’ve become addicted to PowerShell over the past few months. As I began pushing the envelope, I needed "the guide" to using PowerShell from the ground up and I’ve found it with this book. Like NHibernate in Action, this is currently on "reference book" status, but I look forward to digging into this cover-to-cover and await the upcoming second edition featuring PowerShell v2.0 (for Win7 and Server 2008 R2).
Architecture and Design Concepts
The Pragmatic Programmer: From Journeyman to Master
Andrew Hunt, David Thomas
An amazing discussion covering covering an array of programming topics–estimation, teams, testing, design by contract concepts, and more. Read it, ponder, then read it again. I tend to revisit the book annually–just to refocus myself and my thoughts.
Agile Principles, Patterns, and Practices in C#
Robert C. Martin and Micah Martin
Prepare to have SOLID beaten into your head with a vengeance–and you will like it.
Refactoring: Improving the Design of Existing Code
Refactoring techniques–cover-to-cover. If nothing else, this book has REALLY helped our team ensure we’re working on a shared vocabulary. Instead of saying "you could do this, this and this to end up with this because it will do this," its a lot more concise to say "have you tried extracting that into a subclass?" Oddly enough, I have a Japanese reprint of the book… which only adds to the coolness factor.
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
Kryzsztof Cwalina, Brad Abrams
FxCop got you down? Tired of digging through all those codes? Cwalina and Abrams guide provides both do’s and don’t… with something far more important–the why. The insights from the various annotators provide even more value–seeing library design from every angle imaginable. I haven’t picked up the latest edition of this book. I need to.
Domain-Driven Design: Tackling Complexity in the Heart of Software
This is one of the few books that, for some reason, I was in a note-taking mood when I first read it. The margins are filled with chicken scratches… and over time, I’ve updated the notes I’ve written as I continue to grow as a developer. Great read to really step back and focus on the big picture of how a customer’s "model" must become your model as a designer.
Design Patterns: Elements of Reusable Object-Oriented Software
Gamma, Helm, Johnson, Vlissides (Gang of Four)
Perhaps, as earlier mentioned, a pre-read to all the others–the bible of design patterns and vocabulary is used heavily in almost all other texts. I loved how this book breaks out the patterns into a summary, applicability, the organizational structure, participants, collaborators, and consequences.
Head First Design Patterns
Eric and Elisabeth Freeman
Perhaps a pre-read to the other pre-read (Design Patterns by GoF). I read this book first and it provided a cute, fun-to-read overview of the design patterns as well as a more tangible context (rather than the GoF’s more clinical approach). Reading this, then hitting the "textbook" version made things click.
C# in Depth
Skeet is the Chuck Norris of .Net. Seriously, it’s been proven. This is one of those books that makes you stop, think, and go "oh, so THAT’s why it does that… oh, crap, I’m using it WRONG!" I’m really looking forward to the next release of this book that includes C# 4.0.
Professional .NET 2.0 Generics
When I was wrapping my arms around generics in .NET 2.0, this book was awesome. Skeet’s C# in Depth does have quite a bit about generics as well, but the section on generic serialization from this book sticks with me today.
Test-Driven Development: A Practical Guide
This was one of the first books I picked up after getting interested in TDD. A lot of the book is Java-centric, but that’s fine. This book really drove home the concept of TDD and "red, green, refactor"–a feature doesn’t exist until there’s a test for it.
Google Reader provides me "the news" on a daily basis. Blogs provide a fantastic avenue of getting into the minds of people that interest me.