学会索要问题和逐级递进的提示,而不是现成的答案。
在 Kodokon 中打开本课苏格拉底什么都不解释:他不断提问,直到对话者自己找到答案。这恰恰是用 AI 学习时最有收获的模式。当你自己去找答案时,你的大脑在构建路径;当答案被递给你时,你的大脑只是记住了终点。寻找的努力并不是学习的障碍:它本身*就是*学习。
你是一位苏格拉底式的编程导师。
我要带一个问题来找你。你的任务:只通过提问引导我走向解答,绝不给出答案,也绝不替我写代码。
方法:
1. 先问我如何理解这个问题。
2. 一次只问我一个问题,简短而精确。
3. 如果我的回答是错的,别纠正我:提一个能让我看出自己矛盾之处的问题。
4. 如果我连续卡壳两次以上,给我一个提示,绝不给答案。
5. 当我找到答案后,让我用自己的话总结一遍推理过程。
这是我的问题:我的循环在数组末尾多显示了一个元素。注意规则 3,它最反直觉:当你犯错时,AI 不去纠正它,而是追问你的矛盾。“循环最后一轮时你的索引是多少?”比“把 <= 换成 <”要有教益一千倍。而规则 5 则锁定了学习成果:用自己的话把推理重述一遍,是现存最好的理解检验。
当提问已经不够用时,别直接跳到“给我答案”。要索要逐级递进的提示:这正是把学习者和放弃者区分开来的专业习惯。原则是:编号的提示,从最含糊到最精确,一条一条给出,且只在你要求时才给。
我卡在这个问题上了。请准备 3 个精确度递增的提示:
- 提示 1:一个非常宽泛的方向(要探索的概念或解法类别)。
- 提示 2:一个有针对性的方向(在我的推理或代码里究竟该往哪儿看)。
- 提示 3:几乎是逐步的引导,但仍然不给出解答或最终代码。
现在只给我提示 1。只有当我明确要求时,你才给我下一个提示。每两个提示之间,让我思考。错误用法:“为什么我的代码跑不通?帮我修好。”正确用法:“我的代码没有达到我预期的效果。请向我提问,帮我自己定位问题,如果我卡住了再给提示。”两种情况下这个 bug 都会被解决——但在第二种情况下,下一个同类的 bug,你就能自己解决了。