I’m often asked to give book recommendations. While it’s been too long since I looked at beginner books, I have had some opportunity to benefit from some of the more intermediate-advanced books out there. When putting together the prizes for this year’s Atlanta Code Camp, we had the opportunity to hand pick books using some of the budget. I reflected a bit on the books that I’ve read and came up with the following list which should be a descent should read list for people interested in programming related topics. I’m sure that the list isn’t all inclusive and apologize to any of my author friends who may feel slighted by not being included here. I welcome you to add your favorites in the post comments if you see any glaring omissions.
Without further ado, here’s my top recommended list:
|General Programming Books|
by Erich Gamma
Also known as the Gang of Four (GOF) book, this is the book which defined a set of common code design patterns to give programmers a common language to understand and design object oriented programs.
|Patterns of Enterprise Application Architecture|
by Martin Fowler
Martin catalogs an extensive list of typical application architectures and how they fit together. Pair this with the GOF and you’ll be amazed how your applications can benefit from these patterns (and how often you used them without having a concrete name for them).
|Test Driven Development: By Example|
by Kent Beck
If you’re not testing your code, it is invariably brittle for refactoring and subject to breaking as new enhancements are added. This book will get you up and running with TDD and show you why and how you should be doing it.
|Clean Code: A Handbook of Agile Software Craftsmanship|
by Robert C. Martin
From the man that brought us the SOLID Pricipals, Uncle Bob gives us this guide to building pride in the code you write resulting in more maintainable and understandable code.
by Steve McConnell
Steve includes examples from a number of programming languages along with case study results and metrics to help guide you toward building more quality code.
|Refactoring: Improving the Design of Existing Code|
by Martin Fowler
As the only author appearing twice on this list, Martin’s book offers excellent examples of how and when to improve an existing code base by refactoring it safely. As a consultant, I’m typically brought in to work on an existing code base often in some state of disrepair (hence why I’m brought in). Unless you are careful when working on these code bases, you can risk breaking everything. Martin helps to show the right way to do it.
|User Experience Books|
|Why Software Sucks...and What You Can Do About It|
by David S. Platt
David uses humor and anecdotes to help developers understand why their applications are not as successful as they may have envisioned (hint: users don’t want to use your system, they want to HAVE used it).
|About Face 3: The Essentials of Interaction Design|
by Alan Cooper
Alan helped to pioneer the study of interaction design. While this book may be somewhat dated, many of the guiding principals he outlines are still pertinent to today’s applications.
by Douglas Crockford
by John Resig
|jQuery in Action, Second Edition|
by Bear Bibeault
|C# in Depth, Second Edition|
by Jon Skeet
Even though Jon doesn’t do C# at his day job at Google, he is one of the most knowledgeable people out there regarding the C# language as evidenced by the amount and quality of information in this book. No matter how long you’ve worked with C#, you will inevitably learn some helpful new tricks to improve your applications.
|CLR via C#, Third Edition|
by Jeffrey Richter
In working with the Microsoft product teams, Jeffrey definitely knows how .Net works under the covers and is able to share them in a understandable fashion. Each time you read through this book, you will find yourself picking up additional insights on how .Net works under the covers.
|Effective C# (Covers C# 4.0)|
by Bill Wagner
While not digging under the covers of .Net as much, Bill’s practical examples show how to improve your C# code to accomplish many of the common tasks that you need to do.
|Programming Entity Framework|
by Julia Lerman
By far, this is THE book on the Entity Framework that you should read. This book only covers through version 4 of EF, but it will help you understand the fundamentals and helpful extensions to EF.
|LINQ in Action|
by Fabrice Marguerie
I admit it, I am biased, but this is the best LINQ book out there.
If you would like to buy any of these directly from Amazon, I’ve set-up an associate account with the ability to buy any of these and any others I may add in the future. Head on over to Amazon and support these great authors.