この記事の目的
営業職から、エンジニア業界に飛び込んで1年半。社内、社外共に幾人ものエンジニアと仕事をしてきました。
その中で、「凄い仕事ができるな!」という人も、「こうしたらもっと活躍できそう!」という人もいろいろ見てきました。
自分の主観ではありますが、未経験からでも活躍できる人の特徴をまとめてみました。
・未経験からエンジニアを目指している人
・エンジニアとして活躍していきたいと思っている人
・エンジニアに転職したいと思っている人
に向けた記事になります。
※もちろん、自分ができているかどうかは別問題で書いたものなので、自戒の意味も込めて。
特徴①自責思考の人
締め切りへの意識の違い
活躍できる人は、仮に想定通りにいかなかったとしても締め切りに間に合うように早めの動きをします。
分かりやすい例を挙げるとするならば、
「電車が遅延すると遅刻をする」のが普通の人で、
「電車が遅延しても間に合う電車に乗る」や「そもそも電車に乗らずにいける場所に住む」ことで、
アクシデントが起きたとしても遅刻をしないというのが活躍する人の発想です。
※もちろん、遅刻をしない人が活躍できる条件と言いたいわけではありません。
遅刻が問題にならない仕事であればこんなことをする必要はありませんし、あくまでも分かりやすい具体例の一つです。
仕事には基本的に締め切りが存在します。
それぞれの仕事の締め切りに対して、いろんな想定外の出来事が起きる可能性があります。
体調が悪くなったり、
連携して進める人が急遽休んだり、
想定していたやり方で上手くいかなかったり、
各仕事の重要性、緊急性 はもちろん、アクシデントが起きる可能性、起きたときの想定ロス時間 などを踏まえた上で、どの仕事から取り掛かる必要があり、今日までにどこまで進めておく必要があるのかを考える必要があります。
ただ目の前のやるべきことをやるだけでなく、締め切りを確実に達成するために逆算して、キッチリと達成できるように進めていけるかどうか。
これは、逆算して進めていける計画力ももちろん必要ではありますが、
そもそもの発想として
「アクシデントが起きたら、締め切りに間に合わなくても仕方ない」
と考えている人と、
「なんとしてでも締め切りに間に合わせる」
と考えている人の違いだと思います。(そういう発想の人は、どんどんと計画力も身についていきます)
指示待ちではなく、自分で考えて動ける
「クライアントの要望をどうしたら実現できるか」 を、知識や経験をもとにして考えられることが、エンジニアとして非常に大切な能力になります。
もちろん、仕事をし始めた頃は細かく指示を受けて仕事をするという機会が多いです。しかし、クライアントと直接話をするようになってくると、抽象的な依頼を受けて、それを具体的なアウトプットにしていく必要があります。
そのため、一から十まで指示を受けないと、仕事を進められないという人だと、なかなか一人前のエンジニアになることはできません。
特にベンチャー企業であれば、よりこの力は必要になります。
画一的な研修や、マニュアルなどが整備されておらず、仕事の自由度が大きい段階であることが多いためです。
会社としていま何が必要なのか、どんな役割が自分に求められているのか。それを考えて動ける人が、会社から非常に重宝され活躍していける人です。
特徴②論理的思考力がある
仮説を立ててそれを検証していく力
先天的なものなのか、後天的なものなのかは分かりませんが、
コードを書いていてエラーが出たときに、
その原因を仮説を立てて、デバックしていける人と、すぐに思考停止してしまう人がいます。
1つ問題が起きたときに、その原因の可能性をたくさん出して、それぞれの仮説を検証していく。
この仮説、検証するスピードと量は、もちろんエンジニアになってからも向上はしていきますが、
それまでの人生で、どれだけ試行錯誤してきているか、どれくらい普段から物事を深く考えて行動しているか。という積み重ねによって大きく差が出るポイントだと感じます。
自分の身の回りのエンジニアを見ていると、学歴が高い人の方が、こうした思考力が高い人の割合が多いような気がします。
具体的な事象を抽象化して理解する力
また、「表面的に違うことを、抽象化して理解する」 という力も大切です。
Aというエラーが起きたときに、その原因がBで、Cという対応をするとエラーが解消されたとします。
このときに、
「AのエラーのときにはCをすればいい」
と理解する人と
「原因がBのときにはCをすればいい」
と理解する人とでは相当な差になります。
前者の人は、「AのエラーのときにはCをすればいい」という新しいことを学ぶことになりますが、
後者の人は、原因がBのA'というエラーが起きたときも対応できるでしょう。
前者の人は、成長に時間がかかりますが、
後者の人は、まさに 「一を聞いて十を知る」 ことができるため何倍も早く成長していきます。
特徴③コミュニケーション力がある
相手の目線で会話ができる
コミュニケーション力があるというのは、ただ面白い話ができるとか、一緒に話していて楽しいという事ではありません。
エンジニアをしていると、非エンジニアの人と要件定義をしたり、実装に関してやりとりをすることがあります。
その際に、どれだけ噛み砕いて話をして、相手に伝えられるかが、コミュニケーション力だと思います。
また、エンジニア同士の会話でも、相手の技術レベルに合わせて話をする必要があります。
相手の目線に立った上で、適切なボキャブラリーと、話の構成を組み立てるというのが、
特に、いろんな技術レベルの人が混在しがちなエンジニアという職業では必要とされます。
相手をどう動かしたいかの意志がある
伝えたい内容自体は通じているけれど、「だからどうすればいいの?」という発信をしてしまう人がいます。
分かりやすい例だと、
エラーが起きたときに、「エラーが起きました」という現象だけを報告する。
などです。
現象を報告するだけでなく、「相手が何を知りたいか?」 や、「相手にどうして欲しいのか?」 を考える必要があります。
・実運用においてどれくらい致命的なバグなのか?
・バグを改修するためにどれくらい時間がかかりそうなのか?
・現時点まででどれくらい影響が出てしまっているのか?
・他に類似のバグはないのか?
・同様のバグを再発しないためにはどうしたらいいのか?
などが 「相手が知りたいこと」 になります。
また、
・自分だけで上記の「知りたいこと」を網羅できない場合は調査を依頼をする
・改修完了までは、再度エラーが起きる場合があるのでその際の対応をしてもらう
・現在やっているタスクの完了が延期してしまうことの了承をもらう
などが 「相手にして欲しいこと」 になるかと思います。
こう言った情報を含めた上で報告をする(もちろん緊急性によっては。ひとまず現象の報告をするというのが正しい場合はあります)というのが、コミュニケーションにおいて非常に大切です。
内容が明確だったり、その後の行動が明確になっていると、非常にストレスもなく仕事への着手も早くすることができます。
エンジニア業界には、技術力はあるけれど、こうしたコミュニケーション力があまり高くない人もいるため、
未経験から転職してきた際に、こうしたコミュニケーション力があると、非常に重宝されることになります。
最後に
当たり前ではありますが、職種によって求められる能力は変わってきます。
もちろん、どんな仕事でも一貫して求められる能力もあります。
私も、営業職からエンジニア職へと職種を変えたこともあり、僭越ながら文章でまとめてみました。
自分への戒めとして、そして誰かにとって何かプラスになれば幸いです。
弊社は新卒、中途共に、エンジニアになりたい方を大募集しています。
未経験からでも活躍している先輩社員もたくさんいますので、興味ある方はこちらより。