joonmo.you
Software EngineeringCareerBest Practices

The Pragmatic Programmer

by David Thomas & Andrew Hunt · ★★★★★

A timeless guide to software craftsmanship — still essential reading 25 years later.

The Pragmatic Programmer is one of those books that feels different the second time you read it. The first time, you absorb techniques. The second time, you recognise which ones you've already internalized and which ones you keep ignoring.

What the book covers

The book is structured as a series of independent tips — 100 in the 20th anniversary edition. Topics include:

  • DRY principle: Don't Repeat Yourself. More than just code duplication — it applies to documentation, tests, and team knowledge.
  • Tracer bullets: Build thin slices end-to-end rather than completing each layer before moving to the next.
  • Broken windows: Don't leave bad code in place. A single ugly workaround invites more.
  • Orthogonality: Components that don't depend on each other are easier to change.

Favourite insight: "Good enough software"

The authors argue that software doesn't need to be perfect — it needs to be good enough for its users today. Shipping working software and iterating beats endlessly polishing before release. This sounds obvious, but in practice it's hard to accept.

Who should read it

Anyone writing software professionally. Junior developers will get immediate practical value. Senior developers will appreciate the philosophical grounding.

Verdict

One of the few books I recommend without any caveats. Read the 20th anniversary edition — it's been substantially updated.

실용주의 프로그래머는 두 번째로 읽으면 다르게 느껴지는 책 중 하나입니다. 처음에는 기법을 흡수하고, 두 번째에는 이미 내면화한 것과 계속 무시해온 것을 인식하게 됩니다.

책의 내용

이 책은 독립적인 팁들로 구성되어 있으며 — 20주년 기념판에는 100가지가 있습니다. 주제는 다음과 같습니다:

  • DRY 원칙: 자신을 반복하지 마세요. 단순한 코드 중복을 넘어 문서, 테스트, 팀 지식에도 적용됩니다.
  • 예광탄: 각 레이어를 완성하기 전에 얇은 슬라이스를 처음부터 끝까지 만드세요.
  • 깨진 창문: 나쁜 코드를 그대로 두지 마세요. 하나의 못생긴 임시방편은 더 많은 것을 초래합니다.
  • 직교성: 서로 의존하지 않는 컴포넌트는 변경하기 더 쉽습니다.

좋아하는 통찰: "충분히 좋은 소프트웨어"

저자들은 소프트웨어가 완벽할 필요가 없다고 주장합니다 — 오늘날 사용자에게 충분히 좋아야 합니다. 작동하는 소프트웨어를 출시하고 반복하는 것이 출시 전에 끝없이 다듬는 것보다 낫습니다.

누가 읽어야 할까

소프트웨어를 전문적으로 작성하는 모든 사람. 주니어 개발자는 즉각적인 실용적 가치를 얻을 것입니다. 시니어 개발자는 철학적 기반을 감상할 것입니다.

결론

어떤 단서도 없이 추천하는 몇 안 되는 책 중 하나입니다. 20주년 기념판을 읽으세요 — 상당히 업데이트되었습니다.