最強のエンジニアとは?まず ぼくの考えるRoad to 最強ITエンジニア!
最強のエンジニアとは?
そもそもエンジニアとは、工学(エンジニアリング)の技術をもった専門職のことです。
工学における教育プログラムに関する検討委員会による説明
工学とは数学と自然科学を基礎とし、ときには人文社会科学の知見を用いて、公共の安全、健康、福祉のために有用な事物や快適な環境を構築することを目的とする学問である。
有用なものを構築する人
エンジニアは有用なものを構築する人です。ものすごく有用なものを作れる人が最強のエンジニアです。
エンジニアといっても色々いるんですが、私はITエンジニアなので最強のITエンジニアのなり方をイメージしています。
「稼げるエンジニア」「優秀なエンジニア」とは、ちょっとニュアンスが違うイメージを持っています。稼げるエンジニアや優秀なエンジニアになるためには、コンサルティング能力が重視されます。つまり自分の手で物を作り出すより、色んな人の力を借りて有用なものを構築するスキルです。今回目指していく最強のエンジニアは、多少は人の力を借りながらも自分の力でものすごく有用なものを作る ことができるエンジニアです。
最強のエンジニアに必要なこと
最強のエンジニアになるために必要なことは、次の4つだと考えています。
- 物欲
- 判断スキル
- 完成させるスキル
- 説明スキル
一つずつみていきましょう。
物欲
色んなタイプのエンジニアと触れ合ってきましたが、つよつよエンジニアは例外なく物欲が強いです。欲しがるものは様々ですが、「何かを手に入れるために努力する才能」を持っていると思います。こればっかりは才能によるもので、努力して得るものではありません。あれが欲しい、これが欲しいと思ってる時間がないなら、あまりエンジニアには向いてないのではないかと思います。毎日1時間くらい考えていると良いです。
さらに必要なことは、「まだ見ぬもの」を欲しがっていることがです。例えばスマホが欲しいとき、AndroidにしようかiPhoneにしようか迷ってるとき、Androidはカスタマイズ性が高いけどiPhoneだとLiDARがついていて対応アプリも多い、みたいなことで悩んでたとします(この悩みが理解できない場合は、その時点で物欲低いとわかります)。そんな時に「AndroidにもLiDAR対応アプリがたくさん欲しい」とか「iPhoneでもADBみたいなもので書き換えられたら」みたいなことを夢想していることが大事です。
というのも、エンジニアが構築する「有用なもの」は、当然「物」です。最強のエンジニアになるためには辛いこともたくさんありますが、(好きこそ物の上手なれ)[https://imidas.jp/proverb/detail/X-02-C-13-2-0003.html]と言われるように、好きなことは辛いことも乗り越えられます。上位30%くらいの稼げるエンジニアを目指すのであれば、エンジニアリングが得意なほうが良いですが、最強を目指すのであれば、好きである必要があります。
また、エンジニアが作る有用なものは、最適なものが現時点で存在しているとは限りません。先人たちが築き上げた英知を活用して素晴らしいものを作ることもできるし、誰も見たことがないような素晴らしいものを作り出すこともできる、どちらもできると最強ではないでしょうか?誰も見たことがないようなものを作るには、誰も見たことがないようなものを夢見る必要があります。この新しい物を想像することも、必要な才能です。ひょっとしたらこちらは生まれ持ったものではなく、後から身に着けられるかもしれませんが、もともと持ってると有利です。
判断スキル
エンジニアという仕事は判断の連続です。しかも正解がないのです。
正解がない例はたくさんあります。
夏の暑い日に、冷たいものが食べたくなりました。
500円持っています。
何を食べるとよいでしょうか?
といったときに、80円でガリガリ君を食べることもできるし、170円でジャイアントコーンを食べることもできるし、500円でその辺のファミレスでパフェを食べることもできます。何なら食べないという選択肢も取れます。どれが正解なのでしょうか?
正解はその場の状況、つまりコンテキストによります。もしこの500円がお小遣いではなく全財産なのだとしたら「食べない」が正解です。脱水症状になりかけているんだとしたら、ファミレスに避難してパフェとついでに水をたくさん飲んだり、アイスと一緒にドリンクを買うべきです。問題文に書いてあることがすべてだとしたら、「小難しいこと考えてないで好きにすればいいじゃん」です。最適になるまで熟考しなければならない場合と、気持ちに従ったほうがいい場合があります。
本当に大切なことは何なのか常に判断していかなければなりません。技術的な課題から有用なものになっていない場合は、技術的な課題を重点的に判断していかなければなりません。とはいうものの、結局のところ人間のために人間がものを作るので、受け取るひとの気持ちも想像しなければなりません。
どんなものが有用というのか。今選択することによって、できあがるものの有用さはどう変わるのか。幅広いコンテキストを含めた判断をできるようになることが必要です。
そもそも最強のエンジニアを目指すのか?みたいなところから考えていきましょう。
完成させるスキル
プログラミングで楽しい瞬間は、「計画しているとき~着手し始めたとき」と「完成したとき」だと思います。コードを書いているときはまあ楽しいです。ものを作ろうと思うと、まずたくさんのプログラムを作らなければなりません。たくさん作るとなると、だんだん面倒くさくなってきて、全部作りきるのがつらくなってきます。それと、いったん作ったとしても、使いやすく作れていることはあまりありません。作って、正しく動いているかチェックして、使ってみて、修正して、またチェックして・・と繰り返していかなければなりません。そして誰しもが便利だと思える有用なものが出来上がったら完成です。
作るまではまあ楽しいですが、完成させるまではとにかくつらいです。この苦しみを乗り越えられるかどうかが試されます。IT以外のエンジニアは、この苦しみを耐えられればなれるのですが、ITエンジニアは無限に苦しみが増えます。なので耐えるだけではなく、苦しみを減らす方法を試していかないと、完成させるスキルは身に付きません。
説明スキル
最後に、説明する力が求められます。有用なものはまだ見ぬ新しいものを作る必要があり、まだ見ぬ新しいものはほとんどの人が拒否反応を示します。良いものを作ったとしても拒否します。私自身、iPhoneが出たとき、「全面タッチパネルの携帯電話・・?」と拒否反応を起こしたことを覚えています。今考えてみると何を馬鹿なことを考えていたんだと思いましたが、そうなってしまうものなのです。
どんなに素晴らしいものを作ったとしても、使ってみてもらうまで理解してもらえることはありません。エンジニアが本当に説得力を発揮するのは「物自体」なのですが、とりあえず使ってみてもらえるまでは説明するしかありません。
また、スキルとは何だろうかと考えたとき、「説明できること」はすごく重要なポイントです。説明できることは実現でき、実現できないことは説明できないのです。実現できることの一部は説明できないこともありますが、次にはつながりません。この話は別途説明しますので今回は割愛します。
まとめ
最強のエンジニアとは、自分の手で有用なものを生み出す人です。
最強のエンジニアは有用なものを求める物欲と、どういうものが有用なものか判断するスキルを持ち、有用なものを完成させます。どのように完成させるか説明でき、完成させたものが説明できます。
物欲は天性のもので、判断スキル・完成させるスキル・説明するスキルは訓練で身に着けることができます。何をやれば、この3つのスキルを身に着けられるのか、この連載の「ぼくの考えるRoad to 最強ITエンジニア」で解説していこうと思います。