真に技術力が高いとはどういうことか?
私たちの日常生活の中で、テクノロジーは急速に進化し続けています。新しいプログラミング言語が生まれ、新たなフレームワークやツールが開発され、私たちが日々触れるデジタル製品の基盤となる技術は日々刷新されています。この激変する環境の中で、エンジニアとして技術を学び、それを応用することは必要不可欠なスキルとなっています。
エンジニアとして「高いスキルを身に着けたい」と思うのは自然なことです。しかし、「高い技術力」は抽象的な概念であり、その定義は人により異なります。
目指すべきゴールが明確でないと、自己のスキル向上の道筋が見えず、不安に感じることもあるでしょう。
様々なプロジェクトに携わった経験や、数々の面接を通じて得た洞察を基に、どのような人が高い技術力を持っていると感じるのか、またどのような人が技術的に見劣りすると感じるのかを私なりにまとめてみました。
めぐみん型
さて突然ですが「この素晴らしい世界に祝福を!」という作品をご存知でしょうか。
これに出てくるキャラクター、めぐみんは強力ながら1日に一度しか使えない、特殊な魔法「爆裂魔法」を使いこなします。この大技のために、彼女は日々努力を重ね、パーティメンバーと連携してその力を発揮します。
エンジニアの中にも、この「めぐみん」に似た特性を持つ人々がいます(本記事では以後めぐみん型と呼びます)。彼らは"高い技術力"を追求する過程で、日々の業務でよく使う基礎的なスキルよりも、大規模なプロジェクトなど特定の状況下でのみ有効となる"大技"や"新しいもの"に特化しようとします。
しかしこれは、例えばサッカーでいうとオーバーヘッドシュートばかりしていてドリブルができない選手や、RPGでいうと蘇生はできるが一度死ぬまで回復はできないヒーラーのようなものです。(さらに、多くの場合その"大技"の実戦経験はありません)
めぐみん型エンジニアの特徴
- 新しい情報は継続的に仕入れているが、内容や採用理由はよく理解しておらずそれを盲目的に信仰している
「今どき〇〇とか古いですよ。とりあえずPythonにしましょう」 - "モダン"な環境が整っていないと対応できない
「今どき◯◯でないとダメですよ。それが整っていないと効率が悪いですね」(しかし、自分でそれを実現することはできない) - 完璧を追い求め、まだ遭遇していない問題に対しても引き返し、頻繁にゼロから作り直す
「この部分の設計が悪かったので作り直します。そのため、納期が2ヶ月ほど延びます」 - 技術書を読んだ量や、特定の用語を知っていることを誇りにし、実績やどう判断するかついてはあまり語らない
「毎週2冊技術書読んでます」「〇〇知らないですか?今どき常識ですよ」
実際に技術力の高いエンジニア
- 新しい情報を理解し適切に採用できる
「現在は◯◯がよく使われていますが、今回のケースではこういう理由でXXの方が適していると思います。こちらでいきましょう」 - "モダン"な環境に自分で構築、改良する
「これはレガシーなので、こういう計画で◯◯へ移行を進めていきます」 - より良い状態を追求する一方で、納期、利益、コストを考慮し、適切な手段を選択する
「ここは設計が不適切なのですが、理想とする状態には時間がかかります。そのため、一時的にはこの対策を取り、後に本格的な対応を進めていきます」 - 実績や具体的なスキルに基づいた話をする
「私は◯◯などができ、実際にXXの際にこういう対応をしました」
比較してみていかがでしょうか。
研究職ならばよいのですが、実際多くの場合はプロダクトを通じて利益を得る必要があります。このあたりの時間やお金の感覚がなく、技術力という言葉に縛られて却って求められている技術が身についていない人は意外といます。いわゆるWill Can HopeのHopeが伴わないケースです。
ノウハウコレクターと呼ばれるタイプなど、SNSでフォロワー数が多いエンジニアの中にもめぐみん型は結構見られます。
面接でも「今どきは〜」という方に対して「それはなぜですか?」と聞くと、答えられなかったりズレた回答が返ってくるケースは多いです。
実際に技術力が高いエンジニアより技術力が高い風のメッキをつけている人が多いのは、メッキをつける方が簡単なので仕方がないことなのかもしれません。
しかしながら、やはりエンジニアとしてはメッキではなくちゃんと技術力を身に着けていきたいですね。
まとめ
大技や新しいものにはロマンがあります。
しかし、一般的に頻繁に必要とされる基本的なスキルを疎かにして大技だけを追求するのは、冒険者にとっては差別化されたスキルセットとなるかもしれませんが、日々の業務に立ち向かうエンジニアにとっては、基盤となるスキルの欠如が目立ち、結局大技を使う機会は無いままになってしまいます。
エンジニアとしては、専門性と柔軟性を兼ね備えたバランスの取れたスキルセットが求められます。下を積み上げずにショートカットができるようなものではないのです。
新しい情報も適切に吸収し、応用できる能力、自分自身でその環境に組み替える実現力、そしてより良い状況を追求しつつも納期、利益、コストを考慮できるバランス感覚―これらこそが、真に技術力の高いエンジニアが持つべき特徴と言えるでしょう。
特に、SNSやブログなどで情報が飛び交う現代では、新しい技術や大手企業が採用している"大技"に目を奪われがちです。
しかしいつでも基本を忘れずに、真に技術力が高いエンジニアを目指したいですね。