Must-read books for junior and aspiring developers
I was recently asked about books that I would recommend to junior developers. What better way to answer that question than with a good article?
"Why Read Coding Books ? Books are old school!"
Good question. There are many online courses and YouTube videos available with this information, right?
Some of these books have been around for a long time, and have formed the foundations of our industry. They have been written by experts such as Martin Fowler, and Robert C Martin, and there is nothing like hearing this information straight from the horses mouth.
So if you're interested in sitting down and relaxing with a cold beer and a good book, here's my personal recommendations that I highly recommend to junior and aspiring developers.
Disclosure: Some of the links below are affiliate links. But, I’ve only added those books that I have personally read, and feel are useful for junior developers.
1. Clean Code
by Robert C. Martin (Uncle Bob)
What is clean code? Here's a quote by Martin Fowler:
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Clean code is basically writing code in a clean, maintainable way, making it easier to understand for the next developer who comes along.
Uncle Bob’s “Clean Code” teaches you how to identify what "bad" code looks like, and teaches you how to rewrite it into good code. This sounds like a simple task, but in larger codebases, achieving clean code can be tricky enough to accomplish.
This book is a must for passionate software developers, who really care about their craft.
2. The Clean Coder
by Robert C. Martin (Uncle Bob)
Focusing more on the softer skills, this book is excellent for those wanting to gain an understanding of the non-technical skills a developer needs.
The Clean Coder is full of practical advice on estimation, refactoring, testing, dealing with conflict, schedules, avoiding burnout, and much more. Trusted advice from someone who has spent decades doing this stuff.
One of the best things it teaches, is how to have integrity as a developer, when to say “No” and how to say it.
by Martin Fowler
Martin Fowler is one of my favorite authors. His books have a personal touch like no other and his approach to writing software books is unmistakably “Fowler”. The other reason is that he’s incredibly good at explaining complex topics, and doing so very simply, in a way that doesn’t fatigue you as a reader.
4. Head First Design Patterns
by Eric Freeman,Elisabeth Robson, Bert Bates, Kathy Sierra
What are design patterns, you ask? Design Patterns are well-known solutions to commonly occurring problems in software development. If you’re familiar with the patterns, you’ll find that you’ll be able to greatly reduce the amount of time it takes you to put forth the solutions to those problems.
I enjoyed this book as it has a more "tongue in cheek" style - making it an easy read. It’s loaded full of practical examples that are easy to follow, and is a great point of reference.
Design Patterns are staple of software development, and this book will arm you with all the patterns you need. Don't miss this one!
by Eric Freeman, Elisabeth Robson
Ok, I am starting to show my "Head First" series fanboy-ism here - But these books are truly sensational, especially for those like myself who found some software development books technical and well, slightly boring.
by Marijn Haverbeke
7. The Pragmatic Programmer
by Andrew Hunt & David Thomas
Back to the "soft skills" theme, The Pragmatic Programmer is a book that should be on the desktop of developers of all levels. Andrew and David are programmers that not only spent many years doing what they do, but paying attention to what they were doing as they were doing it, and then trying to determine if they could do that better.
What came out of their years of introspection was this book, which introduces a number of essential programmer philosophies to follow throughout your career, like “programmers should have a “do it once, or automate” philosophy”.
It includes simple yet detailed advice that you should carry with you in the back of your mind before you write another line of code or start a new project.