私は幸運にもプログラミングを本格的に始めてから、職場で優秀なエンジニアの仕事ぶりを間近に見る機会に恵まれています。
私が優秀だと感じているエンジニアの方は、仕事の成果を報告会で発表すれば、次々に「詳しく聞きたい!」と申し込みが舞い込むような方です。誰が見ても優秀と言える逸材だと思います。彼の仕事内容はアプリ開発の上流~下流工程全てです。
そんなエンジニアと2年間仕事を共にし見えてきた、私が感じる「優秀なエンジニアとそうでないエンジニアの違い」をまとめました。これが分かっていれば、自分も優秀になれるかは微妙ですが、少なくとも優秀な方は圧倒的努力の上にその技術や知識が成り立っていることがわかります。
「天才」と言うことは簡単ですが、その天才を作り上げたのは努力であると痛感しました。努力が続けられることこそが天才の所以かもしれませんね。
優秀なエンジニアの仕事を2年間そばで見ていてわかったこと
優秀エンジニアのここがすごい!
- 勉強量がすごい
- 英語ができる
- ツールの選定&使い込みに長けてる
- Vimmer
- プレゼン上手
- Macユーザー
- ブレない
- 判断が秒速
- フォーキャスト力が高い
- 教えたがり
優秀エンジニアは勉強量がすごい
優秀になるともう勉強しなくても公式ドキュメントとか見ればゴリゴリ書いていけるのかと思いきや、そんなことはありません。気になる言語やフレームワークの本は自費でどんどん買うし、仕事中もプライベートでも常に勉強→実践している印象です。
「勉強なんてエンジニアは誰でもやってるよ」といわれそうですし、私自身も勉強しまくってますが、何か勉強の質が違うような気がしてなりません。
優秀エンジニアは英語ができる
英語が堪能ということではなく、プログラミングするにあたり英語のドキュメントを読む習慣があるということです。話せる・聞けるというより「読み解ける」という意味での「英語ができる」と感じています。
私なんか英語のドキュメント読もうものなら頭痛を引き起こし、次の日休まなきゃならなくなりますけどね。英語アレルギーが無いのが優秀エンジニアなんですかね。
優秀エンジニアはツールの選定&使い込みに長けてる
これ非常に圧巻なんですが、とにかくデジタルツールの扱いのレベルが高いです。どうやってそんな便利なツール見つけてくるの?ってほどに色んなツールを高いレベルで使ってます。下記一例
- マインドマップ
- DB接続ツール
- プレゼンツール
- エディター
WindowsやMacに標準で付いているソフトですら一般の使用者より深いレベルで使っていると思います。カスタムしてますもんね。そういった使い込みや仕様変更が”いかに効率よく仕事をするか”に関わってくるんだと思います。
優秀エンジニアはVimmer
優秀エンジニアがVimをガリガリ使っているのを見て、私もVimを使いだしたのですが、使い込むほどに「なぜVimなのか」がわかってきます。やはりコーディングのスピードを意識すると、Vimという選択肢が出てくるかと思いました。
➡「エディターとしてなぜVimがおすすめなのか【何がいいの?】」
優秀エンジニアはMacユーザー
Windows歴が長い私は、「Macに出来てWindowsに出来ないことは無い」と思っていましたし、今でもそう思います。しかし、優秀エンジニアがMacを選ぶ理由は、感覚的にですが自分でもMacを使いだしてようやくわかりました。
➡「【プログラミングするならMacがいい】はホント?2ヵ月使ってみた感想」
特にWeb開発を快適にプログラミングするなら、やはりMacという選択になるのかなと感じています。
優秀エンジニアはMacのスペックにもこだわりますね。プロはやはり道具にもこだわる。楽器でも同じですが、安い楽器ですごい演奏をする人も居ますが、やはりプロはプロ機を使ってその才能をいかんなく発揮します。
優秀エンジニアはプレゼン上手
優秀エンジニアが優秀たる所以は、そのプレゼン能力にもあると思っています。
自分の頭の中をうまく説明することは本当に難しいものです。頭の良い人は得てして説明が下手ですが、優秀エンジニアは「わかりやすく理路整然と」説明できます。しかも、自分の成果物に対してのあらゆる質問に答えられる、そんな優秀さを何度も目の当たりにしてきました。
優秀エンジニアはブレない
優秀エンジニアの目指すところは「上司の顔色」では無いようです。自分のプロジェクトにいかに全力を注ぐかに心血を注いでいるように見えます。ですので、必要があれば上司にかみつきますし、不要な仕様変更には応じません。
きっとゴールがはっきり見えているのでしょう。言っていることにもやっていることにもブレがありません。
優秀エンジニアは判断が秒速
優秀エンジニアはものごとを俯瞰して捉える能力が高いです。そのため、その時々の判断が異様に早く、ある質問に対しての回答などは秒速で出てきます。細々した問題を先送りにしないんですね。
これに関しては仕事のできない人とは本当に対比的です。仕事の出来ない人は問題を先送りし、今すぐできる事すらやりません。
優秀エンジニアはフォーキャスト力が高い
優秀エンジニアは自分の能力を的確に理解しています。そのため、この課題がどれくらいの期間でできるのかといったスケジューリングが抜群にうまいです。当然、”何かあったとき”の予備日も計画に盛り込んで見積もれますので、最終的な納期はバッチリ合ってくる印象です。すばらしい能力です。
優秀エンジニアは教えたがり
優秀エンジニアは知識や技術を囲い込んだりしません。うまくいった技術や参考になる書籍、自分が作った機能(プログラミングにおいて)は、サクッと共有してくれますし、聞けばいくらでも教えてくれます。
だからといって教えることに長けているわけではありません。人に教えるより自分のスキルを高めたい人が多いので、部下を育てる・・・といったことには興味の無いエンジニアが多いですね。
私たち初心者は優秀エンジニアから何を学ぶのか
エンジニアだけでなく、どんな職種においても優秀な方の仕事は見ているだけでも爽快です。ただ、「いやーすばらしかった!」と手放しで喜んでいるだけでは得るものがありません。私のような素人初心者エンジニアは、優秀エンジニアからいったい何を学びとっていけばよいのでしょうか。
私の考えはこうです。
優秀エンジニアと自分の差を埋めていく
当たり前っちゃ当たり前なんですが、上記で上げたように、自分が優秀だなと感じている部分を真似ていくことで優秀エンジニアに近づいていくしかありません。優秀なエンジニアも初心者の頃はそうやって成長してきたはずです。
私は近くに優秀と思えるエンジニアが居て幸運でした。
初心者が優秀エンジニアに引っ張られるには
優秀エンジニアをただそばで見ているだけでは、優秀に近づく速度が遅いもの。その理由は「まわりの優秀ではない(参考にしない方が良い)エンジニアの仕事にも引っ張られるから」です。
人は、周囲の人間の平均の中に年収や技術などが収まってしまう習性があります。お金持ちになりたければお金持ちに囲まれる必要がありますし、優秀なエンジニアになりたければ優秀エンジニアにかこまれることで、自分の意識が優秀エンジニアに近づいていくというものです。
平均的に優秀なエンジニアが多ければ、それは最高の職場ですね。私のケースでは優秀者と非優秀者があまりにも対照的なので、平均すると「普通」ということになってしまい、学習環境としてはよろしくない状況です。
なるべく非優秀エンジニアの仕事には関わらず、自分を律していきたいとは思っていますが。。。なかなか環境は選べません。
さいごに
私はエンジニアに囲まれて仕事をしたことが無いので、あまり他職場のことはわかりません。しかし、技術者・エンジニアの鏡のような人と仕事をする機会に恵まれました。
エンジニア業界のことはわかりませんが、優秀なエンジニアとはまさにこの人のことだ!と思える環境に居られることは幸せなのだと思います。私もそんな風になりたい!と思えますからね。
世の中は、しょーもないエンジニアの話、強強エンジニアからの理不尽なプレッシャーなどを嘆く意見が飛び交っています。ひとつ言えることは、優秀なエンジニアは技術者であるまえに、人としてすばらしいということです。こういう人はどんな業界でどんな職種についても優秀であるでしょう。
あなたにおすすめの記事はこちら
➡「そしてエンジニアは嫌われる:論理的思考がコミュニケーションを阻害」
コメント