11 Must Read Books For Developers
We often say that Techloop was created 'by developers, for developers'. We're full of developers, be them current, occasional or indeed former. That's why we got them all to share the books they found the most enriching in order to create our Techloop 'Must-Read' list for the Developer Community. Here it is!
Let us know if you agree with our choices, if we've forgotten something or if we've inspired you to go book shopping!
1. WORKING EFFECTIVELY WITH LEGACY CODE - Michael C. Feathers
Developers who look forward to look forward to working with legacy code are a rare breed. We furnish our surroundings with a long litany of vulgarity and at times keyboards can find themselves flying through the air. Of course, said keyboard's somewhat unorthodox mode of travel was put to an abrupt end by becoming rather closely acquainted with our office wall...
Unfortunately, working exclusively with your own 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 extremely helpful 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 possibly arise.
2. CODE COMPLETE - Steve McConnell
Many of us consider this book to be an absolute must-have and a veritable programming Bible. It's author, McConnell manages to incorporate the most efficient development techniques and principles into one handy book. It's completely 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 definitely 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!
3. 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 definitely worth a read.
The part of the book that we consider to be the most beneficial is the "Plans to throw out prototype" chapter. This 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. This is why it's so important to adequately prepare - 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.
4. DESIGN PATTERNS - E. Gamma, J. Vlissides, R.h Johnson, & R. Helm
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.
5. 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 can come in 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 easier.
6. REFACTORING - K. Beck & M. Fowler
Refactoring by Martin Fowler focuses on the editing of already written code in such a way that it's external behaviour remains the same but the internal structure is improved. In the book you'll find detailed analysis of refactoring principles, including tips on recognising opportunities for refactoring and how to prepare the requisite tests.
The book uses Java as it's main language but the general principles apply for all OO languages.
7. CLEAN CODE - Robert C. Martin
Poorly written code can derail an entire project, making writing 'clean code' an extra important skill. This book will teach you (or you colleague, whose code 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.
8. PRAGMATIC PROGRAMMER - A. Hunt & D. Thomas
This 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 easier every day. So it's definitely a thumbs up from us.
9. 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.
10. 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 its your career, personal brand, blogging, education, finance or even health and relationships, the author covers every subject honestly and comprehensively.
11. HEAD FIRST DESIGN PATTERNS - E. Freeman & K. Sierra
This 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 crucial 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.
- 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
- Průvodce labyrintem algoritmů (Czech only) - M. Mareš & T. Valla
- Building Microservices - S. Newman
- The Smashing Book - V. Friedman
Got another great book in mind? Let us know via email: firstname.lastname@example.org!