今まで働いてきた中で天才だと思ったプログラマー3人

酒井潤氏:どうも、シリコンバレーエンジニアの潤です。

シリコンバレーには優秀なエンジニアがたくさんいるのですが、今まで働いてきた中で、天才プログラマーという領域の人たちと一緒のチームで隣同士で開発をする機会があったので、今日はその方々の話をしようかなと思います。

あくまでこれは私が一緒のチームで、隣同士でプログラムを開発したという環境の話です。例えばみなさんがGoogleなどで天才プログラマーを検索したら、Appleの製品を作った方や、Python言語自体を開発した方が出てくるかもしれませんが、もちろん私はそういったレベルの人とは一緒に仕事をする機会はないので、今日はあくまで私の身の回りで、かなりレベルの高かったエンジニアの話をします。

この3人には共通しているところがあって、みなさん小学校の頃からプログラムをガンガンやっていました。また、家庭環境に多少問題があり、友だちと遊びに行ける環境ではなかったため、常にパソコンが友だちでパソコンとしか遊べない環境に追い込まれていたところもあるので、一般的な家庭とはちょっと異なっているという点で、性格的にやはりユニークな方々でした。

独自プロトコルをGo言語で書いて実装した天才プログラマー

1人目がイギリスの方です。どれぐらいすごかったのか、みなさんにソースコードをお見せできないので伝えにくいところはあるのですが、今から6、7年前でしょうか、Go言語が開発されて世の中にバンッと出た時がありましたよね。その時は出始めだったので、サードパーティーのパッケージはほとんどありませんでした。Goの標準のライブラリも、すべてがそろっている状況ではなかったので、出始めは確かに使いにくかったんですよ。

でもその彼は、Gooleのブログなどから情報を得たのか、Goの良さをしきりにみんなに伝えていました。「今からGoを使おう」と言っていたのですが、やはり会社としてもGoをいきなり使うのはけっこう勇気が要りますよね。シリコンバレーでGo言語を使っている企業は、今はたくさんありますが、その当時はやはり、なかなか踏み切れないところがありました。

その当時、会社にはTCPやUDPのプロトコルで提供するサービスがいろいろあったのですが、彼はTCPやUDPに対してもかなり文句を言っていました。実装レベルで不満があったらしいです。そこで彼は独自のプロトコルをGo言語で書いて、自分で実際に実装したんですよ。

今であれば、Goでもネットワーク関係のプロトコルのライブラリが豊富にあるのですが、その当時はありませんでした。彼は実際にプロトコルレベルから全部書いて、「TCPよりもこっちのほうが優れているから、私が作ったプロトコルでサービスを提供しよう」みたいなことをみんなに言っていました。

私もそのソースコードを見たのですが、かなりハイレベルで理解ができませんでした。彼に「このTCPのこの部分が悪いから、こっちのほうにしたほうがいい。これを使うべきだ」と言われても、正直私は理解ができず判断もできませんでした。こんな感じで、独自のプロトコルなんかもサクッと作っちゃうような人です。

会社も特別待遇をするほどプログラムのレベルが高かった

その人もやはり、ほかの人とのコミュニケーション能力の部分がユニークだったので、会社にはほとんど来なかったですね。会社の隣にアパートを借りていて、会社まで歩いて2、3分で来られる距離だったのですが、会社には一切来なかったです。

基本的に、朝はみんなでミーティングするスタンドアップがあるのですが、それにも一切参加しなかったです。彼は「自分が関わるプロジェクトのミーティングには呼んでくれ。それ以外は時間の無駄だから行きません」と正直にプロジェクトマネージャーに伝えていました。

プロジェクトマネージャーとしては、やはりチームの和の面でスタンドアップぐらいは来てほしいのですが、そういうことを言うと、すごいプログラマーは辞めてしまったりするので、会社としてもその方を特別待遇という感じで対応していました。それぐらいレベルが高かった方ですね。

頭の回転が良すぎるので、私は英語のレベル以上に論理的な話やプログラムのかなりハイレベルな話についていけなかったです。

日本であればそういう方がいたとしても、やはりルールがガチガチなので、チームの和を取って強制的に会社に来いと言いますよね。でもアメリカの場合は、チームの和よりもその人がプログラムを書いたほうが会社のメリットになるならば、平気で特別待遇をします。

その人ははるかに群を抜いていたので、チームメンバーも別にその方がスタンドアップに来なくても、一切文句は言わない状況でした。

そういった方は、コミュニケーション能力的にも一般の方と多少異なるところがあるので、ちょっとでも強いことを言うと辞めるんですよ。プロジェクトマネージャーも強気な方だったので、私には「こうしろ、ああしろ」「早くしろ」とけっこう言ってきたのですが、その方に関しては一切言わなかったですね。

「ちょっとお願いがあって、ミーティングに来てほしいな……このミーティングは重要なんだけど」みたいな会話を見ていて、やはりアメリカっておもしろいなと感じましたね。要は、お金が生み出せる人は強いです。

最適化のためにアセンブリのコードを書き換えた天才プログラマー

2人目は、アメリカの方です。この方も小学校の頃からずっとパソコンをやっていたみたいです。貧しかったので、学校の廃棄処理用のパソコンをもらってやっていたみたいです。

アメリカでは、クスリをやってしまう親や虐待する親も現状でいます。その方も歯が欠けていて、「これ、ちょっと親が暴れていた時に殴られたんだよ」みたいな話を平気でしていました。その方も小さな頃から、かなり安いパソコンでずっとプログラムをせざるを得なかったと言っていました。

親も働いておらず、お金もぜんぜんなかったので、学校からもらったパソコンでなんとか遊びを見つけなきゃいけなかったらしいんですね。

遊び道具が一切買えなかったので、だったら自分でゲームを作っちゃおうという感じで、彼はそのパソコンでゲームを作り始めました。図書館などの本で独学してゲームを作っていて、その時はアセンブリ言語とC++を使っていたと言っていました。

どんなゲームかというと、単純に「ドラクエ」みたいな感じで、野原を人が歩いてバトルするゲームを作っていたらしいです。もちろんC++にもライブラリがあるので、いろいろなゲームは作れるのですが、パソコンのスペックがかなり低くて遅かったので、「最適化するためにアセンブリのコードを書き換えた」と言っていました。ちょっとレベルが違いますね。

その方も頭の回転が速く、早口でした。食生活を見ていても、朝から晩までずっとコーラやスプライトを飲んでいるんですよ。彼は「プログラムを書く時にはとにかく甘いものが異常に欲しくなる」と言って、朝御飯はコーラにストローを挿したもので、それをずっと飲みながらプログラムをやっていました。会社に来ても、ずっとスプライトを飲みながらプログラムをやっているので、アインシュタイン系と言ったらいいんでしょうかね、とにかく甘いものを摂りまくって、ずっとプログラムをやっている感じでした。

その方はかなり若くて、高卒でした。高卒で小さな企業に入ったんですが、会社にお金がなくて、解雇されるというのを繰り返していました。私も一緒に働く機会があったのですが、当時でも彼のレベルは異常に高かったので、今はGoogleのマネージャーとしてチームをまとめています。今で29歳とかなので当時はかなり若かったのですが、プログラムのレベルは異常に高かったです。

そういうエンジニアがいるので、やはりGoogleはどんどん成長するんだなというのが私の感覚ではあります。

(次回へつづく)