ポエム

プログラミングが趣味という強いエンジニアと共存する道

プログラミングが趣味という人がいます。想像に難くなく、こういった人たちはたいてい技術力が高いです。

では、プログラミングが趣味と言えるレベルではないエンジニアは、プログラミングが趣味のエンジニアに技術力では勝てないのでしょうか?

身も蓋もないことを言うと、プログラミング、ソフトウェア開発という土俵に限っては、勝つのは困難だと私は思っています。

しかし世のエンジニアは、プログラミングは嫌いじゃないけど、趣味と言うほどでもないという人がほとんどでしょう。では、そういった人たちはどう立ち回っていけばいいのでしょうか? もっともらしく言うと生存戦略はどうすれば良いのでしょうか?

このことについて見解を述べたいと思います。

つよつよエンジニア

エンジニアを何年もやっていると、ごく稀に、あ、この人にはエンジニアとしては勝てないと思うような人と遭遇することがあります。

そういう人は、たいていは小中学生からプログラミングをしてゲームを作ったりしています。そしてプログラミングが好きすぎて、そのまま大学や大学院でもCS(コンピュータサイエンス)を学んでいます。社会人になったあとも、本業とは別に趣味で土日に個人的なプログラミングをしています。

彼らは新しい技術が好きなので、どんどん身につけていきます。しかし彼らは、好きでやっているだけなので、勉強しているという感覚はありません。

また、プログラミングやソフトウェア開発に特化しているだけでなく、その成果物を動作させて運用したりもしているので、インフラ面でも十分な知識を保有していることがほとんどです。

私は今までのキャリアで、自分とは根本的にできが違うな思うエンジニアに2人ほど会いました。

もちろん何らかの領域においては、自分より優れた技術力を持った人たちはたくさんいたのですが、それは単に注力のベクトルや経験年数が自分とはずれているだけです。追いつけないとか勝てないとかいう断絶を感じることはありません。エンジニアとして同じ土俵の人だという感覚でした。

しかし、先に挙げた二人は自分とは明らかな壁を感じました。ベクトルが違うのではなく、次元が違う感じです。追いつくとか差があるとかいう感じではなく、何か根本的に違います。成果物を生み出すまでのスピードが圧倒的に違いますし、自分にない発想も持ち合わせていました。これは自分が敵うレベルではないなと思いました。

話を聞くと、やはり冒頭に上げたようなキャリアでした。幼少からプログラミングをしていて、大学の専攻はCS、土日もプログラミングで自分が欲しいと思うサービスを作ったり、面白いと思った技術を動かして見たりとかしているそうです。

自分の場合

私の場合は、コンピュータに興味を持ったのは大学生のときです。とはいえ、コンピュータサイエンスを面白いと思ったわけではありません。当時は、WinMXやWinnyなどのファイル共有ソフトが流行っていて、それを使うのを面白いと思っただけの一般ユーザです。大学の授業でプログラミングがあり、このときはじめてプログラムを書きましたが、面白いとは全く感じませんでした。

社会人になり、プログラミングができるようになって、そこではじめて面白いと感じ、ゲームを作ったりしていました。が、所詮それは、全くできなかったことが少しできるようになったのを、面白い感じる初学者の最初のフェーズに過ぎません。趣味と呼べるほど、どっぷりとつかることはありませんでした。

私はプログラミングは好きですし、結構プライベートで書いたりもしていますが、自分は天性のプログラマーレベルには到達できないと思っています。プログラミングをできるようになったのが社会人からと言うこともあり、やはり素養は持ち合わせていないと自己分析しています。

エンジニアは天性のプログラマーでなくても全然OK

冒頭で、プログラミングやソフトウェア開発という領域で、天性のプログラマーには技術では勝てないといいました。

でも天性のプログラマーでないとエンジニアとして大成できないとは言っていません。

私は天性のプログラマーでなくともエンジニアとして頂点とはいかなくとも、トップ領域に近づくことは全然可能だと思っています。

天性のプログラマーが求められるケースはあまりない

まず天性のプログラマーが求められるケースはあまり多くありません。

エンジニアが作るサービスのほとんどは、既存技術の組み合わせしかありません。そしてこういったプロジェクトは天性プログラマーは必要ありません。並のエンジニアで事足ります。

天性のプログラマーが必要なケースは、今までにないサービスの新規開発のコア部分のみだけです。こういったプロジェクトで一人いれば十分なことがほとんどです。

最近の有名なケースで言えば、登大遊さんがNTTの特殊局員としてシン・テレワークシステムを構築したケースでしょうか。このプロジェクトに従事したエンジニアは優秀な人ばかりだったと思われますが、全員が天性のプログラマーレベルということはないでしょう。

天性のプログラマーとは共存する道で生きていこう

私は、自分のような一般エンジニアは、天性のプログラマーと共存する道を目指すべきだと思っています。

天性のプログラマーレベルの人と一緒に働くのはとても刺激的で楽しいことです。未知の領域がところかしこにあり、しれに引っ張られて自分の技術力もどんどん上がっていきます。

では、どうすれば彼らと一緒に働けるようになるのか。それは彼らがカバーしきれない領域を身につけるに限ります。彼らは、プログラミングやソフトウェア開発の一点突破型がほとんどです。

なので、プログラミングの一般レベルにプラスα、彼らが手を出さないような強みを身につけて、総合力で彼らに近づくようにすれば、一緒に働くに値します。

具体的には、技術の幅を広げる、ビジネスサイドもカバーする、マネジメントできるようになるなどでしょうか。

私自身は、最初の技術の幅を広げる戦略を選択しています。といっても、戦略といえるほど大げさなものではありません。ビジネスサイドやマネジメントには、あまり興味を持てないので、気づいたらそうなっていただけということです。

これが正解なのかどうかはわかりませんが、まあそれなりに楽しくやっているので、これでいいかなという気はしています。