Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【必見】プログラミングのスキルアップにつながる質問の方法


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210811160847p:plain

おはようございます。Shotaです。

プログラミング初心者の方は、勉強を始めた頃は必ずわからないことが出てくると思います。特に、次のような疑問を感じたことはよくあるのではないでしょうか?


  • 「エラーを解決できない」
  • 「正しい質問の方法がわからない」

実は、プログラミング学習において「質問すること」は非常に大事なスキルです。ところが、ほとんどの人がどのように質問すればよいのか、わからないまま無駄な時間を過ごしています。

そこで、今日の記事ではプログラミング学習において、スキルアップに繋がる質問の方法を徹底解説していきます。

良質な質問をすることで、質問をする側・される側の双方で余計な誤解をなくし、無駄な時間を省略することでお互いの工数削減にも繋がります。



スキルアップにつながる質問」の定義

f:id:ShotaNukumizu_1000:20210811161802p:plain

そもそも、「良い質問とは何か」について先に説明しておきます。

簡単に定義すると、「スキルアップにつながる質問」は低コストで最高の答えを引き出す質問です。

質問者の多くは自分のことしか考えていないように感じられます。「わからない!」と感情任せに質問しているように思えます。しかし、質問は相手がいて初めて成り立つものです。

「低コスト」というのは相手にとってもそうですが、自分にとってもそうです。相手が答えやすいので回答時間が短くて済みます。そうなれば、自分が素早く答えを得られる可能性があります。

お互いにとってWin-Winの関係を生み出すのが良い質問です。


「質問する」心構え

次は、質問に対する心構えについて解説していきます。

初心者の方がプログラミングで疑問に感じたことを質問しようとする時、まず最初に「怖い」というイメージが先行してしまうケースが良くあります。

主な理由として次のようなことが挙げられるでしょう。


  • 恥ずかしい
  • 伝わるかどうか不安
  • 相手に嫌がられたらどうしよう


プロのエンジニアでもわからないことは毎日のように存在しており、それを解決するために質問することはよくあります。

大事なことは、「質問」という行為が初心者だけにあるのではなく、エンジニアなら誰でも起こりうる普通のことです。

質問をすることで問題が解決できるだけではなく、質問された側も新しい学びがあるので、お互いに知見を広められてスキルの向上に繋がります。むしろ質問とそれに対する回答を繰り返すことで、自ずとスキルアップに繋がります。


質問が下手だとプログラミングで大きく不利

f:id:ShotaNukumizu_1000:20210811161733p:plain

質問の上手い下手で、エンジニアやプログラマーとしての成長スピードやプロジェクトの進捗具合が大きく異なっていきます。

「質問」が実務において、どのぐらい重要な要素なのかを詳細に見ていきましょう。


現場では最速で問題を解決することが求められている

多くの現役エンジニアは「質問」を正しく行う週間が自然と身についています。質問が上手だと問題を効率よく解決して、仕事を円滑に進められます。

エンジニアの世界では、初心者やプロに関係なくわからないことがたくさんやってきます。その都度、問題を解決できなかったり解消するのに時間がかかったりするといつまでたっても仕事を解決できません。

初心者の段階では、問題を解決するための方法や手順を積極的に学ぶようにしましょう。


「15分わからなければ質問する」という基準がある

プログラミングの世界では15分ルールというものがあります。

これは、問題が発生した時に最初の15分は自分で様々な方法を試してみて、それでも解決できない場合はすぐに第三者に質問するというルールです。

このルールはGoogleでも実際に採用されており、重要なポイントが2つあります。

  • 他人の時間を無駄にしない
  • 自分の時間を無駄にしない


これを踏まえて、第三者に質問することで相手も理解しやすいだけではなく問題解決を短時間で済ますことができます。


質問テンプレート

f:id:ShotaNukumizu_1000:20210811161846p:plain

プログラミングにおけるスキルアップの質問の例は、以下のとおりです。

◯◯◯という機能を実現するための方法について教えて下さい。 本来なら◯◯◯をすれば◯◯◯という機能が正常に実行されるはずなのですが、以下のようなエラーメッセージが表示されます。

【エラーメッセージ(スクリーンショットでも可)】

該当のソースコードは以下のとおりです。

ソースコードGitHubなどのリンクでも可)】

エラー内容から推測するにソースコードの◯行目あたりが原因かと思い、以下のような手順で模索してみました。

【手順の内容】

(例)

・ネットで調べた記事
ソースコードの改変
・上述の手順を実行しても変化がないことを確認

上記以降、どのように進めたら良いのか分からなくなってしまったので、何かアドバイスを頂けると助かります。


  • 解決したいことを冒頭の一行に書く
  • 期待する動作が2行目で把握できる
  • エラーの内容とコードを把握できる
  • 試した内容と手順の詳細を記す


これらの情報が予め添えられていると、回答する側はすぐに判断して解決方法を検討できます。


質問の基本例

1.タイトル
(1行で簡潔に内容がわかるように記述)

2.目的
(何をするための質問を示す)

3.ゴール
(どうなれば解決できるかを示す)

4.わからないこと・問題発生箇所
(時系列で問題になっていることを解説)

5.調べたこと
(自分で調べたことの概要)

参照:侍エンジニア塾ブログ


詳しい使い方

【タイトル】

回答者がタイトルだけを見て回答するかどうかを判断できるのが理想です。質問文を書いたあとに要約したものをタイトルにするのが一番効果的です。

【目的】

質問する箇所はかなり限定的な範囲にしましょう。そのため、質問者が最終的に何をしたいかを回答者が理解できるのが重要です。

【ゴール】

質問に対して素早く解決するためにも、何ができたら問題が解決できるのかを明確にしておく必要があります。これがぶれていると、回答者の時間を無駄にしてしまいます。

【わからないこと・問題発生箇所】

回答者が問題をイメージしやすいように、どのような経緯で問題が発生したのかを時系列で箇条書きにするとわかりやすいです。

【調べたこと】

質問する前に自分で解決したことや試したこと、調べたことをできるだけ詳細に説明しておきましょう。これは回答者が同じことを試して時間を無駄にしないためにも必要です。


まとめ:質問力はプログラマーにとってのコミュ力

f:id:ShotaNukumizu_1000:20210729065304p:plain

今回はプログラミング学習における正しい質問の方法について、解説しました。

今日の記事のポイントは次の通りです。

  • 質問することは決して恥ずかしいことではない
  • 正しい質問方法を覚えることで質問者・回答者双方のメリットにつながる
  • まずは質問テンプレートを活用することでなれるようにしよう


今日の記事が、自分のプログラミングの学習効率を高めることにつながれば幸いです。

質問力は円滑なコミュニケーションに繋がります。質問スキルを向上させていきましょう。

今日の記事はこれで終了です。

【参考サイト】

www.sejuku.net

tokyofreelance.jp