Contents
はじめに
今回は、エンジニア歴10年以上になる私がエンジニアに向いている人の特徴を私なりに掘り下げてみました。
近年ではエンジニアを目指す人が増えてきました。異業種からの転職で未経験からエンジニア目指すといった例も増えてきました。
私は現役のエンジニアとして日々働いています。たまに質問されるのが
「どういった人がエンジニアに向いていると思いますか?」
という質問です。
これは非常に難しい質問で、人によって様々な答えがあるでしょう。
Wikipediaでプログラマと検索したところ、三大美德として以下が挙げられていました。
・怠惰
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E
・短気
・傲慢
私もこの意見には賛成です。これは一体どういうことでしょうか?
周囲で働いているエンジニアや自分を振り返って解説していきます。
プログラマの三大美德
一般的にエンジニアが向いているかの三大美德があります。三大美德について分かりやすい説明がありましたので、日経クロステック(xTECH)から引用します。
怠慢
怠慢
全体の労力を減らすために手間を惜しまない気質。この気質の持ち主は、役立つプログラムを書いてみんなの苦労を減らしたり、同じ質問に何度も答えなくてもいいように文書を書いたりする。よって、プログラマーの第一の美徳である。
引用元 : 日経クロステック(xTECH) - #1 プログラマーの三大美徳その1「怠慢」
例えば、1~1000の数字を表示するという仕事があったとして、数字を1から順番に打ち込んでいくのは時間の無駄とは思いませんか?
例えば、毎日決まった手順で行うパソコンを使った仕事があったとして、その作業を自動で出来るようになったら素晴らしいと思いませんか?
私はこうした繰り返しの作業を見かけると、すぐに自動化出来ないかを考えます。例で挙げた手作業はミスも発生しますし、何より退屈な作業になってしまいます。
- 1~1000までの数字を表示するプログラムを書く
- ルーティンの仕事を自動化する
こうした作業を自動化することに労力を使うのがエンジニアではないかなと思います。
短気
短気
コンピューターが怠慢な時に感じる怒り。この怒りの持ち主は、今ある問題に対応するプログラムにとどまらず、今後起こりうる問題を想定したプログラムを書く。少なくともそうしようとする。よって、プログラマーの第二の美徳である。
引用元 : 日経クロステック(xTECH) - #2 プログラマーの三大美徳その2「短気」
スペックの低いパソコンを使っての作業は動作も遅く、仕事の効率が一向に上がりません。そうしたことにも怒りを感じるのがエンジニアの特徴でもあります。
怠慢でも紹介した例の1~1000を手入力したり、毎日決まった手順で行うパソコン仕事があったとして、以下のような例が発生したらどうでしょうか?
- 1~5000までを手入力で行うようになったら?
- 毎日決まった手順で行うパソコン仕事に追加の作業が発生したら?
こうした先のことまで考え、今後起こりうる問題を想定できるのもエンジニアの特徴かなと思います。
傲慢
傲慢
神罰が下るほどの過剰な自尊心。または人様に対して恥ずかしくないプログラムを書き、また保守しようとする気質。よって、プログラマーの第三の美徳である。
引用元 : 日経クロステック(xTECH) - #3 プログラマーの三大美徳その3「傲慢」
怠慢で紹介した例題に対して以下のようなアプローチがあります。
- 1~1000までの数字を表示するプログラムを書く
- ルーティンの仕事を自動化する
こうしたプログラムを書くだけではなく、保守(仕様変更対応)や私以外の人が見ても読みやすいようなプログラムを書くというのが傲慢に当てはまります。
プログラマの三大美德以外
私が学校でプログラムを習う時、最初の授業で恩師が生徒に出した課題は以下のようなものでした。
みなさんはこの課題を与えられた時に、どこまで手順を書けるでしょうか?
当時の私はこのように考えました。
財布を出す
自販機で買いたい飲み物の値段を見る
買えるだけのお金を出す
お金を投入する
ボタンを押す
飲み物を受け取る
お釣りがあれば受け取る
財布に入れる
人によってはまだまだあると思います。
この課題に対して恩師はこのように説明しました。
「個人的にプログラムは、課題に対していかに分解する能力かと思います。この課題で5つ以上書き出せた人はエンジニアの素質があります。もし5つ以上書き出せなくても一緒に勉強していきましょう。」
この言葉は今も私の指針となっています。プログラムで悩むことがあったら、まずは分解して考えるようになりました。
例えば世の中で売れている有名なゲームにしてもそうですが、ひとつひとつのプログラムは小さなものです。それが集まり大きくなり、ひとつのゲームとして完成しています。
もちろん一人でプログラムを書くこともありますが、それよりもまずは「分解して考える」というのが大事かなと個人的には思っています。
ここまでは一般的に言われているエンジニアに向いているかの素質について書きました。
次はエンジニア歴10年以上の私個人が思うエンジニアの素質について書いていきたいと思います。
個人的に思うエンジニアの素質
ここからは私が思うエンジニアに向いている人の素質について書いていきます。
新しいもの好き
例えばガジェット(カメラやiPad/iPhoneなどのスマートフォンからMeta Quest 2やHoloLens 2などのxR機器)が好きな方はエンジニアに向いているのではと思います。
新しい技術や機種が次々と出てきます。
最新の流行にアンテナを張ることで、古いものに固執せず、積極的に新しく登場したものについて、調べたり触ったりする人は行動力が伴うのでエンジニアになっても成長しやすいです。
勉強するのが苦ではない
新しいもの好きと被りますが、エンジニアは基本的にずっと勉強していく職種だと考えてください。
仕事によっては使用する言語やフレームワークを変えたり使用する技術も違います。そうしたものを一つずつ勉強していく必要があります。
また、技術だけではなくチーム理論やリーダー論などマネジメントについても勉強していく場面も増えていきます。
通勤電車や休日にも勉強する必要が出てくる場合もあるでしょう。
そうした場合に勉強するのが苦痛であったり、苦労して覚えたプログラミング言語以外は覚えたくないなどの場合は少し厳しいかもしれません。
私は学生時代、勉強が大の苦手でした。得意科目もなく、不得意科目が圧倒的に多くテストの点数も酷かった思い出があります。
今でも勉強は苦手ですが、プログラミングやそれに付随する勉強は楽しく感じますし参考書などを読んでいるのも楽しく感じます。
生涯勉強するのであれば、自分が向いている職種であるかどうかが重要なところでもあります。
ディスプレイをずっと見ていても苦痛ではない
プログラミングしている時は基本的にずっと画面を見ていることになります。それも1日8時間以上も。
適度に休憩を入れたり目薬をさして目を労わることは出来ますが、長時間ディスプレイを見ていられないとなると少し厳しいかもしれません。
頭にケーブルを刺して考えた通りにプログラミングしてくれる装置が開発されたら、我々はディスプレイからようやく解放されるかもしれません(早くそんな時代が来てほしい)。
体力
残酷なことに、今でもブラック企業と言われる違法労働を行っている会社はゼロではありません。私もそういったところにいましたが(詳細はまた後日)、残業続きで体力的にヘトヘトになりながらも納期が決まっているので、ひたすら働くということを体験しました。
長時間イスに座っているのもエコノミー症候群が心配になりますが、長時間残業はとても辛いです。最後に生き残るのは体力があるかないかでした。
ブラック企業でないにしろ、プロジェクトにおいて山場というのは必ず来ます。そのような場合、最後には体力がモノを言います。
体力や気力が人並み以上にある方は、エンジニアだけではなくどこでもやっていけるでしょう。
コミュニケーション
エンジニアは黙々と一人で誰とも喋らずに作業出来るからコミュニケーションが不要と思われがちです。意外と勘違いされやすいのですが、エンジニアでも人とのコミュニケーションは結構するほうです。
仕様について話したりスケジュールについて話したり、実装部分について話したりと人と話す場面が結構多いです。もちろん実装する段階に入ってしまえば黙々と作業することにはなりますが、前段階では密な連携を取ることが多いです。
人と喋るのが好きで、相手と会話のキャッチボールが出来るというのも重要なスキルです。
エンジニアはいいぞ
正直に言うと私がエンジニア向いているかハッキリは分かりません。
10年以上エンジニアとして生きていますが、もっと向いている職業があるのはと思うこともあります。
しかし、「パソコンが好き」で「何かを作るのが好き」という性質があるので何とか続けられているような状況です。
エンジニアのスキルを身につけると日常生活でも役に立つことはあります。
簡単なプログラムを組んで生活を便利にしたり、それこそiPhoneに入っているショートカットアプリを使用して日常のちょっとしたことをiPhoneで便利にしたりと出来ることは格段に増えます。
一生遊べるスキルが手に入ると考えたら、個人的にはオススメな職業かなと思いました。
まとめ
エンジニアに向いている人はどんな人なのかについて書きました。
ここに書いてあることが当てはまらなくても、エンジニアに向いている可能性は十分にあります。本人のやる気と行動次第でエンジニアとして開花する場合もあります。
エンジニアを目指す上で、最初は覚えることがいっぱいで頭から湯気が出るかもしれません。しかし、ずっと勉強していくうちに点が線として繋がる瞬間が絶対に来ます。そういったことの積み重ねでレベルアップしていきますので諦めないことが大事です。
自己学習が苦手な場合、初めの一歩としてプログラミングスクールを活用するという手もあります。自分に合う先生やカリキュラムを見つけることで成長スピードも違ってくるかなと思います。
また、今ではエンジニアの需要も高まっているため未経験からエンジニアを目指せる転職サービスもあります。まずはIT企業に飛び込んでから考える!という行動派の人には、そういったサービスを活用するのも良いでしょう。
この記事がエンジニアを目指す人の参考になれば幸いです。