エンジニアとして仕事をする上で、プログラミング以外に求められるスキルについて考えてみました。
読んでほしい方
- 未経験からエンジニア転職を考えている社会人
- エンジニア職に興味のある学生
なぜ、プログラミング以外のスキルが求められるのか?
- 現時点での技術力はそこまで求められていないケースが多い
- 未経験の段階で高められる技術力に限界がある
ためであります。
未経験時は、どんなエンジニアを目指すべきか?
エンジニアを雑に分類すると以下の4タイプに分けられるかと思います。
① 技術力が高く、仕事ができるエンジニア
② 技術力は高いが、仕事ができないエンジニア
③ 技術力は低いが、仕事ができるエンジニア
④ 技術力が低く、仕事ができないエンジニア
未経験の段階では、上記③のエンジニアを目指すのが「吉」であります。
今回は、仕事ができるエンジニアになるために必要な3つのスキルを紹介します。
スキル1 業務遂行能力
例えば、こんなエンジニアは、業務遂行能力が低いという烙印を押されてしまいます。
- タスクの進め方を自分で組み立てられない
- 求められている成果物と違うものを持ってくる
- レスが遅い
「成果物の内容を具体的にイメージし、事前に共有する」ことで手戻りをなくせると良いです。
2,3割ほど完成したタイミングでフィードバックをもらうというの有効です。
スキル2 ドキュメントを読む能力
特に公式ドキュメントを読む能力です。
プログラミング言語ごとにドキュメントはありますし、各種サービスにも公式ドキュメントがあります。
ブログ記事などの方が読みやすいというメリットがありますが、下記のようなデメリットもあります。
- 信頼性がない(間違った情報が蔓延している)
- 情報が古い
一次情報を読む習慣や能力がないと、他の人から教えてもらわないと対応できないエンジニアになってしまいます。
訳の問題で、日本語のドキュメントは読みにくいけど、英語に切り替えると読みやすくなる時もあったりします。
スキル3 質問能力
大事です。とても大事です。
タスクの確認、エラー発生時、ハマったときなど、質問するタイミングはたくさんあります。
質問した相手に「結局何を聞きたいのか良く分からない」と思われてしまうと、どうなるでしょうか?
→ コミュニケーションコストが高くなる
→ 回答待ちの時間が増える
→ タスクが進まなくなる
こんな状況にならないためには、質問力が大事になります。
質問する際のポイントは下記になります。
①解決したい課題を明確にする
例
×「InvalidParameterExceptionって何ですか? / どういう意味ですか?」
◯「コマンドでxxxと実行したところInvalidParameterExceptionが発生し、処理が終了しました。どうしたら良いですか?」
②状況を正確に共有する
例
×「https://xxx.yyy.zzzにPOSTしてもエラーになります。どうしたら良いですか?」
◯「https://xxx.yyy.zzzにPOSTしたところ、40xエラーになりました。bodyに使ったデータはhogeです。解決策を教えて下さい」
③経緯を共有する
例
×「Aのエラーが出たので色々試したんですがうまくいきません。どうしたら良いですか?」
◯「Aのエラーが出て、Fugaのサイトの手順を試したのですが、Bのエラーが発生します。どうしたら良いですか?」
まとめ
いかがでしたでしょうか。
エンジニアは技術職のため、ついつい技術のことに意識が向きがちですが、
上記のようなスキルの重要性を考えるきっかけになれば幸いです。
弊社は未経験からエンジニアになった方が活躍している会社です。
未経験者の新卒・中途採用も実施していますので、ご興味ある方はこちらより。