海外志向と遠回り ─ 20年近くかけて少しずつやりたいことに近づいたソフトウェアエンジニアの生存戦略

こんにちは、ひげぽん(@higepon)といいます。最近は、@miyagawaさんが配信しているRebuild.fmというポッドキャストにときどき出演させてもらっています。もしかしたら、そちらで私のことをご存じの方もいらっしゃるかもしれません。

ソフトウェアエンジニア歴は長く、もうすぐ20年になります。新卒で電機メーカーのシステム子会社に就職。その後、株式会社はてな、サイボウズ・ラボ株式会社などを経て、アメリカのTwitter本社で働くために渡米。最近また日本に戻って、某外資系企業でエンジニアをしています。

長いキャリアの中では、たくさんの失敗や遠回りをしました。世界に羽ばたくWebサービスを作ろうと奮闘しましたが、失敗しました。開発効率を上げるツールを作って使われないこともありました。行きたい会社の面接を受けて箸にも棒にもかからず、悔しい思いをしたこともありました。

本記事では、このように少しずつ遠回りしながら、自分がやりたいことに近づいてきた経験を共有できればと思います。

photo of Golden Gate Bridge in San Francisco
サンフランシスコのゴールデン・ゲート・ブリッジの前で

遠回りしながらも勉強し続けるのはなぜか?

自分の職業人生と「勉強」は切り離せません。なので、まずは継続的な勉強のお話から始めましょう。なぜ、私は勉強をするのでしょうか?

勉強してようやくキープという危機意識

第1の理由は、この業界には、好きで熱心に技術を勉強する人たちがたくさんいることです。

社会人1年目のとき、優秀な先輩に「この業界は、勉強しないとどんどん置いていかれるよ」とアドバイスをもらったことを今でも覚えています。勉強しないと、実力は相対的に下がっていきます。もっと言えば、他の人と同程度に勉強して、ようやく自分の力をキープできるのです。

脅しに聞こえるかもしれませんが「将来、年をとったときに、どこにも雇ってもらえないかもしれない」そういう危機意識をずっと感じてやってきました。

コンピュータサイエンス不足を補う

似た理由ですが、キャリアチェンジの準備のために勉強することもありました。不足を補う勉強です。私の場合は、それがCS(Computer Science、計算機科学)と英語でした。

大学で勉強したのは物理だったため、いわゆるCS教育を受けていないのです。例えば、各種のアルゴリズム、コンピュータがどう動くか、コンパイラ、グラフ理論、情報量の話など、習ってないことはたくさんあります。

もちろん、CSを勉強してなくても、立派にエンジニアとしてやっていけます。しかしながら、知識にポッカリと穴が空いた状態は、常にコンプレックスでした。また、CSの各分野に精通していることが求められる仕事もあります。

そういうわけで、本を読んで独学でCSを勉強しました。私の周りにも、同じようなことをしたエンジニアは少なくありません。

中級の英語をビジネスレベルに上げるのは難しい

英語に関しては、みなさんも同じようなことを感じているかと思います。「話せたら世界が広がるのだろうな」「いつかやろう」と思っている人も多いはずです。私も「いつかアメリカで働きたいという」というぼんやりした目標のために、英語を勉強していました。

日本では「英語勉強ビジネス」が盛んで、教材、レッスン、体験談、勉強法ブログなど、リソースが豊富にあります。とても恵まれているので勉強は始めやすいのですが、私が悩んだのは、中級からビジネスレベルに上げる方法でした。初心者から中級者向けの教材や山ほどありますが、それ以降の教材は極端に少ない印象です。

ビジネス的にはそれも当然で、初心者から山を越えるにつれて学ぶ人の数が減りますから、儲からない中級以降の教材が減るのは、当たり前といえば当たり前です。私の場合は、中級のままで渡米してしまい、力技で上達させましたが、とても苦労しました。

日本にいながらに上達するには、オンライン英会話で実践的な場数を踏むのが良さそうです。

嫌なことを回避するために勉強

さて、最後にもう1つ、勉強をする大きな理由がありました。それは嫌なことをしたくないからです。

私は、好きなことは放っておいてもやりますが、やりたくないことを無理強いされるのは大嫌いです。また、そういった場合にストレスが溜まってパフォーマンスが出ないことも目に見えています。そのため「やりたくないことを避けるため」にも、勉強をしてパフォーマンスが出るようにしてきました。

例えば、ころころ言うことが変わる上司、そんな上司や同僚との頻繁な飲み会、長時間拘束される開発合宿、土日出勤、無駄な会議……こういったものとは、あまり関わりたくない。そのために勉強をしていると言っても過言ではありません。

いくつかの失敗から学んだ勉強戦略

