💡

【最強質問フォーマット付き】プログラミングが上達する人の質問の仕方

2021/11/20に公開

プログラミング学習をしていると、どうしてもわからない質問とか、自力では解決できない疑問点やエラーは頻繁に起きます。

特に初心者の段階では、「わからないことがわからない」というような現象が起こり、実際に詳しい人しか知らないことも多いです。

1番の解決方法は、自力で調べて解決することが理想ですが、難しい場合は多々あります。

その際、メンターや詳しい知人、エンジニアの人に質問するときがあると思います。

質問の仕方によって、あなたのプログラミングの上達度合いが大きく変わってきます!

相手に伝わりやすく、何が問題で、何を解決したいのか上手に質問することであなたの思考の整理、言語化能力、論理的能力も向上していきます!

そして、将来エンジニアに転職する場合、先輩エンジニアに質問するときにも今の内から正しい質問方法を覚えておくことで必ず役に立ちます!

また、質問される側の時間をできるだけ奪うことなく、ご自身が意図した回答が返ってきやすくなります!

本記事では、まず"上達しない人の質問"の仕方を紹介した上で、上達できる最適な質問方法と質問フォーマットをお伝えします!

上達しない人の質問

結論、「ここがわからないので、教えてください。どうしたらいいですか?」

このようなニュアンスの質問です。

なぜかというと、質問者が思考停止になっており、相手に全て委ねている質問だからです。

質問された側も「?」が浮かび、相手の時間も労力も奪ってしまいます。

僕もメンターとして初学者に教えている時に、このような質問をする人は、基本的に却下し、正しい質問方法で聞いてくるように伝えています。
なぜなら、こちら側も具体的に何ができているのかわからなく、時間もかかり、その人自身の成長に繋がらないからです。

何より、このような質問をすることによってあなた自身の首を締めていることになります。

たとえ、このような質問をして解決したとしても、それはただ答えを教えてもらったに過ぎません。極端に言うと、カンニングと一緒です。

また同じようなことを繰り返し、本当の意味で理解したことにならず、いつまでも上達できず、挫折してしまいます。

もし、このような質問をしている方がいたら、この瞬間から卒業しましょう!気づけたことをポジティブに捉えていいと思います!

では、どのように質問の仕方だと上達が早くなるのかをお伝えします!

上達する人の質問

結論、「今、△△のような状況です。□□と仮説を立てて、〇〇を実行してみたのですが、うまくいきませんでした。他に解決策や見るべき箇所はありますか?」

このような質問です。

基本的には30分悩んでわからないかったら質問しましょう。
1つの時間に何時間も使うのは、非効率だからです。

上記は、一例ですが、ポイントとして、今起きている状況を伝え、自分なりの考えや仮説を考えて、それを実行した結果も踏まえて、解決方法を質問している点です!

この質問が上達を加速させる理由を4つお伝えします!

■ 今の状況を説明している

自分が何をしようとした時に、問題またはエラーが発生したのかを伝えている点です。ここはできるだけ細かい方がいいです。

■ どんな問題やエラーが発生しているか伝えている

どんな問題やエラーが発生しているのか、より具体的に伝えましょう。
エラーの内容や問題を自分の言葉で言語化してみるとなお良いです。
最初は、難しいですが繰り返す内に言語化できようになります。

■仮説と検証をしている

問題やエラーから考えた自分なりの考えた推測を考えることが大切です。
正解、不正解とかではなく、事象に対しての考えを整理して相手に伝えることで、教える側も「ここまではできている、ここはまだ試してないか、アクションプランを提示やすい」
また、質問者の思考のクセもわかるので、メンターもアドバンスしやすく、次に活かせます。

■答えではく、ヒントや見るべき箇所を教えてもうう姿勢

「答え」を教えてもらうのほうが、楽で、早いですが、解決法やヒントを教えてもらい、サポートはあったものの最終的に自力で解決できた方が圧倒的に成長します!自信にも繋がります!

もちろん、どうしようもない時は質問して答えと解決方法を教えてもらうで問題ないです!

僕自信もメンターをやっている時、このような論理的な質問をしてくる方は、かなり上達が早い印象です!

テンプレ質問フォーマット

上達する質問の仕方をお伝えしましたが、より質問しやい型を紹介します!

このフォーマットを使用すると質問しやすいです!

例も載せておきます!コピペして使ってください!

【質問フォーマット】

■ 今、起きている事
(例)ユーザー新規登録をしようと、登録ボタンを押したらエラーになった。

■ 解決したい事
(例)ユーザー新規登録を実装し、データベースに保存したい。

■ 調べた事、考えた仮説
(例)公式リファレンスやQiitaで似たような記事をみた。(記事のURLなども載せる)
deviseのgemがインストールされているかは確認済み。作成したキー名も間違っていないので、データベースが怪しいと思いテーブル名やカラム名を調べてみた。

■ 仮説を元に行った結果
(例)データベースにもテーブル、カラムもきちんと反映されており、スペルミスも見当たらなかった。再度、実行してみたが同じくエラーで解決できなかった。

初めは難しいかもしれませんが、もう一段階ステップアップするためには、絶対に必要です。

質問の仕方1つであなたのプログラミングの上達度合いが変わってきます!

成長のための訓練だと思いがんばりましょう!
この質問方法に慣れてくると自力で解決できるスピードも能力も向上していきます!

この記事が少しでもあなたの役に立てたら幸いです!

Discussion