[Sy] わからないことを質問する時に大切なポイント
プログラマー初級者・これから目指したと思ってる人を応援するオンラインプログラミング塾 Sy-mentor(エスワイメンター) の公開記事です。プログラミングを勉強してると、うまく動かなかったり環境構築に失敗したり、様々な問題にぶつかります。そんな時に、 詳しい人に対してどうやって質問すると良いのか? というポイントを挙げていきます。
いくら経験のあるエンジニアでも、いきなり「エラーが起きたんですけど、どうしたら良いですか?」みたいにざっくりと質問されても、困ってしまいます。
質問する時は次のようなポイントを整理して、 一つ一つ伝えていくことが大切になります。
最初はめんどくさく感じるかもしれませんが、こういうポイントを意識しながら勉強することで、必ずスキルアップにもつながります。
できる範囲で構わないので、少しずつチャレンジしてみましょう。
では、整理するポイントを挙げていきます。
1. どんな環境なのか?(前提)
環境というのは、例えば次のようなものを指します。
- OS(例:Windows 10, macOS Sierra など)
- プログラミング言語(例:PHP7.1, Ruby2.4 など)
- フレームワーク(例:Ruby on Rails 5.0, CakePHP 3.5 など)
- データベース(例:MySQL 5.7 など)
- Webサーバ(例:Nginx 1.12, Apache(httpd)2.4 など)
- パッケージマネージャ(例:npm 5.5, homebrew 1.3.6 など)
おそらく、よくわからないものもあると思います。
分かる範囲で良いので、どんな OSやソフト・アプリを使っていて、バージョンはどれくらいなのか 、関係ないかもしれないものでも良いので、整理して伝えるようにしましょう。
例えば Windows なのか Mac なのかでやるべきことが全然違ったり、ソフトなどはバージョンがちょっと違うだけでまったく別の対処が必要だったりするので、必ず最初に伝えておきたい情報です。
2. 何をしたかったのか?(目的)
何をしようとしているのかを伝えることで、最終的なゴールがわかります。
質問される側はゴールを知ることで、 そのゴールに向かうために最適な解決方法は何なのか? という考え方ができるようになります。
3. 何をしたのか?(過程)
2が目的だとすると、過程になります。
例えば、「この順番でコマンドを実行した」とかです。
これはいざ問題が起きた時に、「何したっけ?」となりがちなので、なるべく 作業をする時などは、メモを取りながらやると良いです。
そうすることで、何か問題が起きた時にそのメモを詳しい人に見せるだけで、怪しいところのアタリをつけることができたりします。
(ぼくは今でも何か作業をする時は、コマンドの実行ログを残しつつ進めるようにしています。)
4. 何が起きたのか?(問題)
元々これを聞きたいので、当然ここが一番重要です。
ただ、単に「エラーが起きました」と言うだけ、というのはやめましょう。残念ながらそれだけだとすごく難しいです。
ここで重要なのは、
- 何をした時に
- どこまでうまくいって
- どこでエラーになって
- どんなメッセージや画面が表示されたのか
という情報をなるべく詳しく整理して伝えることです。
ひとこと
前提、目的、過程、問題、どれが抜けても、解決は難しくなります。
質問に答える方も必死なので、なるべく多くの手がかりを与えてあげましょう!