ひとくちに勉強すると言っても、やみくもに勉強するわけではありません。何をいつどのように勉強するかが重要になります。私は過去いくつかの失敗を経て、以下のような方針で勉強することに落ち着きました。

1. 技術を2個以上スキップしない

次から次に登場する技術を、すべて勉強すべきでしょうか。個人的にそれは無理だと思うので、「2個以上スキップしない」ルールを守っています。大きなパラダイムシフトが起きた場合に、1つはスキップしてもよいが、2個以上はNGとするのです。

例えば、Web開発者であれば、スマホ開発の技術をスキップするのはかまわないが、その後に現れた機械学習まではスキップしない。2個以上スキップしてしまうと、心理的距離が離れすぎて、その技術の「肌感覚」がつかめない状態になってしまうからです。

2. 死にゆくものにコミットしない

技術の中には、今伸びているもの、逆にゆるやかに死にゆくものがあります。「死にゆく」というのは徐々に使われなくなっているという意味です。自分は死にゆく技術にはできるだけコミットしない(=時間を使わない)という方針をとっています。

ごく当たり前の方針に聞こえるかもしれませんが、判断は難しいです。無理やり「死にゆく」を数値化するならば、その技術に関連するキーワードの検索ランキングの推移は使えるかもしれません。その技術の求人の人気や、給与レンジを見るのも良いでしょう。

3. 「予想は外れる」という認識を持つ

「死にゆくものにコミットしない」と書きましたが、実際に死んだ技術を私は見たことがありません。

私が「これは近いうちに人気がなくなって誰も使わなくなるだろう」と思ったもので、本当になくなったものは1つもありません。普通に使われていたり、ある分野に特化して生き残っていたりします。

人気がなくなろうが、気にせず、その技術にずっと長く関わり続けて、幸せそうなエンジニアもたくさん知っています。

むしろ、死にゆくものに取り組むメリットもあります。人気がなくなるので、競争相手が少なくなり、相対的な需要や給料が増えることがあるのです。ジョブセキュリティ的にも食いっぱぐれない可能性が高くなります。

なので、自分の予想は外れることを前提で、ゆるやかな気持ちで勉強に取り組むようにしています。

4. 遅くても良いから焦らず「やる」

周りの優秀な人達に刺激を受けるのは良いことですが、ほどほどにしましょう。彼ら・彼女らが若いうちにどんどん成果を出しても、焦らないように私は心がけています。

理想的なステップをたどっているエンジニアたちはたくさんいます。大学でCSを学び、CPU実験などでコンパイラを書いたり、OSの仕組みを実学で学んだりする人。学生のうちに有名スタートアップでインターンをしたり、未踏ソフトウェア事業に採択されたりする人。卒業後はトップレベルの会社に就職して、グローバルに活躍したり、スタートアップを立ち上げて成功してしまったりする人。かたや自分は……。

人には人のペースがあります。遅くても問題ありません。かのユリウス・カエサルにしても、彼が能力の片鱗を見せはじめたのは40歳くらいです。焦らず自分のペースで勉強していけば、いつか花開くかも……と考えて進んでいます。

はてなのころ
株式会社はてな時代の著者(左)と同僚(撮影:近藤淳也)

実現に10年かかったシリコンバレー勤め

25歳ごろから何となく「将来はシリコンバレーの会社、もしくはその日本支社で働いてみたい」と考えはじめていました。翻訳されたキラキラした海外のITニュース、そこに登場する優秀なエンジニアたちと同じ環境に身を置いてみたい。そして、それが実現したのはおおよそ10年後でした。

なぜ私は、実現までこのように時間がかかってしまったのでしょうか? そこを分析してみたいと思います。

実は、その目標は深く考えていたものではありません。具体的に求人を調べたことは一度もありません。就労ビザの存在すら知りませんでした。正直言えば、とても受け身の状態でした。目標への到達ステップも何も考えていませんでした。ただ闇雲に「いつか機会が降ってくる」ので準備をする。そのような感じでした。

はてな時代には、ショッピングモールのイートインコーナーで弁当を食べながらコンパイラの本を毎日読んでいた時期もありました。苦手なCSをこつこつ勉強しているつもりだったのだと思います。サイボウズ・ラボ時代には、都会のビルとビルの間にある猫の額ほどの緑地公園で、thとsの発音の違いを覚えるために声に出して発音練習をしていたりもしました。

今、若かったころの自分にアドバイスできるなら、「もっと積極的に調べて、具体的なステップを決めて行動せよ。英語の勉強とかCSの勉強とかを言い訳に先延ばしにしているのは怖いからでしょう?」と言うと思います。しかし、当時はあまりに道筋が分からなくてそれが正しいと思っていました。

