Recommended Reading
These are the best books I have read so far that I think every software developer should read. Every one of them has really helped me to understand and improve the way I work.
Code Complete (2nd Edition) amazon
Would recommend this book to anyone who is looking at taking a career in software development. Covers almost everything you need to know to a basic level, though a couple of sections are a little dated this book really helps make the transition from just understanding how to code to being a career software developer.
Clean code is a good book about coding standards and thinking about how you lay out your code. While I do not necessarily agree with all the recommendations it is spot on with all the areas that you need to consider. It really helps to make you think about how you lay out your code and take some pride in it.
The art of Unit Testing (2nd Edition) amazon
This is a really good book for people who are looking at starting to do automated developer testing, while it may take a couple of reads mixed with a lot of practice eventually it will all make sense. I would recommend avoiding the first edition of this book as the writer changed his approach on a few key areas that really make a difference when trying to get to terms with unit testing.
The Design of Everyday Things (1st Edition) amazon
The design of everyday things is a great introduction to usability and its underlying concepts. I would recommend getting the first edition as I found the second edition much harder to read due to the extra information in it.
Conceptual Blockbusting amazon
This book is not about programming but I would really recommend it anyway as it looks at the way you solve problems and aims to help you with understanding and improving the process. It is also full of little games and exercises that are fun to do.
Design Patterns amazon
This book is a really good introduction to the concept of design patterns and has most of the classic (although some you probably won't ever use) design patterns listed. While the catalogue part of the book can be hard to read it really helps you by giving you an insight to some useful patterns that experienced developers use.
Refactoring is an awesome book although I find the catalogue part that lists all the refactorings mostly useless when you are working in a modern IDE that has short cuts for a lot of them. It gives a good understanding of what refactoring is and why it is so key to being a software developer.
This book is essentially a motivational self help book written especially for developers, it is a really good read and full of all sorts of useful information on how to deal with the rest of life while having a software developing career. From making a CV to getting your dream job and managing money this book essentially covers everything that's not normally in software books.
Object Thinking amazon
This defiantly feels like more of an advanced book but really helps you to think about the way you design your object oriented programs. Some of the sections about using polymorphism over conditional logic we're quite a mind opener. Am looking forward to reading this one again soon as I feel this book still has much to offer.
The Mythical Man Month amazon
If any book can be described as a classic in the software development field it is this one, a great book that focuses on managing software projects. While much of the information may seem out of date it has so many points that still ring true in today's software development world.
I agree with much of this, but to add a few more (whilst sadly leaving many other great books out for brevity's sake):
ReplyDeleteProgramming Pearls, a classic filled with guidance and excellent exercises. Amazon: http://www.amazon.co.uk/Programming-Pearls-ACM-Press-Bentley/dp/0201657880/ref=pd_sim_14_5?ie=UTF8&dpID=41WonSY9PbL&dpSrc=sims&preST=_AC_UL160_SR127%2C160_&refRID=12D2JDCWJ5V33KX850YE.
Introduction to Algorithms, a perfect foundation for algorithms useful both for learning and as a reference. Amazon: http://www.amazon.co.uk/Introduction-Algorithms-T-Cormen/dp/0262533057/ref=pd_sim_14_1?ie=UTF8&dpID=51TUMB8fm9L&dpSrc=sims&preST=_AC_UL160_SR142%2C160_&refRID=1VVBSV89G1K3AV9Z6280
The C Programming Language, everyone should learn C and this is the book to do it with. Short, clear and easy to read this is another classic. Amazon: http://www.amazon.co.uk/The-Programming-Language-2nd-Edition/dp/0131103628/ref=pd_sim_14_24?ie=UTF8&dpID=51TGEPRTDNL&dpSrc=sims&preST=_AC_UL160_SR121%2C160_&refRID=12D2JDCWJ5V33KX850YE.
Patterns of Enterprise Application Architecture, is similar to the GoF Design Patterns book and Refactoring, but focuses on the patterns we use to eal with database access, domain logic etcetera. Amazon: http://www.amazon.co.uk/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420/ref=pd_sim_14_51?ie=UTF8&dpID=51IuDvAU1CL&dpSrc=sims&preST=_AC_UL160_SR124%2C160_&refRID=1VVBSV89G1K3AV9Z6280
I am enjoying the Art of Unit Testing, but if someone was going to read only one book on unit testing I would go with Test Driven Development by TDD's creator Kent Beck. It is another short, clear and easy to read book. Amazon: http://www.amazon.co.uk/Driven-Development-Addison-Wesley-Signature-Series/dp/0321146530/ref=pd_sim_14_27?ie=UTF8&dpID=51EH1TQ3A2L&dpSrc=sims&preST=_AC_UL160_SR128%2C160_&refRID=0HCMC0SB8FZAYX67MT13