最速でプログラミングスキルを習得するために必要な「質問力」とは?

複業戦略エンジニアのRyotaです。

今回は、未経験で開発現場に入ってから最速でスキルを身に付けていくために必須となる「(エンジニアとしての)質問力」についての記事です。

エンジニア転職を成功させてせっかく良い環境を確保できても、効果的な質問ができないと成長スピードがどんどん遅くなります。

最初からこの事に気付いていれば、もっと多くの経験値を積めていたなぁ〜と。

そこで、「質問の重要性」と「取るべき具体的なアクション」について書き記しておこうと思い立った所存です。

「開発現場に入ってからできるだけ早く実力をつけたい!」という方は是非ご一読ください。

なぜ、質問する事が大切なのか

プログラミングスキルは、書籍やネット上の教材を使った独学でもある程度習得が可能です。

しかし、開発現場で実際に経験を積む方が圧倒的に習得スピードは速い

その大きな理由は、「経験のあるエンジニアにすぐ質問できる」という環境がそこにあるからです。

例えば、僕が何度か遭遇した場面として

開発中に原因不明のエラーが発生し、2〜3時間くらい誰にも質問せずひたすらググるも、解決しない

→自力での解決を諦め、隣の席の先輩エンジニアに概要をまとめて質問

1分で解決

なんて事が多々ありました。

これ、本当に時間がもったいないんですよ。

質問すれば一瞬で解決するのに、意地になって自力で頑張ってしまうという。

(もちろん、自分で試行錯誤している最中に身に付く知識もありますが)

自分の作業が行き詰まってしまった時に、いかに的確な質問をする事でその壁を突破できるかというのが非常に重要なのです。

質問のクオリティにこだわる

開発現場においては、原則として「できるだけ多く先輩エンジニアに質問をすべき」です。

しかし、こう言うと

「いや、でも何回も質問するのは気が引ける…」

という声が聞こえてきそうですね。

これはその通りです。だからこそ、質問の内容にも気を配る必要があります。

多くの場合先輩エンジニアも忙しいので、「何を答えればいいのか分からない、ふわっとした質問」に時間を浪費することはイヤがるんです。

人として嫌われてしまうと、今後自分がする質問に対する回答が適当になるおそれがあるので、これは回避する必要がありますね。

これが質問の「クオリティ」というお話です。

質問のクオリティとは?

クオリティが高い質問というのは、答える側が最小限の労力で回答できるような質問です。

例えば、新人エンジニア君にこんな質問をされたら先輩はどう思うでしょう。

新人君
このデータをフロントに表示させるにはどうすればいいですか?

この聞き方だと、

  • あなたが今どこまで理解できているのか
  • 何を伝えれば回答になるのか

がよく分からないので、質問に対して質問する形で情報を補足しないといけなくなります。

先輩
具体的には今どこまで進んでるの?分からない点はどこ?

という感じで。

これでは良い質問とは言えないし、あなたに対する先輩の好感度は下がっていきます

(先輩を敬うべき、というか、自分が不利益を被るので良い印象は維持しておくべきです。)

一方、質問の仕方が上手いエンジニアは、同じ状況でこう質問します。

Ryota
今、このコントローラーのxxメソッドで〇〇のインスタンス変数を生成するところまで完了しています。ただ、フロント側で目的のデータを取得できず、△△を試したのですが解決できていません。考えられる可能性としては他に何があるでしょうか?

僕はいつもこんな感じで質問するよう意識しています。

ポイントは、以下の3点を簡潔に伝える事です。

Point

  1. 現在の状況(ここまでは完了している)
  2. 詰まっている点(どこが解決しないのか)
  3. 解決に向けて自分なりに試した事(この方法を試してみたんですが…)

それぞれの役割はこんな感じ。

  1. → 現在の状況を伝える事で、無駄な逆質問をしなくて済む
  2. → 詰まっている点が明確なら、回答も明確になる
  3. → 解決に向けて努力した事をアピールし、心証を下げない

これらのポイントを押さえていると、相手にとって「答えやすい質問」になります。

だから、多少質問の回数が増えたとしても先輩エンジニアに悪い印象を与えず、快く回答をし続けてくれるのです。

周囲の人を「自分の分からない点をすぐに教えてくれる、強力な味方」にしてしまいましょう。

くれぐれも、答えてくれた事に対する感謝は忘れずに

誰かに質問する際は、一度このあたりのポイントが押さえられているかを確認してみてくださいね。

まとめ

今回は質問力を上げるポイントについてお伝えしてきました。

実際に開発現場に潜り込んで感じた事の一つに、「質問力は、ある意味プログラムスキルそれ自体と同じくらい重要」というものがあります。

質問力さえあれば、先輩エンジニアから素早く的確な回答を得られますからね。

スキルが多少欠けていてもカバーが可能になるのです。

そして、フリーランスの常駐や受託の形式で働く際にも実は同じことが言えます。

「フリーエンジニアって即戦力として呼ばれてるのに、気軽に質問なんてできるの?」

と思うかもしれませんが、ベテランで実力のあるエンジニアも当然のように同僚に質問をしています。

現場でそういう場面を何度も見てきました。

それと同じで、フリーランスのエンジニアも「分からないことは分からない」というスタンスでいいんです。

変なプライドが邪魔をして質問ができないでいると、それこそプロジェクトが炎上する原因になりかねません

そんな事は雇う側も僕たちエンジニアも望んでいないわけで、プロジェクトを前に進めるためにも堂々と質問をしていいという事です。

先輩や同僚の人に対して質問をする際、今回のポイントを押さえておけば自分が望む回答を得やすくなります。

「今はまだエンジニアじゃない」という方でも普段から使える技術だと思うので、ぜひ日々の実践に移してみてくださいね。