本来やるべきだったのは、おそらく誰かの伝手(つて)を頼って、詳しい人に教えを請うことだったのではないかと思います。

海外を経験してから帰国して気づくこと

運良く海外生活を経験して、帰国してから気づいたことをいくつか共有してみたいと思います。私が経験したのは、米国サンフランシスコの1社だけなので、偏った経験談であることに注意してください。

まずは、英語について。ビジネスレベルの英語が話せると、国内でも転職先の選択肢が大幅に広がります。また給与レンジも上がることが多いようです。エンジニアの場合、帰国子女並みに流暢に話せる必要は、あまりありません。面接のコーディング問題などで意思疎通ができれば十分な場合もあります。

海外のエンジニアは優秀であると一括りにするのは、おそらく間違っています。トップ5%の人たちを見て「自分は通用しない」と思うのはもったいないです。トップ40%くらいの人材として通用する人は、日本のエンジニアにもたくさんいると思います。そこから上がっていけばよいのです。特に、仕事を淡々と最後までやりきれる人は重宝されると思います。

海外に出るのは、若くて身軽なときの方が圧倒的に楽です。私は、自分のわがままで妻と幼い子を連れて行ったので、かなり苦労させてしまいました。家族にはとても感謝しています。言葉の通じない異国の地で、生活の基盤を作ったり、コミュニティに入っていったりするのはとても大変です。病気や怪我、教育などたくさんの心配を乗り越えなければいけません。若くて身軽なときであれば「今日は疲れたから夕飯なしでいいや」ですみますが、大切な家族と一緒のときはそんなことはできません。

また、民族や文化の多様性を経験すると、他人の目を過剰に気にしなくなって楽になります。例えば、ピンクのTシャツを買おうか迷っているときに、「これを着たら浮くかな?」などとは考えなくなりました。ほとんどの場合、他人は私に関心を持っていません。自意識過剰であることの方がずっと多いのです。

photo of Twitter Party
Twitterのホリデーパーティにて

最近の興味は機械学習

最近は仕事と関係なく、機械学習をずっと勉強しています。オンラインコースで基礎から応用まで学び、論文を読み、その後、実際に自分でデータを集め、モデルを作っています。純粋に楽しいです。

ひょっとしたら、機械学習はインターネットの発明よりも人類の歴史に貢献する技術かもしれません。

なぜ、私は他の技術(IoT、ブロックチェーン、AR/VR)ではなく、機械学習を学ぶことを選んだのでしょうか? 自分なりに分析してみました。

まずは、数学の壁があります。簡単なものを作ってみるだけでは、数学はほぼ必要ありません。ですが、少し込み入ったことをしたり、論文に書かれていることを理解・実装したりするときには、線形代数などの最低限の基礎が要求されます。これは、一般のエンジニアにとっては高い参入障壁となっています。そのため、「誰でも参入可能で、アイデアが勝負を分ける」という戦場から、少しだけ逃げられるのです。

また、最新情報が論文で発表されていくので、語学の壁(英語の壁)があります。そのため、現時点では、すべての人が気軽に試すことのできる技術ではないということが大きいです。さて、この賭けは当たるでしょうか?

中国語を学ぶべきか?

加えて、最近は中国語を学ぼうか迷っています。この先、引退までに、中国企業の日本支社で働くことは可能性としてありそうです。そのとき、本社の人とのコミュニケーションで中国語が話せるとスムーズかもしれません。

サンフランシスコに住んでいるときに知り合った日本人ではない親たちは、子供にこぞって中国語を習わせていました。自分も中国語を勉強した方が良いのではないか? この質問を、同僚や知り合いの中国人たちに聞いてみました。

しかし、彼らの答えは揃って「NO」でした。しかも、みな同一の理由を一番に上げたのです。それは、中国企業が国外に出て仕事をする場合、社員のコミュニケーションは英語で行われることが多いからとのことでした。

それはともかく「学んだら楽しいと思うからやってみたら?」とも言われたので、勉強を始めるかもしれません。

ちなみに、自分の子供世代に語学教育することには、私はあまり熱心ではありません。それよりも、自分の好きなことを見つけて伸ばしてほしいと思っています。

まとめ

今回は、自分の経験や失敗をランダムに共有しました。自分のキャリアに迷いがある人たちに、私の経験談や失敗が役に立てば幸いです。遠回りしてもいつか大成しましょう😉

蓑輪太郎(みのわ・たろう)higepon

higeponja

1977年生まれ、千葉県出身。2001年慶応義塾大学理工学部物理学科卒業。株式会社はてな、サイボウズ・ラボなどを経て、2013年に渡米。Twitter本社で、Twitter for iOSなどの開発に携わる。現在は日本に帰国、某外資系企業勤務。
higepon blog