環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

【初心者さんの悩み】プログラミングでつまづいた時に質問の仕方が分からない

【初心者さんの悩み】プログラミングでつまづいた時に質問の仕方が分からない

※ 初心者さんから頂いた声をもとに記事を書いています。

質問の仕方が分からないというのは、経験したことがない人には意外と伝わりづらい悩みです。単純なようで奥が深い悩みかもしれません。

分からない」とひとことで言っても、

  • 質問したいけど、ワードが分からない
  • エラーが出てしまって、どう対処したら良いか分からない
  • 問題は出ていないが、次に何をしたらいいか分からない
  • お手本にしているプログラムが、どういう意味か分からない

など、様々です。

注意

この記事は、質問の仕方が分からない方向けです。中級者以上の方に、質問の仕方を強制するものではありませんのでご了承ください。

質問をためらう必要はなし!

誰でも最初は初心者ですので、質問をためらう必要は全くありません。

また、技術は毎日のように進化していきますので、ベテランになろうが分からない事だらけです。質問なんてガンガンしましょう。詳しく知っている人に直接話をきける環境にある人はとてもラッキー。そうでない人も今は技術的な質問ができるサービスもありますし、SNSでも交流できたりするので、方法はあると思います。

それでは。どんな風に質問すると良いでしょうか。

体系立てて質問しよう

いきなり難しいことを言いました

初心者さんの質問でありがちなのが、自分が問題だと思っている箇所を限定して話してしまって、意味が伝わらないこと。

DBから値をとろうとしたけどエラーが出てしまったのですが、どうしたら良いですか?

みたいな質問では、どうにも答えられないというわけです。質問を受ける側も構造全体を把握しなければ回答しづらいので、以下のことを少しだけ注意してみるのはどうでしょうか。

次の5つを意識して話すと良い

質問を受ける側も、広めのスタンスで待ち構えていますので、完璧に正確なワードを使えなくても大丈夫です。できるだけ正確に伝えようという意識で次のことに意識してみてください。

1) 環境・前提条件

意外とこの前提条件が大事な事が多いです。

  • OSは「macOS」を使っています
  • プログラミング言語はPHPです
  • フレームワークはLaravelを使っています
  • IDEはVSCodeを使っているよ

2) やりたいこと(大枠)

ここも前提条件に似ていますが、まず大枠として今なにをしているのかを伝えましょう。

  • 会員登録のプラグラムを書こうと思っている
  • エクセルのマクロを組んで、データの集計をしようとしていて・・
  • 自分の作ったアプリをWEB上で公開しようとしている

3) 何をしようとしたら

問題の要の部分ですね。意外と「どんな問題が起こったか」だけを話してしまって、「何をしたときに」をすっとばされる方が多い印象です。

  • Controllerにこういうプログラムを書いたんだけど・・
  • こういうコマンドを打ったんだけど・・・
  • このボタンを押したんだけど・・・

「こういう」の部分は、最初は言葉で説明するのは難しいので、実際に見せてしまうのが一番手っ取り早いし正確かもしれません。

4) どんな問題が起こったか

さすがに、ここは省かれないので、意識する必要はないでしょう。

  • エラーが起こってしまった
  • 画面遷移できなかった
  • 思った通りの動作をしなかった
  • データがおかしくなってしまった

ここも、できるだけ具体的に教えて頂けるとありがたいです。「おかしくなった」だけではなく「どんなエラーなのか」「どんな動作になったのか」

5) ちなみにどんなことを試してみたか

ここまで話をきくと、回答者の方は頭の中で、問題の切り分けを行っていますので、もしやってみたことがあれば欲しい情報です。

  • ちなみに、設定で○○をtrueにしてみたが、うまくいかなかった
  • 再起動してもう一度試してみたけれど、同じだった
  • ○行目までは、正常に動作しているのは確かめることが出来た
  • 「○○」というワードで検索してみたが、情報が見つけられなかった

まとめ

ここまでまともに質問をまとめることが出来る人は、初心者の方ではなかなか居ません。しかしながら、こういう情報があると、話がすんなり進みますよというアドバイスと思っていただければ幸いです。

「もっと調べてみて」なんて言われることもあるかもしれませんが、「分かりました。15分調べて分からなかったらヒントもらいに来てもいいですか。」なんて返しておけば、次も質問しやすいかもしれないです。

ちょっと、テーマがテーマだけに、まとまらない文章になってしまったかもしれませんが、許してくださいm