TL;DR
- 日本語とプログラミング言語の相互変換(つまり翻訳)が適切に起きているかを確認する
- 適切にできていない場合は何ができていないのか本人に自覚させる
- 日本語 → プログラミング言語の場合
- 日本語のどの部分が理解できていないことが原因で翻訳できなかったのか
- プログラミング言語 → 日本語の場合
- どの部分の説明に不足や認識違いがあったのか
- 日本語 → プログラミング言語の場合
- 適切にできていない場合は何ができていないのか本人に自覚させる
やること
- 基本的な開始コマンドは以下だけ
- 日本語で依頼をして、コードを書いてもらう
- これは、日本語 → コード変換(Aパターン)
- コードの説明をしてもらう
- 対象コード
- 自分が書いたコード
- 質問者が書いたコード
- 既存のコード
- これは、コード → 日本語変換(Bパターン)
- 対象コード
- 日本語で依頼をして、コードを書いてもらう
起こることと対処
- 正常系
- 依頼を達成できる
- Aパターン(日本語 → コード変換)
- 何をしたのか説明させる
- なぜそうしたのか説明させる
- 何が重要なのか、他の手法はあるか聞く
- Bパターン(コード → 日本語変換)
- わからないことや少しでも気になっていること、ひっかかる部分があるか聞く
- Aパターン(日本語 → コード変換)
- 依頼を達成できる
- 異常系
- Aパターン(日本語 → コード変換)
- 手が止まる
- 質問文を繰り返す
- 質問文のどの箇所、どの単語がわからないのか特定させる
- 「わかる」という言葉を信じすぎない
- 間違った記述をする
- なぜそう書いたのか説明させる(Bパターンへ移行)
- その説明自体が合っているかどうかで、理解している領域と理解していない領域が可視化されるのでそれを自覚させる
- なぜそう書いたのか説明させる(Bパターンへ移行)
- 手が止まる
- Bパターン(コード → 日本語変換)
- 説明できない
- なぜ説明できないコードがかけるのか、その異常さをまず認識してもらう
- 生成AIを使っていないか確認し、誤った使い方であることを伝える
- なぜ説明できないコードがかけるのか、その異常さをまず認識してもらう
- 説明が間違っている
- どの単語が間違っているのかを伝えた上で、前提知識が不足していないか確認する
- 説明できない
- Aパターン(日本語 → コード変換)
- メモ
- 基本的にはAパターンとBパターンを行き来するループ構造になる
最後にやること
- 本人に公開するかは別として、できたこと、できなかったことを記録して共有すると属人化しない
注意点
- 質問を行う時は、容易に繰り返せるように心がける
- どこで翻訳失敗しているのか確認しやすい
- 翻訳失敗が発生した際に、何がわかっていないのかを自覚してもらう
- 具体的にであればあるほど、改善アクションが明確になる
- 相手に説明させた際に、説明がわかりづらいと感じた場合は、対応するコードを書いてみてもらい理解度チェックをした方がよい
- 生成AIの吐き出した文章を「わかった」と思い込んで詠唱してしまうケースがある
- ChatGPTが便利すぎて
- 生成AIの吐き出した文章を「わかった」と思い込んで詠唱してしまうケースがある
技術メモ