はじめに
エンジニアになりたての頃、先輩に質問するとき、こんなメッセージを送っていました。
動きません。
エラーが出ます。
どうすればいいですか?
今思えば、「何をしたいのか」「どこで困っているのか」が全く伝わらない質問でした。
質問する側としては状況が頭の中にあるので伝わっている気になりますが、相手からすると状況が分からず、結局やり取りが増えてしまいます。
そこで、先輩エンジニアへ相談するときに意識すると伝わりやすくなるポイントをまとめます。
1. 何をしたいのかを書く
まずは目的を書きます。
悪い例
エラーになります。
良い例
ユーザー一覧を取得するAPIを作成しています。
空のデータが返ってきた場合でも正常に処理したいです。
2. 実際に何が起きているかを書く
期待している結果と実際の結果を書きます。
例
- 期待する動作
- 空配列なら空配列を返したい
- 実際の動作
-
IndexError: list index out of rangeが発生する
-
この2つがあるだけで状況を理解しやすくなります。
3. エラーメッセージは省略しない
「エラーが出ます」だけでは原因を特定できません。
なるべくエラーメッセージをそのまま貼り付けます。
悪い例
エラーになります。
良い例
IndexError: list index out of range
4. 該当するコードを載せる
コード全体ではなく、問題が起きている箇所を共有します。
例えば
result = [items[0] for items in data]
のように、原因になりそうな部分だけでも十分です。
5. 自分で試したことを書く
これがあるだけで、「考えた上で質問している」ことが伝わります。
例
- 空リストかどうかを判定してみた
-
print()で値を確認した - ドキュメントを読んでみた
6. 何を教えてほしいのかを書く
最後に、何を知りたいのかを一文でまとめます。
例
- 原因が知りたい
- 修正方法を知りたい
- より良い実装方法があれば知りたい
相談テンプレート
やりたいこと
- ○○をしたい
期待する動作
- ○○になること
実際の動作
- ○○というエラーが発生する
エラーメッセージ
- ○○
対象コード
- (コード)
試したこと
- ○○
- ○○
相談したいこと
- 原因と修正方法を教えていただきたいです。
おわりに
私自身、最初は「動きません」「エラーになります」といった、相手に状況が伝わらない質問ばかりしていました。
しかし、
- 何をしたいのか
- 何が起きているのか
- 何を試したのか
- 何を知りたいのか
この4点を意識するだけで、質問の質は大きく変わります。
質問が上手になると、回答をもらいやすくなるだけでなく、自分自身も状況を整理できるようになります。
困ったときほど、一度情報を整理してから相談することを意識してみると、コミュニケーションがスムーズになります。
JISOUのメンバー募集中!
プログラミングコーチングJISOUでは、新たなメンバーを募集しています。日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてください!