Monday, July 22, 2013

On Architecting: The Books



Times have changed since I started my career back in 2001 as a lowly Programmer Analyst intern. Back in the day, you could tell what skills a developer had by looking at the small library of books on their desk. I can still remember having to flip through pages of a 400-500 page book to figure out how to write a database connection string or how to read text from a file. It always seemed to me like I would spend half of my time thumbing through books to figure out how to do a particular task.

Nowadays, I just about Google everything (sorry Bing). Mastering the art and science of building the right search terms is just as important as knowing how to code. I still have books, of course, but rarely do I ever need to use them since everything I need is usually a web search away. Blogs, articles, and forum posts consist of the majority of the content that I use in my daily research. The kinds of resources are much easier for me to parse through instead of an exhaustive book. Plus, I can get access to most relevant content for free online, whereas you have to shell out at least $40 bucks for a decent tech book.

Yet there are a few books that I believe every architect (or developer) should own. Whether you've been coding for three months or three decades, these books serve as a solid foundation regardless of your programming language of choice (though these books mostly cater to the Microsoft programming languages).

Programming Pearls (2nd Edition)
This book has nothing to do with .NET and has been around for decades, but it is an incredible read. What I love about this book is that it was written during a time when computers were slow and were so meagerly resourced that developers had to pay attention to good algorithmic design (nowadays, developers usually get away with writing sloppy, resource-greedy code on beefy machines). Most problems that we will encounter in code will be solved by the building block solutions in this book. I highly recommend it.

Code Complete: A Practical Handbook of Software Construction, Second Edition
This is a great resource for understanding the fundamentals of constructing software applications. It covers topics like how to build high quality functions and classes, code documentation, and a garden variety of software testing strategies. It's required reading at Microsoft, though I think it should be required at any company.

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
Whether designing a public facing API or a common framework library that can be reused across applications, this essential book will help developers understand how to properly design classes and interfaces for better usability and maintainability. This book provides great insights into the design of the .NET framework namespaces and libraries and provides extremely valuable information on the .NET data structures and interfaces.

Microsoft® Application Architecture Guide, 2nd Edition (Patterns & Practices)
Of course, I have to have a basic go-to resource for basic fundamentals. Microsoft developers will take special interest in this resource of course, but it is generic enough to satisfy the needs of architects from any language background. The full book is available online at MSDN, but you can also buy it in paperback form wherever tech books are sold.

No comments:

Post a Comment