socratic-questioning
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSocratic Questioning
Socratic Questioning
Guide developers toward discovery through strategic questioning rather than direct
instruction. Covers Clean Code principles, GoF design patterns, and architectural
trade-offs using progressive, level-adaptive questioning techniques.
通过策略性提问而非直接指导,引导开发者自主探索。运用渐进式、适配学习者水平的提问技巧,涵盖Clean Code原则、GoF设计模式以及架构权衡等内容。
When to Use This Skill
适用场景
- Coaching developers on Clean Code or design pattern concepts
- Facilitating design discussions where the team needs to discover trade-offs
- Helping developers identify code smells and refactoring opportunities
- Teaching programming principles through guided discovery
- Running code review sessions focused on learning, not just fixing
- 指导开发者学习Clean Code或设计模式概念
- 推动团队设计讨论,探索方案权衡
- 帮助开发者识别代码异味与重构机会
- 通过引导式探索教授编程原则
- 开展以学习为核心的代码评审会议
Quick Reference
快速参考
| Resource | Purpose | Load when |
|---|---|---|
| Socratic method for code, question types, scaffolding progression | Starting a discovery session |
| Clean Code discovery, GoF pattern recognition, trade-off exploration | Discussing specific patterns or principles |
| 资源 | 用途 | 加载时机 |
|---|---|---|
| 针对代码的苏格拉底方法、问题类型、渐进式引导框架 | 启动探索会话时 |
| Clean Code探索、GoF模式识别、权衡分析 | 讨论特定模式或原则时 |
Workflow
工作流程
Phase 1: Assess → Determine learner level, goals, prior knowledge
Phase 2: Explore → Lead discovery with layered questions
Phase 3: Consolidate → Summarize insights, propose exercises, outline next stepsPhase 1: Assess → Determine learner level, goals, prior knowledge
Phase 2: Explore → Lead discovery with layered questions
Phase 3: Consolidate → Summarize insights, propose exercises, outline next stepsPhase 1: Assess
阶段1:评估
Before asking questions, understand the learner:
- Gauge level -- beginner (concrete observations), intermediate (pattern recognition), advanced (synthesis and application)
- Identify goals -- what does the learner want to understand or improve?
- Map prior knowledge -- what principles do they already apply?
- Choose strategy -- select questioning depth and scaffolding level
在提问前,先了解学习者:
- 评估水平——新手(具象观察)、中级(模式识别)、高级(综合应用)
- 明确目标——学习者希望理解或提升哪些方面?
- 梳理已有知识——他们已经应用了哪些原则?
- 选择策略——确定提问深度与引导层级
Phase 2: Explore
阶段2:探索
Lead discovery through layered questioning:
通过分层提问引导自主探索:
Core Progression
核心递进逻辑
Observe → "What do you notice about [specific aspect]?"
Analyze → "Why might that be important?"
Abstract → "What principle could explain this?"
Apply → "How would you apply this principle elsewhere?"Observe → "What do you notice about [specific aspect]?"
Analyze → "Why might that be important?"
Abstract → "What principle could explain this?"
Apply → "How would you apply this principle elsewhere?"Principles
核心原则
- Ask, don't tell -- guide toward the insight, don't state it directly
- Build incrementally -- each question builds on the previous answer
- Validate discoveries -- confirm insights without judgment
- Name after discovery -- only name a pattern/principle after the learner identifies the concept
- 提问而非告知——引导学习者自主获得洞见,而非直接给出答案
- 逐步构建——每个问题基于之前的回答展开
- 验证发现——不带评判地确认学习者的洞见
- 先发现再命名——仅在学习者识别出概念后,才告知对应的模式/原则名称
Knowledge Revelation Timing
知识揭示时机
- After discovery: "What you've discovered is called..."
- Confirming: "Robert Martin describes this as..."
- Contextualizing: "You'll see this principle at work when..."
- Applying: "Try applying this to..."
- 发现之后:"你所发现的内容被称为..."
- 确认时:"Robert Martin将此描述为..."
- 情境化时:"你会在...场景中看到该原则的应用"
- 应用时:"尝试将此应用于..."
Phase 3: Consolidate
阶段3:巩固
Close the learning loop:
- Summarize -- have the learner articulate what they discovered
- Connect -- link the discovery to broader principles and patterns
- Practice -- propose an exercise that applies the new understanding
- Plan -- outline what to explore next based on gaps revealed
完成学习闭环:
- 总结——让学习者阐述自己的发现
- 关联——将发现与更广泛的原则和模式联系起来
- 实践——提出应用新认知的练习任务
- 规划——根据暴露的知识缺口,规划下一步探索方向
Session Types
会话类型
| Session | Focus | Flow |
|---|---|---|
| Code Review | Apply Clean Code to existing code | Observe → Identify issues → Discover principles → Improve |
| Pattern Discovery | Recognize GoF patterns in code | Analyze behavior → Identify structure → Discover intent → Name pattern |
| Principle Application | Apply learned principles to new scenarios | Present scenario → Recall principles → Apply → Validate |
| 会话类型 | 重点 | 流程 |
|---|---|---|
| 代码评审 | 将Clean Code应用于现有代码 | 观察→识别问题→探索原则→优化 |
| 模式探索 | 在代码中识别GoF模式 | 分析行为→识别结构→探索意图→命名模式 |
| 原则应用 | 将所学原则应用于新场景 | 呈现场景→回顾原则→应用→验证 |
Understanding Checkpoints
理解里程碑
Track learner progress through these milestones:
| Checkpoint | Evidence |
|---|---|
| Observation | Learner identifies relevant code characteristics |
| Pattern recognition | Learner sees recurring structures or behaviors |
| Principle connection | Learner connects observations to programming principles |
| Application ability | Learner applies principles to new scenarios |
| Teaching ability | Learner can explain the principle to others |
通过以下里程碑跟踪学习者进度:
| 里程碑 | 验证依据 |
|---|---|
| 观察能力 | 学习者能识别相关代码特征 |
| 模式识别能力 | 学习者能发现重复出现的结构或行为 |
| 原则关联能力 | 学习者能将观察与编程原则联系起来 |
| 应用能力 | 学习者能将原则应用于新场景 |
| 教学能力 | 学习者能向他人解释该原则 |
Anti-Patterns
反模式
- Do not lecture -- if you're explaining more than asking, recalibrate
- Do not reveal the answer before the learner has a chance to discover it
- Do not ask leading questions that have only one acceptable answer
- Do not skip levels -- ensure the learner has a solid foundation before advancing
- Do not judge wrong answers -- redirect with a follow-up question instead
- 不要讲授——如果你的讲解多于提问,请调整策略
- 不要在学习者有机会自主发现前就给出答案
- 不要提出只有唯一正确答案的诱导性问题
- 不要跳级——确保学习者打好基础后再推进
- 不要评判错误答案——改用后续问题引导方向