Overview
97 Things Every Programmer Should Know, edited by Kevlin Henney, gathers concise, experience-driven essays that sharpen practical programming judgment. Each entry is a self-contained lesson focused on habits, heuristics, and small practices that compound into better code, clearer design, and more effective teamwork. Rather than abstract theory, the collection emphasizes immediately actionable guidance for improving code quality, refactoring safely, writing meaningful tests, and communicating technical choices.
What you will learn
Expect concrete, reusable takeaways that influence daily engineering decisions. Core learning outcomes include:
- How to write readable, maintainable code and recognize common anti-patterns
- Practical debugging and diagnosis techniques that reduce time-to-fix
- Balanced testing strategies that increase confidence without slowing delivery
- Judgment for trade-offs—when to optimize, when to keep things simple, and how to prioritize predictability
- Better communication for code reviews, mentoring, and design discussions
Topics and teaching approach
The essays combine example-rich guidance with short, memorable rules of thumb. Coverage weaves low-level craft (naming, error handling, modularity) with higher-level concerns (architecture, incremental improvement, team dynamics). Many items present trade-offs and counterexamples so you can weigh short-term cleverness against long-term clarity. The tone favors practicality: bite-sized ideas you can try, test, and discuss with colleagues.
Who benefits most
This resource is well suited to developers at all stages. Early-career engineers will find a compact handbook of norms and pitfalls; mid-career practitioners will gain reminders and techniques to refine daily habits; seniors and tech leads can use the pieces as prompts for mentoring, policy, and alignment. It also works well as reading for team learning sessions, onboarding, or pairing exercises.
How to use this resource
Read entries one at a time and apply a single idea, or consult specific essays when facing a related challenge. The short format makes it easy to integrate insights into code reviews, retrospectives, and pair programming. Use selected items as discussion starters to create shared standards and improve decision-making across your team.
Why it matters
Software quality grows from consistent, well-reasoned practice rather than one-off clever solutions. These 97 focused insights distill collective experience into actionable habits that improve maintainability, reduce risk, and elevate professional judgment. Whether your goal is clearer code, stronger mentorship, or healthier team processes, this collection supplies practical prompts to level up your craft.