【初学者必見】プログラミング学習は質問の仕方で効率が100倍変わります
・プログラミング学習が思ったように進まない
・わからないことが多くどこから解決すれば良いのかわからない
・エラーがなかなか解決しない
こんな悩みを解決できる記事を用意しました。
この記事でご紹介する「最高の質問の仕方」を実践すれば、30代で実務未経験でもエンジニア転職への道がグッと近づきますよ!
なぜなら、実際に私もこの方法でエンジニアへ転職できたからです。
実務未経験からエンジニア転職を成功させたい方は是非最後まで見てください!
プログラミング学習における質問の重要性
実際のエンジニアの現場においても質問というのは非常に重要です。
理由は単純でエンジニアの仕事は決まった要件に合わせて開発をすることが仕事であって、エラーやわからないことはなんとしてでも解決しなければならないからです。
わからないことがあることは当然です、エンジニアも特定の言語全てのドキュメントを覚えているわけではないからです。
その場でGoogleやGithub、公式のドキュメントを利用して開発をすることは日常茶飯事です。
時には他のエンジニアやベンダーに質問をすることもあります。
質問をするにしても調べるにしても「決まった要件に合わせて開発をする」という目標達成のための課題解決手段の一つに過ぎません。
皆さんがわからないことやエラーに向き合うことはエンジニアになった後に課題解決をするための力を養っているということになり、そのために良い質問の仕方を学んで実践するということはエンジニアとして必須スキルとも言えます。
最高の質問をする4つの手順
質問をする際は以下の手順に沿って質問をしましょう。
質問をする手順
- 以下のキャプチャを撮る
エラーの画面・実現できない機能の画面・該当のコード
場合によってはgifで録画する - 仮説検証をする
- 質問フォーマットを埋める
- 質問する
エラーが発生した画面のキャプチャを撮る
エンジニアとしては当然ですが、エラーが発生した場合は必ずキャプチャを撮りましょう。
キャプチャを撮るべき画面は以下の通りです。
キャプチャを撮るべき画面
- エラーが発生した画面
- 実装したい機能の画面
- 該当のコードの画面
- 該当の処理を実行した際のターミナルの画面
質問する前に仮説検証をしよう
この過程が最も重要です。
実際の開発現場では、自身でエラーの内容について調べ、仮説を立て、検証をするという段階を踏んだ上で質問するという過程をとる現場がほとんどだからです。
その他にも検証環境を利用してわざとエラーを発生させるようなことも行います。
全ては

○◯したら△△という結果が得られるのではないか?
という仮説を立てて、検証を行っているからです。
そしてプログラミング学習において、その素養は質問をするときに身につけることができます。
具体的な仮説と検証の立て方はこちらです。
・投稿機能で空欄で投稿したときに、値は保持したままで、入力フォームに戻ってくるという機能を実装しようとしたが、値が保持できない(仮説)
・binding.pryを使用した
・インスタンス変数を確認したところ、投稿時のインスタンス変数は予定していた通りの値を保持している
・newメソッドに戻る記述はできている
・newメソッドに戻る際に値が保持されていない(検証)
・newメソッドに移行する際にインスタンス変数の値が変わっているのではないか?
・newメソッドを実行してインスタンス変数を確認したが、予定していた通りの値を保持している
先ほどの例では「投稿機能」という機能の実装なので、投稿機能で行われている処理を一つ一つ紐解く
・処理に対して期待できる動作を自分なりに考える
先ほどの例ではnewメソッドでのインスタンス変数の値がどうなっているのが正しいのかを考えてみる
質問フォーマットを埋める
この記事を見てくれた方に特別にどこでも使える質問フォーマットをプレゼントします!
このフォーマットを使いこなせば、質問もスムーズになりますし、プログラミング学習が100倍捗ります。
また良い質問の仕方は回答者も答えやすいため、学習効率も上がります。
ぜひ活用してください!
【質問の箇所】
※今やっていることを記載します。
【質問の内容】
■ エラー画面のスクリーンショット
※スクリーンショットを貼る
■ 問題に関するコード全体のスクリーンショット
※スクリーンショットを貼る
■ 問題に関するターミナルやコンソールのスクリーンショット
※スクリーンショットを貼る
■ 解決・実装したいこと
※解決したいこと・実装したいことを細かく記載する
※NG例:投稿を押してエラーの時に値が空になる
※OK例:投稿機能で空欄で投稿したときに、値は保持したままで、入力フォームに戻ってくるという機能を実装しようとしたが、値が保持できない。投稿自体は出来ている。
■ 調べた内容とそこから立てた仮説
(例)
・binding.pryを使用した
・インスタンス変数を確認したところ、投稿時のインスタンス変数は予定していた通りの値を保持している
・newメソッドに戻る記述はできている
・newメソッドに戻る際に値が保持されていない
■ 仮説を元に行った作業内容
(例)
・newメソッドに移行する際にインスタンス変数の値が変わっているのではないか?
・newメソッドを実行してインスタンス変数を確認したが、予定していた通りの値を保持している
質問する
質問フォーマットには「課題整理」ができるというメリットがあります。
課題整理ができることで、相手に伝える力が向上します。これにより、現場で高い評価をされやすく、「さらに高い技術を携わることができるようになった」というエンジニアの声はたくさんあります。
質問フォーマットを利用するメリットは以下の通りです。
・課題整理ができるようになると、自分自身で事象の深掘りができる
・オンラインでも相手に伝えられる技術が身につく
近年、Webエンジニアの職場では話すのではなくできる限りslackなどのチャットツールを用いて文章と画像のみで質問を済ませることが増えてきています。エンジニアがより仕事に集中するためです。
課題整理ができるようになるためにも、質問フォーマットを必ず使用しましょう。
この質問フォーマットは仕事の現場に入ってからも十分使えるものです。
まとめ
いかがでしたか?
今回はプログラミング学習における最高の質問の仕方について解説しました。
是非参考にしてみてください!
またこちらの記事も参考にされている方が多いので、是非合わせてご覧になってください。
コメント