AIに丸投げしない「5ステップ質問法」で学習効果を残す


AIに質問すれば数秒で答えが返ってくる。便利だけど、ふと気づく。「あれ、先週も同じこと聞いたな」と。

答えをもらっただけでは、頭に残らない。これがAI時代の学習で多くのエンジニアが直面している問題だ。

この記事では、AIの速さを活かしつつ、自分のスキルとして定着させる「5ステップ質問法」を紹介する。OpenAIとAnthropicの公式ガイド、そして学習科学で知られるフェインマン・テクニックを組み合わせた方法だ。


なぜ「丸投げ」だと学べないのか

「このエラー直して」「このコード書いて」

こういう曖昧な依頼は、曖昧な出力を生みやすい。OpenAIの公式ガイドでも、目的と前提を明確にしてから依頼する設計が推奨されている。

ただ、問題はそれだけじゃない。

丸投げすると、自分の頭を使うプロセスがスキップされる。答えを読んで「なるほど」と思っても、翌日には忘れている。これは学習科学でも指摘されていて、「説明できない箇所=理解の穴」として認識しない限り、知識は定着しにくい。

つまり、AIを使いこなすほど、意識的に「学習が残る質問の仕方」を設計する必要がある。


5ステップ質問法の全体像

以下の5つのステップで質問を組み立てる。

  1. 目的を固定する — 何を達成したいのか、自分の言葉で書く
  2. 前提・制約を共有する — 環境、使えるもの、使えないものを明示
  3. 分割して依頼する — 複雑な質問はサブステップに分解
  4. 自分の理解を説明する — 現時点で分かっていることを先に書く
  5. 検証とフィードバック — 出力を試し、うまくいかなかった点を伝えて改善

この流れは、OpenAIの「指示を冒頭にまとめる」「区切り記号で指示と文脈を分ける」という推奨事項と、Anthropicの「複雑な依頼はサブステップに分解」「フォローアップで改善」という運用ガイドに沿っている。


各ステップの具体的なやり方

ステップ1:目的を固定する

最初に「何を達成したいのか」を1〜2文で書く。

### 目的
React のuseEffectで、コンポーネントのアンマウント時にイベントリスナーを解除する方法を理解したい。

「useEffectについて教えて」ではなく、具体的なゴールを示す。これだけで、AIの出力の的確さが変わる。

ステップ2:前提・制約を共有する

環境や制約を明示する。

### 前提
- React 18を使用
- TypeScriptで書いている
- クラスコンポーネントは使わない方針

AIは前提が分からないと、古いバージョンの書き方や、使えないパターンを提案してくることがある。

ステップ3:分割して依頼する

複雑な質問は、一度に全部聞かない。

### 聞きたいこと(順番に)
1. useEffectのクリーンアップ関数が呼ばれるタイミング
2. イベントリスナーを追加・解除する基本パターン
3. よくあるミス(メモリリークなど)

Anthropicのガイドでも、サブステップへの分解が推奨されている。一度に全部聞くより、段階的に聞くほうが精度が上がる。

ステップ4:自分の理解を説明する

ここがポイント。現時点で分かっていることを先に書く

### 自分の理解(合ってるか確認したい)
useEffectの第二引数に空配列を渡すと、マウント時に1回だけ実行される。
クリーンアップ関数を返すと、アンマウント時に呼ばれる...と思っている。

これはフェインマン・テクニックの応用だ。「子どもに教えるつもりで説明する」という学習法で、説明できない箇所が理解の穴として浮かび上がる。

AIに先に自分の理解を伝えると、「その理解は正しい」「ここが違う」というフィードバックがもらえる。単に答えをもらうより、はるかに頭に残る。

ステップ5:検証とフィードバック

1回で終わりにしない。実際に試して、結果を伝える。

### 追加で聞きたいこと
教えてもらったコードを試したら、リスナーが2回呼ばれる現象が起きた。
StrictModeが関係してる?どう対処すればいい?

Anthropicは「フォローアップで追加指示・明確化を行う運用」を公式に推奨している。対話で精度を上げていく過程で、自分の理解も深まる。


実践テンプレート

以下をコピーして使ってみてほしい。

### 目的
(何を達成したいか)

### 前提
- (環境、バージョン)
- (制約、使えないもの)

### 自分の現在の理解
(分かっていること、仮説)

### 聞きたいこと
1. (質問1)
2. (質問2)
3. (質問3)

この方法が向かないケース

フェインマン・テクニックを土台にしたこの方法には、向かない場面もある。

  • 単純な事実確認(「このコマンドのオプションは?」など)
  • 時間がないとき(納期直前の緊急対応)
  • 暗記中心の内容(APIのパラメータ名を覚えるなど)

学習目的ではなく、純粋に作業効率を上げたいときは、シンプルに丸投げしたほうが早い。使い分けが大事だ。


まとめ

AIを使うほど速くなるけど、速さだけを追うと学びが残らない。

5ステップ質問法は、その矛盾を解消する一つのアプローチだ。

  • 目的と前提を固定してから聞く
  • 複雑な質問は分割する
  • 自分の理解を先に説明する
  • 結果をフィードバックして改善する

全部の質問でやる必要はない。「これは理解しておきたい」と思ったテーマのときだけでも、試してみてほしい。


参考リンク