中島聡「未知の開発言語の勉強を、楽しめるかどうか」Windows 95の父が考える、エンジニア向きの資質とは
世の中に大きな変革を促す、偉大なソフトウエアを生み出す天才プログラマー。多くのエンジニアが、一度は憧れた経験があるだろう。
ただエンジニアの世界は、シビアだ。持っている知識や扱える技術の総量で、自身のレベルが明確に可視化される。天才たちと自身の姿を比べては、「自分はこの仕事に向いていないのかもしれない」と感じてしまうのも無理はない。
一方で、天才たちは「エンジニアの向き・不向き」をどのように考えているのだろうか。『Windows 95』の生みの親である中島聡さんは「知識があるかどうかは関係ない。大切なのは、知識を培う過程を楽しめるかどうか」だと語る。
伝説のプログラマーが考える「エンジニアに必要な素養」とは、一体何か。中島さんに話を聞いていくと、「心から夢中になれる」からこその”強さ”が浮かび上がってきた。
ソフトウエアエンジニア 実業家
中島 聡さん(
)
早稲田大学大学院理工学研究科修了・MBA(ワシントン大学)。1985年に大学院を卒業しNTTの研究所に入所し、86年にマイクロソフトの日本法人(マイクロソフト株式会社、MSKK)に転職。89年には米国マイクロソフト本社に移り、ソフトウェア・アーキテクトとしてMicrosoft本社で Windows 95 と Internet Explorer 3.0/4.0 を開発。Windws95に「ドラッグ&ドロップ」と「(現在の形の)右クリック」を実装したことによって、両機能を世界に普及させる。後に全米ナンバーワンの車載機向けソフトウェア企業に成長するXevo(旧UIEvolution)を2000年に起業し、19年に352億円(3億2000万ドル)で売却。元EvernoteのCEOが立ち上げたmmhmmの株主兼エンジニア。現在はフルオンチェーンのジェネラティブアートの発行など、Web3時代の新たなビジネスモデルを作るべく活動している。堀江貴文氏に「元米マイクロソフトの伝説のプログラマー」と評された
数学の難問に没頭できる人が、エンジニアに向いている
エンジニアとして長くキャリアを描いていく上で欠かせないのは、スポーツ選手でいう「体力」に相当する「地頭」です。
そもそもエンジニアに向いている人というのは、数学の応用問題を解くのが楽しくて仕方がないような人だと思っています。周りと比べて知識量が多いとか少ないとかは大したことじゃない。知識は必要に応じて身に付ければそれで良い。大切なのは「新しい知識を素早く身に付ける力」です。
そしてそのプロセスそのものを「楽しむ」姿勢が何よりも重要だと、僕は思う。もし、そのプロセスが「苦行」と感じるようならば、残念ながらあなたはエンジニアの仕事に向いていません。
エンジニアを職業にしていれば、時には無謀なスケジュールに振り回されることもあるし、嫌な上司や顧客に無理難題を突きつけられることもある。自分が得意ではないことをやらされることだってあるかもしれない。
ただ本当にその仕事が好きなら「つらい、辞めたい」と思うよりも先に、「どうやって困難を乗り越えるか」と考えるものです。
マラソン選手が上り坂に出会うたび、「坂道なんて大嫌いだ、マラソンなんてするんじゃなかった」と思うでしょうか。本当にマラソンが好きならば、「ここで音を上げているようではトップになれない」「むしろライバルに差をつける絶好のチャンスだ」と感じるはず。
頑張る底力は、好きだからこそ自然に出てくる。好きでもないものに対して、無理矢理絞り出すものではないのです。
「エレガントな答え」との出会いが、何よりも幸せ
僕自身は仕事が好きで、遊ぶ時間もそれほど必要ないタイプ。仕事が趣味になっているような人間です。
ですから仕事のあらゆるシーンを楽しめていますが、やはり一番好きなのはプログラミングをしているときですね。とりわけ、苦労して頭を絞り「エレガントな答え」と出会えたときには大きな喜びを感じます。
数学の難しい図形の問題が、たった1本の補助線を引くだけで一気に答えが見えてくることってありますよね。プログラミングの過程でもその「補助線」が見つかることがある。そのシンプルで分かりやすい回答を僕は「エレガントな答え」と呼んでいて、その答えにたどり着けた瞬間が何よりも幸せなんです。
僕にとってプログラミングとは、知恵の輪を解いたり、クイズの解答を見つけたりするようなもの。あまり簡単すぎても面白くないなと思っています。
これまでの人生を振り返り、エレガントな答えにたどり着けた印象的な例を挙げるなら、学生時代にパソコン用CAD『CANDY』を作り上げたときでしょうか。
当時のパソコンはまだ性能が低く、CADのような複雑なアプリは存在していませんでした。描写スピードが遅く、複雑な図形を表示できなかったからです。この問題を解決するためにまず取り組んだのが、直線を描写する関数を徹底的に速くすること。しかし、それだけでは不十分でした。
2週間ほど家にこもり試行錯誤を続けているうちに、CADの場合は水平や垂直な線の描写が多いことに気が付きました。そこで、引くべき直線が水平または垂直だった場合にのみ、別のアルゴリズムで描画するようプログラムを変更したのです。
それぞれに特化したアルゴリズムを作れば、圧倒的に速くできるのではないか。その直感は当たり、十分に使い物になるスピードで動くようになりました。CADの場合、「水平・垂直な線の描画が多い」こと、「その描画に特化したアルゴリズムを使う」ことが、「補助線」だったのです。
世界初のパソコン用CADのCANDYは、こうして生まれました。
心からほれ込んだ仕事なら「苦行」すら楽しい
ソフトウエアを作っている身として、全力を投入して作った製品を多くの人に使ってもらうことは、何よりの喜び。この世界に何らかのポジティブな足跡を残せれば、それは私にとって充実した人生だったと言えるからです。
その点では、米マイクロソフト本社で開発に関わった『Windows 95』は世界中で広く使われ、まさに開発者冥利(みょうり)に尽きる仕事だったと思います。「中島聡」という名前が広く知られるきっかけにもなりました。
いい仕事をしていると、それを高く評価してくれる人がいて、その人たちとのつながりが後の人生に役に立つ。僕が起業したときにすぐ投資してもらえたのも、Windows 95の開発を高く評価してもらえたからでしょう。
どんな世界でもそうですが、三度の飯を忘れるくらい夢中になって勉強している人、働いている人ほど、強い人はいません。そんな人にとっては、他の人にとっての「苦行」が「楽しくて仕方がないこと」になる。僕もそうやってソフトウエア開発に日々向き合ってきたことで、この世界で成功することができました。
特にこの変化の激しい時代では、新しいことを勉強し続ける姿勢がより重要になってきています。現役エンジニアの皆さんも、試しにこれまで一度も書いたことのないプログラミング言語の勉強をしてみてはどうでしょうか。
そのプロセスを楽しむことができるなら、あなたはエンジニアに向いているのです。自信を持って、エンジニアとしてのキャリアを歩み続けてください。
写真/竹井俊晴 取材・編集/今中康達(編集部)