質問力をつけてエンジニアとしての格を上げろ!!!


はじめに

エラーや問題に直面し自力で解決ない場合、メールや掲示板サイトで人に聞く際の良質な質問のポイント

対象

質問から解決までに以下のような問題を抱えている人

  • 漠然と質問の仕方がわからない
  • 質問してもなかなか返信がない
  • 解答が的外れ
  • 解答を得られるまでに何回もやりとりが発生する

得られること

・ できるエンジニアと思われる ← 以外にこれ重要! コーディング能力がある人 < 質問力がある人

・ 論理的思考能力が身に付く

・ 言語化能力が身に付く

・ 問題解決能力が身に付く

良質な質問とは

ここでは少ないやり取り(できれば一発)で目的の解答を得られる質問と定義

質問したときやりがちなNGなこと

「××というエラーが発生しました、どうしたらいいですか?」

(・_・).。oO(何をしたら発生したの?)
(・_・).。oO(どういう実装をしたの?)

「〇〇ができません。全ソースコードペタ〜」

(・_・).。oO(範囲が広い。。。どこを見たらいいの?)

解答をすると「それはもうやりました」

(・_・).。oO(はじめに言っておいて。。。)

「自己解決しました」

(・_・).。oO(結局何が原因だったの?)

わからなかったら直ぐ質問して、と言われたのでとりあえず質問する

(・_・).。oO(直ぐ質問して=自分で考えずに直ぐ、という意味じゃないよ)

本題:質問の仕方

質問する前に内容を整理しましょう。
これを繰り返すことで次の能力が向上します。
- 論理的思考能力
- 言語化能力
- 問題解決能力向上

さらに、整理することで問題点や解決方法が見つかる可能性もあります。

次章から具体的なポイントを説明します。

前提

  • 出来るだけ多くの情報を
  • わかりやすく
  • 詳細に

1. 実現したいこと、解決したいエラーは何か

簡潔に。

  • 〇〇という機能を実装したい。
  • ××したい。

2. 問題の詳細

エラー画面のキャプチャやログを記載すること
出し惜しみしないこと

ダメな例

  • エラーの文字列だけを記載

良い例

  • コマンド実行からのログ
  • 操作を開始してからのログ
  • Web系であれば、ブラウザ内だけでなくURLも含めたキャプチャ等

3. 発生手順

エラーが発生した直前の手順だけというように手を抜かないこと
一連の操作の流れを記載すること

  1. Aの画面でBのボタンをクリック
     => B'の画面が表示sれる

  2. 〇〇の情報を記入

  3. Cのボタンをクリック
     => ××のエラーが発生

4. 対象のソースコードの提示

  • 正常動作していた時からエラーが発生した時点までに編集したソースコード
  • キャプチャであれば行番号を含める
  • ソースコードを貼り付ける際はMarkdown記法[^1]を使用

[^1]: Markdown記法 サンプル集

5. 問題に対して自分が試したこと

  • 実施した内容とその結果(どうダメだったか)
  • 参考サイトのURL

6. 環境

  • システム構成
  • OS
  • ソフトウェアのバージョン

※ 自己解決した場合

情報を共有しましょう。
今後類似した問題に直面したときや、別の人が同じ問題に直面したときに役立ちます。

最後に

質問の仕方が上手な人は周りの評価が上がります。
逆に、プログラミング能力に長けていても、質問の仕方が下手だと「できないやつ」と思われてしまいます。