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?

Not necessarily.

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.

3. Refactoring

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.

Fowler shows you how to flip between coding and refactoring, how often you should be committing your code and when you should be writing your tests. Highly recommended. The latest version of this book was updated to present the examples in JavaScript, which was an added plus for me since it’s my favorite language.

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!

5. Head First JavaScript Programming: A Brain-Friendly Guide

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.

Head First JavaScript is loaded with information to let you hit the ground running and start writing JavaScript apps. It covers the core concepts in an easy to understand way, with loads of examples you can try yourself.

This is the book that gave me many "ah-ha!" moments when starting to learn JavaScript, so make sure to pick it up if JavaScript is on your radar.

6. Eloquent JavaScript

by Marijn Haverbeke

Think you have a good understanding of JavaScript? Want to up your game or impress in the next interview? Eloquent JavaScript is for you!

Excuse the sales-pitchy intro, but this book is one of the best there is for more advanced JavaScript. Learn about everything from objects and functions to modules and asynchronous code. Whilst this is a more technical book, is it a thoroughly enjoyable read with some cool projects to try.

(NOTE: the author has made this book available online for free at: http://eloquentjavascript.net/ however, buying the book is a great way to support these authors, so consider it if you can!)

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.