There are plenty of coding books on the market, but a majority concentrate on particular technologies and also their half-life is rather brief. Others emphasis procedure or culture. A small number of them focus on the classic rules of composing great code, period. These five books had the greatest influence on my coding style and development:
Smalltalk Best Practice Patterns: Very functional advice on what comprises superior OO code. It’s carried out in Smalltalk, although the concepts are pretty much universal. Possibly my preferred nuts’ n ’bolts of coding design book. Very granular.
Refactoring: The essential before and after book. Here’s some programming code which can be better, here’s how you can make it better. The secret to perusing this book is to thoroughly go through each and every refactoring pattern and then put it to use in your code base (you donot need to commit in the event that it does not fix things). You can’t simply blow through it or else you won’t actually learn it. And you can’t just say “oh, I’ll research a refactoring whenever I need it” – because then you won’t understand what to look for.
Patterns of Enterprise Application Architecture: Excellent selection of the many patterns that underpin Rails alone, along with explanations for many of the “new” approaches that programmers recommend nowadays (such as service layers transaction scripts ). You won’t necessarily implement many of these patterns on your own, nevertheless its a priceless resource to comprehending the differences in architectures and why framework functions the way that they do. (Interesting story: prior to creating Rails, I redrew most of the diagrams in OmniGraffle since I loved the book that much.)
Domain-Driven Design: This might be the least understandable book from the bunch. It’s a slug to get through, however the suggestions are worth it. It’s an excellent primer teaching how to turn a difficult space in to a wonderful OO domain model. What should the models be labeled? What logic goes where? How can we replicate reality into an conceptual object model.
Are Your Lights On?: This isn’t officially a coding book, however it addresses the greatest problem facing programmers: What’s the problem we’re attempting to solve? Is this the correct problem? Can we solve another problem instead and would it be every bit as good? Absolutely nothing has improved my coding work productivity more than having the ability to restate difficult problems as simple ones.
For those who consider coding to be a subset of writing, and I definitely do, you would also be wise to read Elements of Style and On Writing . I’ve discovered reading these helped me to be a better programmer as well.
Reading these 5 to 7 books can provide your programming abilities more vitamins and nutritional benefit as opposed to a couple year’s worth of blog posts and free tutorials.