We often say that Techloop was created ‘by developers, for developers.’ That’s why we reached out to them to share some books for developers that they found the most enriching to create our Techloop ‘Must-Read’ list for the community. Enjoy!
Let us know if you agree with our choices, if we’ve forgotten something or if we’ve inspired you to go book shopping!
Working Effectively With Legacy Code – Michael C. Feathers
Developers who are looking forward to working with legacy code are a rare breed. We furnish our surroundings with a litany of vulgarity, and at times keyboards can find themselves flying through the air. Of course, said keyboard’s somewhat different mode of travel timescale to an abrupt end by becoming rather intimately acquainted with our office wall.
Unfortunately, working exclusively with your code is a pleasure reserved for a select few. Along with some breathing exercises and an anti-stress ball (or punch bag), this book is beneficial for working with legacy code. Michael Feathers discusses strategies and techniques for working effectively with legacy code and responds to all the possible questions which can arise.
Code Complete – Steve McConnell
Many of us consider this book to be an absolute must-have and a real programming Bible. It’s author, McConnell manages to incorporate the most efficient development techniques and principles into one handy book. It’s utterly irrelevant whether you’re just starting out or already an experienced matador if you give this book a shot you won’t regret it.
We recommend you buy the updated version – it’s handy when the code samples reflect current development trends.
P.S Despite being a great read, this is not one to chuck in your suitcase for your holiday – it’s got 900 pages in total!
The Mythical Man-Month – Fred Brooks
This particular book is a real software classic, even though it came out in the 1970s. It still has lots to offer even today. If you’re interested in IT even just a little, it’s worth a read.
The part of the book that we consider to be the most beneficial is the “Plans to throw out prototype” chapter. THat sounds a little crazy at first, but in reality, it’s pretty much the rule that the first program you create must be completely reworked or discarded. That’s the reason why it’s so important to prepare adequately – it’s much easier to migrate users to version number 2 and if nothing else will help create a much more realistic development time scale.
Design Patterns – E. Gamma, J. Vlissides
If you plan on becoming a Systems Architect or designer in the future then definitely add this book to your must-read list.
Design Patterns is set apart as one of the best books on development. It goes into great detail on various design patterns and will help you prevent (or solve) all possible issues you may encounter when using a particular pattern.
Programming Pearls – Jon Bentley
Programming Pearls is not one of those classic books where you can learn about new programming concepts – but instead how to problem solve more generally. This knowledge can come very handy during a developer’s career.
We can’t recommend this book enough, thanks to it we understand algorithms much more, and it has made programming much more manageable.
Refactoring – K. Beck & M. Fowler
Refactoring by Martin Fowler focuses on the editing of already written code in such a way that its external behavior remains the same, but the internal structure is improved. In the book, you’ll find a detailed analysis of refactoring principles, including tips on recognizing opportunities for refactoring and how to prepare the necessary tests.
The book uses Java as it’s primary language, but the general principles apply to all programming languages.
Clean Code – Robert C. Marting
A poorly written code can derail an entire project, making writing ‘clean code’an additional important skill. This book will teach you (or you colleague, whose system is causing your premature hair loss) precisely that. It will not only lead you through the basic principles but also contains a lot of practical tips and case studies on which you can test your newly acquired knowledge.
Hint: It’s worth reading ‘Complete Code’ before reading ‘Clean Code’ as the latter deals with similar topics to the former but in more depth.
Pragmatic Programmer – A. Hunt & D. Thomas
This book is one of the older titles on the list, but age doesn’t diminish its importance in the slightest. It is primarily concerned with how to practically approach the development of complex systems. And these principles will never go out of fashion.
Pragmatic Programmer has taught us lots of useful tricks which we’ve never heard at school or on any course, yet making life easier for us every day. So it’s a thumbs up from us.
Coders at Work: Reflections on the Craft of Programming – Peter Seibel
Are you interested in the lives of successful programmers? Then this book is for you. It comprises of 15 interviews with developers such as Joshua Block, Peter Norvig, Donald Knuth, Ken Thompson, and Zawinski.
Its author, Peter Seibel (originally a programmer) discovered everything there is to know about their most famous projects, what motivates them and how they think.
Soft Skills: The Software Developer’s Life Manual – John Z. Sonmez
For most developers, coding is the fun part. The not so fun part is when you have to talk to clients, colleagues or, god forbid, managers.
This book deals with those things that are connected to coding and are vital in a developer’s life. Whether it’s your career, personal brand, blogging, education, finance or even health and relationships, the author covers every subject honestly and comprehensively.
Head First Design Patterns – E. Freeman & K. Sierra
This book is probably the least technically concerned book about programming that we know. It’s full of images, sketches and the like which make it an easily digestible read about a basic programming subject – design patterns.
Head First Design Patterns will help you create elegant and flexible software which can be easily reused. It also clearly explains all the advantages and disadvantages of each design pattern, so you know what you’re getting into.
We also reached out to the community on Facebook and Twitter for more tips on great books for developers and got loads of interesting ones. You can find these cherry-picked recommendations below:
- Computer Science Distilled – W. F. Filho (especially for self-taught developers)
- Continuous Delivery – J. Humble & D. Farley
- Growing Object-Oriented Software – S. Freeman & N. Pryce
- Patterns of Enterprise Application Architecture – M. Fowler
- REST in Practice – J. Webber, S. Parastatidis & I. Robinson
- Domain-Driven Design – E. Evans
- Meditations – M. Aurelius (not only for IT pros)
- Succeeding with Agile – M. Cohn
- Test Driven Development – K. Beck
- Building Microservices – S. Newman
- The Smashing Book – V. Friedman