DEV Community

Cover image for The Books That Made All The Difference To Me As A Developer
Antonin J. (they/them)
Antonin J. (they/them)

Posted on • Updated on • Originally published at antjanus.com

The Books That Made All The Difference To Me As A Developer

This question pops up on every form of media out there. "What books should I read to be a better developer?". I've answered this a ton of times. On Twitter, on Dev.To, Reddit, and everywhere else.

I figured it might be a good idea to put the list in a single post I can always link to.

Note: I am using Amazon affiliate links where I link to the books.

Clean Code: A Handbook of Agile Software Craftsmanship

I NO LONGER RECOMMEND THIS BOOK

The author has a lot of problematic views about race, women, etc. Please do not buy this book or contribute to the author.

The Pragmatic Programmer: From Journeman To Master

I'm still about halfway through this book. This book is amazing for anyone starting out a career in development -- and anyone well into it. I found it shows and explains various scenarios you'd find in the real world and then it discusses strategies to tackle them. It features tons of ideas about how to keep your code clearly separated, how to think about concurrency, how to address code that needs to clean itself up, and so on.

Probably my favorite part of the book is the discussion around what "prototypes" are for, how to use them, and so on. And then it discusses the idea of a "tracer bullet" (which I've discussed in my post My Experience Running Development At A Startup) and totally won me over and changed how I do development.

Game Programming Patterns - GMP free to read on the web

Before I get into it, you might be thinking, but why game programming? I'm a web developer and this book is just as relevant to web devs as it is for game devs. This book is by far the best resource I've found that discusses common (and well-known) programming patterns -- from their advantages, to their drawbacks, trade-offs, and their details. All neatly written to be easy to understand.

There are quite a few that I absolutely recommend reading about:

  1. Object pool
  2. Dirty Flag
  3. Singleton -- because that's how your node imports work!
  4. Observer

I also suggest reading the game loop and update method patterns if you're into gaming.

Non-Violent Communication

This might seem off-beat but despite being a non-programming book, I found it extremely useful in terms of communication and applying empathy to my work. Not only that, but I found it useful in my interactions with my teammates and my other co-workers. It covers a few key concepts:

  1. how to ensure both parties are in full understanding of a concept
  2. applying empathy in stressful situations
  3. value of honesty
  4. value of expressing your own needs

All of those have been key in my career in one way or another. Here's a dirty secret: my own team focused on communication with each other and with our manager heavily. Improved communication lead to greater job satisfaction (personally) but it also lead to better code, feature releases, better conversations around development roadmaps, and so much more. We didn't use NVC but we did make big changes into how we're organized

Books I haven't Read (Yet)

I have a stack of books in my GoodReads that I want to read, and even a longer stack of books I keep in my head. I can't personally vouch for these but I do see these come up over and over again on Twitter, here, and elsewhere:

CSS Secrets

A book that made waves when it dropped, CSS Secrets by Lea Verou is a book focusing on techniques and tips and programmatic solutions to your CSS problems and how to practically write CSS. If you're not sure this is for you, check out one of her many talks.

Refactoring UI

Refactoring UI by Adam Wathan and Steve Shoger has been making rounds on my radar and I think it's a worthwhile book to look into. I haven't personally had time to check it out but I've heard of Adam's courses that people love and I have closely followed the development of Tailwind CSS which is his CSS framework.

Got any books you'd like to recommend?

Top comments (28)

Collapse
 
hpj1992 profile image
Harshit

Clean Code

I am currently reading this book. Only 50% done. But many things have stayed with me:

  • Always test your code. You will not have confidence in your code if you have not done enough testing.
  • Learn to say no.
  • What it means to say "Yes"
  • Meaning of professional developer.
  • Take care of your health.
Collapse
 
antjanus profile image
Antonin J. (they/them)

So I'm not as concerned about 100% coverage and I'm not a big fan of TDD. I think those two principles I'm moving away from over the years.

Health is huge though. Good sleep, good diet, and a good keyboard go really far.

Collapse
 
hpj1992 profile image
Harshit

I did not meant to point 100% coverage or TDD. We can debate later on.

But code needs to be tested for sure. Manually or automated for sure. - That was my point.

Collapse
 
y0mbo profile image
John Uhri

These are the books that made a difference in my career, although some are getting dated:

Clean Code
Code Complete
Peopleware - about people more than code, dated I think.
Joel on Software - a compendium of the best posts from Joel's blog. Kind of dated now.

Collapse
 
rgeraldporter profile image
Rob Porter

Very pleasantly surprised to see Rosenberg's NVC book here. It is indeed helpful as a programmer, I've found as well. Also recommend books on Servant Leadership, though I can't recall off the top of my head right now which one of those I read.

Another recommendation: Pragmatic Thinking & Learning (also by the Pragmatic Programmer folks). pragprog.com/book/ahptl/pragmatic-...

Also, because the industry is for some reason obsessed with pulling all-nighters and producing burnouts: Why We Sleep is a great book that will make anyone have second thoughts about ever pulling an all-nighter ever again: goodreads.com/book/show/34466963-w...

Collapse
 
bernardf profile image
Bernard Farrell

Working Effectively with Legacy Code by Michael Feathers is a gem. Given you'll mostly work with legacy code, which includes stuff you wrote 6+ months ago, this book gives really useful practical advice on getting existing code under test.

I've given away too many copies of this book to colleagues. It's invaluable.

Collapse
 
loebkes profile image
Lui

Thank you for recommending this here. I would go as far as call it the most valuable I've read the last 4 years. I read clean code, clean coder, pragmatic programmer, mythical man month, the goal, the Phoenix project (really good), and some more that I can't recommend.

Collapse
 
ryantenorio profile image
Ryan

I have read Clean Code before and after coming off a year of leave I am looking forward to re-reading it! The other book I have just started is The Phoenix Project, which is a tale of DevOps/IT success in the form of a novel.

Collapse
 
joecannatti profile image
Joe Cannatti

I haven't read Clean Code in years, but I'm wondering if you can recall the parts that you mentioned you no longer agree with. I'm curious about what ideas the industry has moved beyond since that book one came out.

Collapse
 
thomasjunkos profile image
Thomas Junkツ
Collapse
 
benhosk profile image
Ben Hosking

You have the classic coder books, so I will add these

Radical candor - people management
Never split the difference - empathy, dealing with people
Scrum Mastery: From Good To Great Servant-Leadership

Collapse
 
primercuervo profile image
Nicolas Cuervo

The "Game Programming Patterns" sounds interesting, but for the short review you mention (and the objective you want to fulfill with this book) I'd suggest rather "Design Patterns: Elements of Reusable Object-Oriented Software", which might be a bit less application specific

Collapse
 
antjanus profile image
Antonin J. (they/them)

GMP is by far the easiest resource to read on design patterns that I've read. I'm sure there are plenty of others but the language and examples in the book are fantastic. I've been recommending it for years.

Collapse
 
crumb1e profile image
Daniel Crewdson

Eloquent Javascript is a fantastic resource for getting up to speed with js in general, and a really good starting point for beginners looking to get into js frameworks.

Having an understanding of vanilla js is so important to take advantage of all the different frameworks out there.

Collapse
 
antjanus profile image
Antonin J. (they/them)

I'm a huge fan of it as well but idk how up-to-date the book is with today's JS (ES2015+).

Collapse
 
rachelsoderberg profile image
Rachel Soderberg

I'm also reading Clean Code and it's opened my eyes to a number of things I wish I'd known going into the major application I built at work over the last few months. I've been able to go back and refactor some things, but it would be too much work to revamp all of it.

Lessons for the future, I suppose!

Collapse
 
megadev81 profile image
Paul Hughes • Edited

I'd like to see a book that starts from the command line and says ok this is why and how we use this, with some examples and relating it to other programming languages, a variety, C/Python/C#/JS/C++, and how the editor/IDE differs from the console, then move into the programming languages at an intermediate level showing how your OOP and design patterns can work in real life projects, nothing too large, just enough, then how to finalise these projects, test them and get the finished product out there and what is the best solutions for that.
Also a book on how to create income from a variety of disciplines/projects, microcontrollers/embedded systems to web/mobile to games to SysAdmin etc., examples of how some people have created these successful projects over a space of however long.
There are probably books out there like this and some that come to mind that have bits and bobs and that are close are:
Clean Code
Code Complete
The Self Taught Programmer
Learn to Program
HF Programming/Learn to code
BigNerdRanch Front End Web

Plus a few C/C++/Java/C#/Python/JS intro books, but nothing that puts it all together or possibly a series.
It's no wonder the better programmers are the older ones who started further back then built up the know how, unlike today where most jump straight into web/mobile/games and start to pick up a little cmd/bash over time, just enough to get the work done. I know there are Digital Design books that explain digital boolean logic and gates to create circuits etc., but for me, just that link from the command line and into the languages, through the languages at a higher level, then getting that working app out, is a book that is rare from what I've seen, and some are far too complicated and too much mathematics.

I like the how and why, but too much how nowadays, without the why and when I see the why, it's too complicated and no details on the how, to go with the why and vice versa.

Much respect to all the old timers out there and new programmers starting out their journey. ✌🏽

Collapse
 
burdettelamar profile image
Burdette Lamar

I've enjoyed Steve McConnell's Code Complete.

Collapse
 
antjanus profile image
Antonin J. (they/them)

ah! That's been on my list for a while :)

Collapse
 
scotthannen profile image
Scott Hannen

Code Complete - lots of language-agnostic principles and guidelines. It's exactly what I wanted to know about development when I started, but I didn't discover it until years later.

Collapse
 
lampewebdev profile image
Michael "lampe" Lazarski

Listening to Non-Violent Communication right now !

Thanks for the info!