Debugging Craft
🚧 ExpandingDebugging is the most undertaught skill in software, and the most quietly career-defining. Bootcamps teach you to build; almost nobody teaches you to systematically find out why the thing you built doesn’t work. The good news: debugging is a craft, learnable and repeatable, not a mystical talent some people are born with — which is exactly why it earns a place on a deliberate learning path. The engineers who look like wizards aren’t guessing faster than you — they’re following a disciplined process of forming a hypothesis, checking it against reality, and narrowing the search space until the bug has nowhere to hide.
When this page is filled in, it’ll cover the core loop: reproduce it reliably first (an intermittent bug you can’t trigger is nearly impossible to fix), then narrow down by halving the search space, change one thing at a time, read the actual error instead of assuming, and verify the fix actually fixed this bug. (The same disciplined narrowing is what keeps you calm in the middle of an incident, when the pressure is highest.) Until then, the Go Deeper links carry it — Agans’ Debugging is the one I’d hand to anyone starting out.
📚 Go Deeper
Books
- Debugging — David J. AgansNine rules that apply to any system, software or not. 'Make it fail' and 'quit thinking and look' have saved me more times than I can count.
- The Pragmatic Programmer — Hunt & ThomasDebugging as a mindset — rubber-ducking, not assuming, and tracing problems to their root rather than patching symptoms.
Tools
- Wizard Zines — Julia EvansDelightful, deeply practical zines on the tools underneath your bugs: networking, debugging, DNS, strace, and more.