はじめに
こんにちは,プログラミングスクールのメンターをやっている就活中の大学院生です.読書が趣味です.
この記事は以下のような方に役に立てばと思い書いています.
- プログラミングの経験が浅く,他の人への質問の仕方がわからない
- エラーが出ているが,何が分からないかわからない
ということで,早速メンター側も対応しやすく,生徒側も適切なアドバイスをもらいやすい
だろうと私が考える質問の仕方をお伝えしたいと思います.
段階的に自分の理解度を伝える
まずはエラーがでたり,想定した動作にならない場合の質問についてです.
このような場合に,よくある質問の仕方が,
「~~~.このようなエラーが出ました.色々調べてみましたがわかりませんでした.教えていただきたいです.」
のようなものです.
これだと生徒側は,あまり考えずに質問ができてしまうので,自分の問題解決能力が養われないというデメリットがあり,メンター側は生徒の理解度が分からないので,どの段階からアドバイスをすればいいのかが分かりません.
ここで,質問をすることは,全く悪いことではありません.むしろずっと一人で抱え込むことの方が良くないと思います.
ただ,質問の仕方を工夫して,自分の成長につながる質問をどんどんしていこうということです.
➀エラーが出ているかどうかを伝える
- エラーの見方がよくわからない場合はその旨を伝える
- エラーが出ていないのであれば,どのような動作を想定していて,実際はどのような動作になってしまっているのかを伝える
➁エラーメッセージがどういうことを意味していると考えているか伝える
- 意味が分からない場合はその旨を伝える
- 理解が誤っていれば,エラーメッセージの正しい意味を教えてもらえます.
➂エラーメッセージの原因がどこにあると考えたかを伝える
- 原因が分からない場合はその旨を伝える
- 考えが誤っていれば,どこに原因があるのかを探す方法(デバッグツールやヘルパ関数の使い方など)を教えてもらえます.
このように段階的に理解度を伝えれば,適切なアドバイスをもらいやすくなると思います.
どういう考えでどのようなことを試したのかを伝える
さらに,エラーに対してその原因を考え,自分なりにいろいろと試してみるのはとても大切なことです.それで,解決の糸口が見つかれば,自力での問題解決につながり,自分の問題解決能力が高まります.
ただ,時には試しても試してもうまくいかないこともあると思います.
そんなときはためらわずに質問しましょう.
ここで大切なのは,どういう考えでどのようなことを試したのかをわかりやすく伝える
ことです.
ここをめんどくさがって「いろいろと試しましたがうまくいきませんでした」と伝えてしまうと,メンター側のアドバイスが自分が試したことと被ってしまったり,自分がどこまで問題の原因を理解できているのかという情報が失われてしまいます.
ので,
「こういう理由から,ここが原因だと考えて,コードのこの部分をこのように変えてみましたが,エラーは消えませんでした.」
のように伝えると「理由が間違っているのか」「原因と考えている場所が間違っているのか」「コードの修正の仕方が間違っているのか」など具体的な指摘がもらえると思います.
まとめ
私としては,質問対応は「問題の伝達」に対する「解法の教授」
ではなく,「問題解決能力のアウトプット」に対する「レビュー」
という位置づけでとらえる方が生徒の方にとっては成長につながると思っています.
つまり,
生徒が問題が出たことをメンターにお知らせ(問題の伝達)し,メンターがその解決方法を考え,教える(解法の教授)
ではなく,
生徒が問題に対しどのように考え,試し,解決しようとしたのかを公開(問題解決能力のアウトプット)し,メンターがそのアウトプットについて,よかった点・改善点を指摘する(レビュー)
ということです.
生徒とメンターどちらが「考え」ているか比較してみてください.
最後に,こんなに色々と言われると,質問がしづらくなってしまうかもしれませんが,はじめから完璧な質問をできる人はいません
(私自身,気を抜くと未だにダメな質問の例で質問してしまうことがあります.).
プログラミングスクールはいい意味でも学校なので,どんどん質問して,少しずつ質問のコツをつかんでいってもらえたらと思います.
この記事がその際の参考になればうれしいです.