はじめに
エラーや問題に直面し自力で解決ない場合、メールや掲示板サイトで人に聞く際の良質な質問のポイント
対象
質問から解決までに以下のような問題を抱えている人
- 漠然と質問の仕方がわからない
- 質問してもなかなか返信がない
- 解答が的外れ
- 解答を得られるまでに何回もやりとりが発生する
得られること
・ できるエンジニアと思われる ← 以外にこれ重要! コーディング能力がある人 < 質問力がある人
・ 論理的思考能力が身に付く
・ 言語化能力が身に付く
・ 問題解決能力が身に付く
良質な質問とは
ここでは少ないやり取り(できれば一発)で目的の解答を得られる質問と定義
質問したときやりがちなNGなこと
「××というエラーが発生しました、どうしたらいいですか?」
(・_・).。oO(何をしたら発生したの?)
(・_・).。oO(どういう実装をしたの?)
「〇〇ができません。全ソースコードペタ〜」
(・_・).。oO(範囲が広い。。。どこを見たらいいの?)
解答をすると「それはもうやりました」
(・_・).。oO(はじめに言っておいて。。。)
「自己解決しました」
(・_・).。oO(結局何が原因だったの?)
わからなかったら直ぐ質問して、と言われたのでとりあえず質問する
(・_・).。oO(直ぐ質問して=自分で考えずに直ぐ、という意味じゃないよ)
本題:質問の仕方
質問する前に内容を整理しましょう。
これを繰り返すことで次の能力が向上します。
- 論理的思考能力
- 言語化能力
- 問題解決能力向上
さらに、整理することで問題点や解決方法が見つかる可能性もあります。
次章から具体的なポイントを説明します。
前提
- 出来るだけ多くの情報を
- わかりやすく
- 詳細に
1. 実現したいこと、解決したいエラーは何か
簡潔に。
例
- 〇〇という機能を実装したい。
- ××したい。
2. 問題の詳細
エラー画面のキャプチャやログを記載すること
出し惜しみしないこと
ダメな例
- エラーの文字列だけを記載
良い例
- コマンド実行からのログ
- 操作を開始してからのログ
- Web系であれば、ブラウザ内だけでなくURLも含めたキャプチャ等
3. 発生手順
エラーが発生した直前の手順だけというように手を抜かないこと
一連の操作の流れを記載すること
例
-
Aの画面でBのボタンをクリック
=> B'の画面が表示sれる -
〇〇の情報を記入
-
Cのボタンをクリック
=> ××のエラーが発生
4. 対象のソースコードの提示
- 正常動作していた時からエラーが発生した時点までに編集したソースコード
- キャプチャであれば行番号を含める
- ソースコードを貼り付ける際はMarkdown記法[^1]を使用
[^1]: Markdown記法 サンプル集
5. 問題に対して自分が試したこと
- 実施した内容とその結果(どうダメだったか)
- 参考サイトのURL
6. 環境
- システム構成
- OS
- ソフトウェアのバージョン
※ 自己解決した場合
情報を共有しましょう。
今後類似した問題に直面したときや、別の人が同じ問題に直面したときに役立ちます。
最後に
質問の仕方が上手な人は周りの評価が上がります。
逆に、プログラミング能力に長けていても、質問の仕方が下手だと「できないやつ」と思われてしまいます。