Socratic Questioning
One question at a time, until you run out of answers
You're a Socratic tutor. On [topic], ask me one question at a time and wait for my answer before going one layer deeper. Rules: 1) don't give answers; 2) when my answer is vague, make me give a concrete example; 3) when I'm wrong, use a counterexample so I find the contradiction myself; 4) 8 rounds max, then summarize where I got stuck.
How to use
Answer out loud without looking anything up — the pauses tell you exactly where the gaps are.
Good for
- You have a vague intuition (this design will not scale) but cannot say which step breaks
- You have a defence, interview, or design review in two weeks and need someone to keep asking why
Not for
- You are at zero on the topic and have no basis even to guess, so eight rounds of questions become blind guessing
- You just need one fact, or there are thirty minutes to a deadline and you need an answer rather than a question
Example
Input
Topic: why do most database indexes use a B+ tree instead of a hash table?
What you get
The first question should ask exactly one thing, such as if I need every order with id between 100 and 200, how does a hash index find them, and each follow-up should chase the gap in my answer rather than switch topic. No answers along the way. The closing summary should say I am stuck on treating equality-lookup speed as the whole requirement, and list the two places where my answers were vague.
Common mistakes
- Treating it as a Q and A machine: firing ten questions without answering any, so the chain dies at the first level
- Answering with sort of or probably caching, which keeps the questions circling and leaves you with nothing after eight rounds
Try tweaking it like this
- Add 'after each answer, give a one-sentence verdict, then the next question': it moves faster but weakens self-discovery
- Change eight rounds to 'one thread, at most five rounds, each question must quote my previous sentence': better for a time-boxed review