Problem-Solving¶
A teachable, repeatable process for moving from "I don't know how to do this" to a working solution — modeled on Pólya's four phases and adapted for engineering's tightest feedback loop: the debugger.
This section walks the full arc of solving a problem: understanding what's actually being asked, devising a plan, carrying it out, and reflecting once it works. It then treats debugging as the same loop run at high frequency, and ends with concrete moves for when you're genuinely stuck.
Topics¶
| # | Topic | What you'll learn |
|---|---|---|
| 01 | Understanding the Problem | Restating in your own words, separating knowns/unknowns/constraints, spotting the real ask behind the stated one, defining "done" |
| 02 | Devising a Plan | Working backwards, solving a simpler subproblem, analogy to known solutions, choosing a strategy before touching code |
| 03 | Carrying Out the Plan | Executing in small verifiable steps, checking each move, knowing when to abandon a plan vs push through |
| 04 | Looking Back and Reflecting | Verifying the result, extracting reusable insight, generalizing the method, building a personal pattern library |
| 05 | Debugging as Problem-Solving | Hypothesis-driven debugging, bisection, reproducing reliably, reading the evidence instead of guessing |
| 06 | Techniques When You Are Stuck | Rubber-ducking, changing representation, taking a break, asking for help well, attacking from a different angle |
How to use this section¶
Each topic has five depth levels — junior → middle → senior → professional — plus an interview Q&A bank and hands-on tasks. Start at your level and climb. The first four topics form one continuous loop (Pólya's phases); read them in order before dipping into debugging and unstuck tactics as needed.
Part of the Engineering Thinking roadmap. To frame problems before you solve them, back up to Computational Thinking; to reason about the systems your solutions live in, go to Systems Thinking.