3 Books to Become a Better Developer

Published on April 20, 2022 (↻ February 5, 2024), filed under (RSS feed for all categories).

4 Books to Become More Efficient and Effective kicked it off; here’s the second of four pieces about books I highly recommend reading:

A Philosophy of Software Design by John K. Ousterhout

The cover of “A Philosophy of Software Design.”

I have noticed that the design-it-twice principle is sometimes hard for really smart people to embrace. When they are growing up, smart people discover that their first quick idea about any problem is sufficient for a good grade; there is no need to consider a second or third possibility. This makes it easy to develop bad work habits. However, as these people get older, they get promoted into environments with harder and harder problems. Eventually, everyone reaches a point where your first ideas are no longer good enough; if you want to get really great results, you have to consider a second possibility, or perhaps a third, no matter how smart you are. The design of large software systems falls in this category: no-one is good enough to get it right with their first try. Unfortunately, I often see smart people who insist on implementing the first idea that comes to mind, and this causes them to underperform their true potential (it also makes them frustrating to work with).

The Pragmatic Programmer by Thomas David and Hunt Andrew

The cover of “The Pragmatic Programmer.”

Don’t Live with Broken Windows

Don’t leave “broken windows” (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up. Perhaps you can comment out the offending code, or display a “Not Implemented” message, or substitute dummy data instead. Take some action to prevent further damage and to show that you’re on top of the situation.

Clean Code by Robert C. Martin

The cover of “Clean Code.”

Programmers face a conundrum of basic values. All developers with more than a few years experience know that previous messes slow them down. And yet all developers feel the pressure to make messes in order to meet deadlines. In short, they don’t take the time to go fast!

True professionals know that the second part of the conundrum is wrong. You will not make the deadline by making the mess. Indeed, the mess will slow you down instantly, and will force you to miss the deadline. The only way to make the deadline—the only way to go fast—is to keep the code as clean as possible at all times.

❧ You notice how I’m skipping a detailed account of how these three books have made me a better developer. Yet my experience reading both of them, late (2020–2022), was more one of pouring concrete into my foundation as a developer, rather than leveling me up. And that’s how I think you may experience these books: As a junior developer, these will level you up, and as a senior developer, they reinforce your base.

You may also notice how I, as a frontend developer, are only listing three books here, and not even one about frontend development. Do I only write, but not read books about frontend development? Are there no good books on frontend development?

That’s not it. I do read books about frontend development, and some are really good (check my 4- and 5-star ratings). But none I’ve read were as strong and impactful as A Philosophy of Software Design, The Pragmatic Programmer, or Clean Code. If you know one—please let me know!

Was this useful or interesting? Share (toot) this post, become a one-time nano-sponsor, or support my work by learning with my ebooks.

About Me

Jens Oliver Meiert, on September 30, 2021.

I’m Jens (long: Jens Oliver Meiert), and I’m a frontend engineering leader and tech author/publisher. I’ve worked as a technical lead for companies like Google and as an engineering manager for companies like Miro, I’m a contributor to several web standards, and I write and review books for O’Reilly and Frontend Dogma.

I love trying things, not only in web development (and engineering management), but also in other areas like philosophy. Here on meiert.com I share some of my experiences and views. (Be critical, interpret charitably, and give feedback.)