Search reads

Find a read to open

Back to Books

Programming

The Pragmatic Programmer

by Austin Kleon

★★★★

This is much more valuable for developing engineering judgment than for teaching programming syntax or a particular technology.

Why I think it's worth reading

The central idea is essentially this: don't just make code that works.
Become the kind of developer who consistently makes good decisions.

It may sound obvious, but the book gets into the habits behind it.

  • DRY (Don't Repeat Yourself): duplication is usually a maintenance problem, not merely an aesthetic one.
  • Orthogonality: keep parts of a system independent so changing one thing doesn't unexpectedly break another.
  • Tracer bullets: build thin, end-to-end implementations early rather than spending weeks perfecting isolated pieces.
  • Design by contract: make assumptions and expectations explicit.
  • Fail fast: detect incorrect states as close to their source as possible.
  • Automation: remove repetitive manual work wherever practical.
  • Refactoring: continuously improve code rather than waiting for a mythical "rewrite everything later".
  • Software entropy: unmanaged mess tends to accumulate unless you actively fight it.
  • Knowledge portfolio: treat your knowledge as something you continuously invest in.

These ideas remain useful regardless of whether you're writing
Python, TypeScript, Java, Rust, or something else.

A pragmatic mindset makes you start asking:

  • Where should this responsibility live?
  • What assumptions are being made?
  • What happens when this dependency fails?
  • Is this duplicated?
  • Can I change this component without touching five unrelated components?
  • How will I know when this breaks?
  • Can this process be automated?
  • Am I solving the actual problem or merely the immediate error?

These questions are arguably more important than knowing another framework.

One important caveat

This is not a modern web-development manual.

Some examples and recommendations reflect the era in which the book was written
So I wouldn't treat every implementation technique as gospel.

Don't read it as:

"This is how modern TypeScript/Next.js development should be done."

Read it as:

"These are durable principles for thinking about software."

Overall

I'd rate this 9/10 for an aspiring software engineer
But probably 6/10 if you're looking specifically for modern coding techniques.