DEV Community

Cover image for The 10 books that every developer must read
Roman Mikhailov
Roman Mikhailov

Posted on • Edited on

The 10 books that every developer must read

Hate it or love it, but reading is an integral part of our professional life. What makes a great software developer is the amount and quality of their readings. You can argue that you can substitute reading with video tutorials and workshops, but I will not be convinced. Good books contain thoughts and ideas that have been played in their authors' minds over and over, refined and adjusted before committed to paper. This subtlety is lost in all other means of knowledge exchange.

A definition of a good book will be different from reader to reader. Therefore, this post is opinionated. I wasn't sure if I should write it. There're more than 10 books that should be on your bookshelf! You might agree or disagree with my choices, then please post your books in the comments. I'd love to read them too.

Here's a list of books that defined my career as a software developer. I've read dozens if not hundreds of books. Yet, these 10 are the ones that seem not to age and I find myself coming back to them for reference or just reading again for fun.
You will notice I did not include any of technology books. No learn C#, JavaScript in 24 hours or mastering Node.Js. Rather my list concentrates on coding, design, style and best practices.

This list is not in any particular order, and one book is not better than another.

Book Author Why I love it
The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin http://amzn.to/2EqFxlb Compared to Law, Medicine, Engineering, Accounting, Programming is a relatevely easy field to enter. There're countless success stories of self-thought programmers. This book introduces to what a Professional Programmer is. The author shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin http://amzn.to/2ssThWJ Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. " Another book by Uncle Bob, it is an opinionated book, but full of wonderful resources and advice on how to improve your code.
Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin http://amzn.to/2Bsq7dd Yet another book by Uncle Bob. This is an anticipated guide to Software Architecture. Soon to be a best seller like the other Clean Series. I believe the best way to improve your skill is learning from the best in the industry. Martin's half a century of experience is imprinted for us to study and apply in our trade.
Head First Design Patterns: A Brain-Friendly Guide http://amzn.to/2Hd6x57 This is a great book for mastering The Design Patterns. Clear explanation, good examples and just practical.
Peopleware: Productive Projects and Teams http://amzn.to/2sxPBDs IT management is your ultimate goal? Read this book! Written in the 80s,it outlines the major issues with current management practices in software development field. It's amazing that most companies still make the same mistakes. If you won't move into management, at least this book will help you ask the right questions and look for red flags next time you're looking for a new job. Personally, I cannot chuckle inside when I hear "Open space office"
The Algorithm Design Manual by Steven S Skiena http://amzn.to/2BszJ7S Read this book if you want to work for Google, Microsoft, Amazon or any company that loves to drill their candidates about Algorithms. Seriously, this is a must read for any programmer. The foundation for any efficient code.
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin http://amzn.to/2CiZGDT The book covers Design Paterns just like the Head First Design Patterns, but this book goes deeper in the world of OOP, software architecture and Agile Methodology.
Working Effectively with Legacy Code by Michael Feathers http://amzn.to/2HaEKlY Legacy Code - You can hate it, but you cannot kill it. All code will be legacy at the end ;) Unless you're a hobby programmer, you will end up working with it. You will pull your hair out because of it. This book is sanity shield that we all need. Good Read!
Head First Object-Oriented Analysis and Design http://amzn.to/2CiYsZe Ability to analyze and design solid OOP systems is science and art. The programmer who can take upon a role of an architect is worth its weight in gold. This is a good introduction book to OOP
The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas http://amzn.to/2EHdOfk This book is a great read to fill the gaps that have been missed by all other books on this list. The authors will show you what it takes to master our trade, and hopefully they will equipe you with skill and idea to avoid the common pitfalls.

Top comments (6)

Collapse
 
mtbsickrider profile image
Enrique Jose Padilla • Edited

I really like this list. I've read/own half of them already. Some are for different points of your career, like peopleware felt more for 5+ years experience.

Just bought the head first design patterns as ive seen alot of reccomendations for it and one of my interviews essentially asked me to implement the adapter pattern and i was stumped.

Collapse
 
rommik profile image
Roman Mikhailov

I feel that every developer will have to expand into project and people management eventually. Even if you're not an official manager and only interested in coding, you still need to work with people and deadlines. Books like Peopleware and The Clean Coder are great resources for that. I do agree with you, some books should be read at different moments in your career. Working with Legacy Code is not a fun book for somebody who's still learning to program :)

Collapse
 
isaac_jzr profile image
Isaac • Edited

I really recommend Grokking Algorithms: An Illustrated Guide for Programmers and Other By Aditya Y. Bhargava

Collapse
 
rommik profile image
Roman Mikhailov

Thank you! I checked it out, it seems like a nice book to have for a quick refresher before an interview or a debate with a colleague :) It's actually listed as a best seller on Amazon (amzn.to/2CsL1G8 for those who're interested) It is only available in paperback, unfortunately. I usually read my books on a kindle (since moving to a new place I'm very short on bookshelf space hehe), but the illustrations are great and it's just a pleasant book to read.

Collapse
 
alexzerah profile image
alexzerah

Hello Roman, thanks for this sharing !

I want to read some web development books and your list is awesome.

However, this can be long to read them all, so in which order do you recommend the read ?

Collapse
 
rommik profile image
Roman Mikhailov

Hi Alexzerah, There's no order for this list. These are also books that I find myself re-reading. Unlike programming tutorials, it seems as I come back to them I keep discovering something new or see a point that the author made from a different point of view. I would suggest reading them all.

However, if you need to start from somewhere, the clean series are great.

Peopleware is a good book is about a project and people management. It is an interesting and different read compared to the other ones.