日本最大級のエンジニアコミュニティ、Qiitaプロダクトマネージャーの清野俊文です。
この番組では、日本で活躍するエンジニアをゲストに迎え、キャリアやモチベーションの話を深掘りしながら、エンジニアの皆さんに役立つヒントを発信していきます。
今回からのゲストは、元Googleソフトウェアエンジニアで、現在は独立してBlue Whale Systems株式会社を創業されています。
上山瑠衣さんです。よろしくお願いします。
はい、よろしくお願いします。上山瑠衣です。
私は、10年ほどアメリカのGoogleで働いていまして、主にコンパイラーチームというところにいて、C++コンパイラーとかそれに関するツールの開発をしておりまして、
その後、Google Japanにちょびっとだけ戻ってきたんですけど、会社は辞めて、今は自分の会社でオープンソースをもとにビジネスをしています。
なので、いろんなことが話ができると思うので、よろしくお願いします。
はい。
よろしくお願いします。もう、今日はいろいろお話をお伺いできるのを楽しみにしてました。
ではですね、ここからいろいろお伺いしていきたいなと思うんですが、今回ですね、上山さんとお送りする1回目のテーマは、社会人からの海外の大学での学び直しです。
はい、今回はですね、海外の大学に通われていた上山さんにもですね、いろいろお話して、伺っていきたいなと思っております。
で、最初なんですけど、まず学びのところより以前に、まずプログラミングというところですね。
本当に上山瑠衣さんのお話を伺っていきたいなと思っております。
本当に上山瑠衣さん、今は本当にいろいろコンパイラーの開発とかやってらっしゃったりとか、そこすごいアウトプットとかもされていて、結構そこで知っている方多いんじゃないかなと思うんですけど、そもそも開発とかプログラミングっていうのを、いつから始めたのかとか、いつ興味を持ったのかみたいなところをお伺いしてみたいです。
そうですね、プログラミングを本当に始めたのは、たぶん中学生の3年とかぐらいで。
中学生からやってらっしゃったんですね。
一応、ただそれが昔の話なので、コンピューターが今みたいに。
はい。
広くみんなに受け入れられているというか、役に立つスキルだと思われていないようなもの自体で、なので、むしろそういうので遊んでいるとダメな人間になるみたいな、そういう時代が昔にはあったわけなんですね。
なので、別に誰に勧められたとかではなく、ただ、ある種の人間というのは、たぶんそういう星のもとに生まれついていて、なんかこうコンピューターをいじって何かを作りたくなるみたいな衝動があるような気がするんですよね。
はいはい。
僕の友達とかも、例えば、家にコンピューターがないので、
紙にコードを書いていって、友達の家に行って入力させてもらってたりとか、そういう。
ええ。
マイコン族じゃなくてナイコン族って言ったらしいですけど、そういう人がいたりとかして。
はいはいはい。
なので、たぶん僕も、まあマイコンっていうよりはもうちょっと後ろの世代ですけど、まあ似たような人種というか人間で、まあきっかけというのがなく単にプログラミングをしているみたいな感じなんですね。
はいはいはい。
はい。
で、プログラミングとかコンピューターって、なんていうんですかね、なんか雑誌とかで知るとかだったんですかね。
そうですね。まあコンピューターというものはないわけではないので、まあ何かっていうのを、アイデアはみんなわかってはいると思うんですよ。
はいはいはい。
ただ、今みたいにみんなが本当にわかってるかどうかっていうとわかんないですけど。
ですよね。だって今だとその、コンピューターについて調べるのにコンピューターを使うみたいな時代じゃないですか。
そうです。
当時って違いますよね、たぶん。
そうです。当時はパソコンって何に使えるのみたいな世界ですからね。
はいはいはいはい。
その。で、何にでもできる。
何にでもできる。通信もできるし、人とのコミュニケーションもできるし、プログラミングもできるし、表ケースもできるっていうと。
はい。
理解してもらえないことが多かったみたいな時代だったかもしれないですね。
はいはいはいはい。
今となっては信じられないですけどね。
そうですね。えー。なんか当時のそのプログラミングの勉強ってどういう感じでやってらっしゃったんですか。
あー、プログラミングの勉強は基本的には本を読んで。
はいはいはいはい。
やるというので、まあ今とはあんまり変わりはないと思います。
へー。あー、なるほど。じゃあなんかそういう感じでこう一部、こうコンピューターみたいなのが。
やってる、なんていうんですかね、界隈というか、まあそういう方たちがいて、まあその中で、まあその中学生の頃から自分自身もこうプログラミングとかコンピューターっていうものにこう触れ始めたみたいな、そんな感じなんですかね。
いや、別に仲間がいたとかそういうわけではないですね。
あー、そうなんですね。
うん。
最初に興味を持ったのってなんかどう、どういう流れなんですかね、それで言うと。
それはね、ないんですよね。
あ、ないんですね。
単にそういうのに元々興味があるだけなんですよね。
はいはいはい。
なので、逆に言うと役に立つからやってる。
はいはいはい。
言うわけではなくて、単にやりたいからやってるだけなんですよ。
はいはいはいはい。本当に、なんていうんですかね、いろいろなこう趣味とかエンタメの一個としてこうやってたみたいな、そんな感じなんですかね。
そうですね。例えば歌が好きな人が歌が好きなのはどうしてですかっていうと、まあ中にはきっかけがある人もいるかもしれないけど、まあ多分多くのプロで歌をやってる人っていうのは、物心ついたときから歌が好きだったというような話だと思うんですね。
はいはいはいはい。
そういうのと似たようなものがあるかもしれないですね。
あー、なるほど。
じゃあもともとものづくりとかそういうのが好きだったみたいな感じなんですかね。
そうですね。もともとものづくりが好きで、まあうちの親とかも好きなので、あるいは要素があるのかもしれないですけどね。
うんうんうん。なるほど。じゃあ本当に最初は趣味で、こうプログラミングとかコンピューターってものを始めて、まあそこからこう今に繋がってくるってことですね。
そうですね。だから、大人の言うことをあんまり信用してはいけないってことですよね。ある意味では。
そうですね。ある意味で、そういうこう。
分かった。
まあ、だってその、仕事に繋がるとか全然思われてなかったってことですもんね。
そうなんですけど、たぶん勘のいい人だったらこれはかなりすごいことになるというのは、先見の明があればわからなくもなかったと思うんですよね。
はいはいはい。
ただ、普通の人がそういうふうに思えたかっていうと、全然そういう時代じゃなくて、よくわからないけどとりあえず遊んでんだみたいな。
はいはいはい。
ふうなのはあんまり信用してもいいことはないっていうことですけどね。
なるほど。ありがとうございます。
だから、そこのこう、趣味っていうところからプログラミング始めていったと思うんですけど、なんかそこら辺をなんていうんですかね、こう学問として学び始めたタイミングとかっていうのはあったりするの?
うーん、明確な差があるわけじゃないですけど、ただ、コンピュータサイエンス的なものはもともと好きなので。
はい。
何が学問で何が学問じゃないかっていう、その境界線というのは割と曖昧だと思うんですよね。
うん。
例えば、じゃあ相当のいろんなアルゴリズムが学問なのかというと。
はいはいはいはい。
学問でもあるようでいて、実用的な技術の一つなのか。
そうですね。
ただまあ、いろんなパフォーマンス特性とかを考えて分類してみるみたいなのを、考えると学問とも言えなくないけどみたいなので、境界線があんまりはっきりしないところではあると思うんですよね。
うんうんうん。
あとは、物理とかみたいに、まあ物理も境界線はそんなにすごくはっきりしてるわけじゃないかもしれないですけど、ただ、コンピュータというのは全てが人が作ったものなので。
うんうんうん。
物理が作った計算機というものの上で、じゃあどれだけその理論が一般性を持つかっていうとよくわかんないところがあって。
はいはいはいはい。
そういう意味では、どこからがコンピュータサイエンスでどこからがエンジニアリングなのかっていうのはちょっと曖昧なところがあると思うんですけど。
はいはいはい。
まあそういう意味では僕はどっちも好きで。
はいはいはいはい。
まあどっちからどっちにシフトしていったわけじゃなくて、両方勉強してるみたいな感じですかね。
ああ、そうなんですね。なんかそこら辺をこうなんだろうな、特に区別せずに結構こう、ぬるっとどっちもやってたみたいな。そういう意味で。
まあそうですね。僕はコンピュータにまつわることは大体何でも好きなので。
はいはいはいはい。
なので、JavaScriptでウェブサイトをちょっときれいにする。
はいはいはい。
とかも好きだし。
ああ、そうなんですね。
うん。コンピュータサイエンスの、例えば言語のクラスについて考えてみるみたいなことについても、まあ好きみたいな。
ああ、そうなんですね。なんかイメージ、やっぱり今のこうやってらっしゃることとかを聞くと、こう比較的なんていうんですかね、レイヤー低めというか、最適化とかそっちを見ると。
そっちの方に興味があるのかなって思ってたんですけど、結構本当に幅広くいろんなところに興味があるっていうような感じなんですね。
むしろ僕はちょろっと動いていい感じに便利っていうものが好きなので。
はいはいはい。
例えばこの間、SwitchBotっていう製品買ったんですよね。
ああ、はいはいはい。知ってます。
あのなんか、ボタンを押してくれる小さなスイッチみたいなやつがあって、それがスマホからいじれるみたいな。
はいはいはい。
で、例えばお風呂を入れるボタンっていうのをスマホから押せるようになるみたいな。
はいはいはいはい。
すごいたあいもない機械ですけど。
はい。
ああいうのとか見ると、うわ、こういうの作るの楽しそうだなって思いますね。
うんうんうんうん。
なんか小気味ですよね。
はいはいはいはい。結構なんかそういうのをうまく動かせるような仕組み作りとか、なんか本当にものづくりみたいなところが結構全般的に好きみたいな、そういう感じなんですね。
そうですね。例えば昔は赤外線リモコンをUSBで出せるやつを買ってきてですね。
はいはい。
で、そういうやつ、デバイスって世の中にあってですね。
うん。
それ、LinuxからそのUSBの仕組みが出てきて。
はいはいはい。
シリアルポートを読むと、赤外線データがそのバイナリデータとして読み出せるんですね。
へえ。はいはいはい。
それを書き込むと、同じ赤外線データが出ていくみたいな。
はいはいはい。
デバイスっていうのがあってですね。
なるほどはい。
で、それを使って家の外からエアコンをつけれるみたいなやつとかを作ったりとかして。
へえ。じゃあ本当に今のスイッチボットを自分で作るみたいな。
そうですね。ある意味そうですよね。
そんな感じですよね。
趣味とかものづくりっていうところが好きでプログラミングやってらっしゃるってお話あったじゃないですか。
何かそこら辺を何て言うんだろうな。例えば大学とかそういうところで学び始めたとか。
何かそういうところは何て言うんですかね。どういう流れでエンジニアになっていったというか。
何かどうやってそこら辺を学んでいってキャリア積んでいったのかみたいなところってあったりしますか。
まあ大きなキャリアに繋がった一番の流れっていうのは多分Linuxを使っていたことで。
はいはいはいはい。
Linuxっていうのが当時なんで雑誌の付録のCD-ROMとかに付いてくるみたいな。
はいはいはい。
まあそれをインストールしてですね。でまあUNIXを使い始めて。でそうするとそこの上のプログラミング環境というのは無料でもらえるので。
はいはいはい。
でそこでプログラミングをして。でオライリーの本とかを読んで。まあそういう風にしてると仕事は割といくらでもあるんですよね。
はいはいはい。
なのでまあそこら辺の境界すらちょっと曖昧っていうか単にいつの間にか使えるスキルが身についていたみたいなもので。
はいはいはい。
僕はもう今や仕事して長いので。
はい。
感覚も分かりますけどオライリーの本とかたくさん読んでる人ってあんまりいないんですよね。
はいはいはいはい。
なので趣味で読んでるやつっていうのは強いんですよ。
はいはいはいはい。
なんか例えばオライリーのDNS&BINDっていう本。なんかDNSとBINDのすごい分厚い本を何回も読書として読んだりとかして。
うんうんうん。
でいまだにほとんど役に立ってないんですけどDNSとかについては異様に詳しいんですよ。
はいはいはい。
なんでかというとオライリーの本を何週もしてるので。
はい。
なのである意味ネットワークそこら辺のネットワークエンジニアより全然詳しいみたいな。
はいはいはいはい。
なのでまあそういう人にとっては仕事と趣味の何か境目っていうのは結構曖昧というかどっち。趣味でやってるつもりでもすごい役に立ってるっていうのは。
そうなんですね。なんかもともと最初のファーストキャリアからソフトウェアエンジニアだったんですかね。
まあ大体そうですね。
うんうんうん。
そうなんですね。
うんうんうん。
そこに入ってそこで学んでその進路としてソフトウェアエンジニアになったっていうよりもこう趣味の流れの延長線上でこうエンジニアになっていったみたいなそんな感じなんですかね。
そうですね。しかも多分その当時の人たちは割とそういうパターンが多くて。
そうなんですね。
まあみんながっていうわけじゃないかもしれないですけど。
はい。
ちょっと後の世代になってくると普通にコンピュータサイエンスを大学で勉強してとかいう人がどんどん増えてると思いますけど。
そうですね。いわゆる情報履行みたいな。
そうですね。
はい。
はいはいはい。
で今や割といろんな会社で出世しちゃってるみたいなそういうノリのところがあると思うんですよね。
はいはいはいはい。
なのでまあ面白いですよね。
はいはいはいはい。
じゃあこうなんか先に理論みたいなこうそういう理論体系みたいなのが完成してから。
はいはいはいはい。
こう学んでいるタイプの今の世代の人たちとそもそもそこを作り上げていきながら自分たちもこう勉強していた世代がいらっしゃるみたいなそんな感じなんですかねイメージ。
うーんまあコンピューター使った仕事プログラミングというのがいい仕事だと思われてなかったような時代にやってた人と今の時代にやってる人というのはまあ違うかもしれないですね。
あーなるほど。なんか当時の仕事ってどういう感じだったんですかそのエンジニアとしての。
仕事としては別にねあんまり変わりはなかったと思うんですよね。
そうなんですね。
うーんただスケールがもっと小さいですけどコンピューター使ってる人が数百万人というのと今だったら1億人使ってるわけですね。
はいはいはいはいはい。
まあ全然リーチが違いますけど。
うんうんうん。
ただまあ仕事としては似たようなものだったと思うんですね。例えばウェブサーバーを立ち上げてなんかをやるってなったらまだアパッチを立ち上げて。
はいはいはいはいはい。
まあ今だとクラウドなんでそこら辺が違うかもしれないですけど。
そうですねうんうんうん。
そんなには変わりはないかもしれないですね。
えー。
じゃあ本当に当時からいわゆるまあ今のなんていうんですかねこうまあちょっと前の表現で言うとランプ環境というかなんか本当にウェブサーバーがあってアプリケーションサーバーがあってでその上であのhtmlをこう配信していってみたいな。
だからそういう結構オーソドックスな形の今の方とあんまりこう変わらないようなところをやってらっしゃったって感じなんですかね。
ウェブアプリケーションに関してはそうですね。
はいはいはいはい。
データベースがあってまあアパッチなり何なりが動いていて。
はいはいはいはい。
まあそれよりもうちょっと前になると。
はい。
なんかパールでcgiとかの世界になってきて。
はいはいはいはい。
かなり古くなってきちゃいますけど。
そうですね。もう体験したことない世界ですねそこに来ると。
僕もパールでcgiっていうのは書いたことあるかなレベルですけど。
はいはいはいそうなんですね。
うーんあるかもしれないですけど。
はいはいはいはい。
なんか本当にさっきのお話にもありましたけど結構今っていわゆるクラウド環境とかもできているしやっぱその保守をしていくとか運用していくところもかなりいろいろプラクティスが出てきていて。
はいはいはいはい。
いろんなサービスが出てきて結構そこら辺も楽になってきているのが今だと思うんですけど。
なんか当時多分そういうそもそもエンジニアリングをするためのツールみたいなのもなんか少なかったのかなって気がしてて。
例えばエディター一つ取っても結構今だったらいろいろ充実してたりすると思うんですけど。
なんか当時ってなんかどういう感じで開発してたのかなとかなんかトラブルとかってなんかどういうトラブル起こってたのかなみたいなところも気になります。
まあそういうのってあんまり今と変わらないかもしれないですけどね。
そこも変わらないんですね。
ただまあ今の人たちのモダンな開発環境っていったら例えばVSコードを使ってとかいうとVSコードみたいなやつは当然ないわけで。
あとはまあクラウドがないのでなのでなんかインスタンスをちょびっと立ち上げてみたいなのではなくて。
はいはいはい。
本物のハードウェアを用意してそこにCD-ROMでOSをインストールしてトラブルがあったらデータセンターに行ってみたいな。
はいはいはいはい。
ところがいろいろめんどくさいですけど。
はい。
また一方でその。
うん。
クラウドを任せではわからないことを学べるというのはいいといえばいいですけどね。
はいはいはい。
そこら辺がめんどくさいといえばめんどくさいんですけど。
例えばメールがどういう仕組みで届いてるのかみたいなとこが全く気にしなくてもいいのと、ま、全く気にしないほうが良くていいんだったらそれが一番いいですけどね。
はいはいはい。
でまあこれなかなか面白いじゃないかと思って
うんうんうん
でそれでまあ正規の学生としてアプライして
うんうんうん
見たっていう感じですね
へーあお試し入学みたいのがあるんですね
そうですね入学じゃないんですけど
うん
履修生っていう扱いですね
はいはいはい
成績もつくし
うん
その授業も普通に受けるんだけど
うん
学位になるわけではないと
はいはいはいはい
で大学としてはまあなんかそれで
普通に履修生としての
うんうんうん
学費をもらうので儲かるし
はいはいはい
まあなんかそういうのが
うんうんうん
あるんですよね
はいはいはいはいはい
あのお試し入学というかその履修をしている時って
お仕事もやりながら
やってたんですか
そうですもう入学した後もずっと仕事をやりながらやっていたので
へーはいはいはいはい
そのスタンフォードに行った時はもうすでに海外で直接リアルで授業を受けてたって感じですか
えーとその時にはグーグルで仕事をしていて
はいはいはいはい
でスタンフォード大学自体は車で20分ぐらいの距離なんですよね
はいはいはい
なんですけど道路が渋滞するので
はい
下手すると1時間ぐらいとかかって
はい
なのでまあ大体はですね
授業はすべてオンラインで録画されていて
あそうなんですね
それを見るみたいな
はいはいはい
テストは受けに行くみたいな感じでやっていて
へー
まあそういう意味では
うん
あんまりライブ感はちょっとなかったですけどね
そうなんですね
やろうと思えば日本からもこう入学して授業受けたりできるんですかねそれって
多分できないことはないと思いますね
あそうなんですね
どれぐらい可能なのかわからないですけどローカルの人しかダメっていうわけじゃなくて
はい
ローカルの人だと
逆にテストは受けに行かないといけないんですよね
はいはいはいはい
っていう縛りがあるぐらいで
はい
多く離れててもできるとできないわけじゃないと思います
やってる人いるはずです
へーあそうなんですね
あとはリモートでも取れる学位とかスタンフォードだけじゃなくて
いろんな大学がアメリカではやっていて
例えば有名なところだとジョージアテックとか
はい
他にもいろいろあるんですよね
でそういうの学費とかも結構安かったりするところもあるので
うんうんうん
正規の学位がもらえるので
例えばその後アメリカに就職するとかになるとかなり有利になるはずらしい
まあ結構悪くはないと思うんですよね
へーあそうなんですね
確かにそれはこうなんだろうな
まあこう社会人こうやりながらこう仕事をしながら
こう勉強してる方も多分今日本にもいっぱいいらっしゃると思いますし
なんかその海外留学とか海外のところで勉強したいなって思ってるけど
やっぱいろんな事情でいけないみたいな方もいらっしゃる気がするので
なんか今僕も聞いててちょっと興味を持ちました
そうですねオンラインで検索してみるとそういうのをやってる人たちが結構見つかると思うので
はいはいはい
なのでいろいろ情報はあると思います
へーそうなんですね
ただ僕のおすすめはできるんだったら時間とお金が許すのであれば
普通にそのオフライン学生として通う方がいいと思いますけどね
僕も今から考えるとそうすればよかったなと思って
そうなんですね
つまり会社を辞めて1年半とか2年ぐらい卒業できるので
うんうんうん
復習してやってそれで卒業したらもう1回単に就職すればよかったと思うんですよね
なんとなく仕事を辞めるのを辞めずにやってしまったのは
はい
長期雇用マインドがまだできてなかったがゆえの失敗かなと思って
はいはいはいはい
へーまあでも確かにそうですねやっぱりこうどうせ学ぶなら
まあしっかり学ぶみたいな選択肢もありますよね
あとは学生寮とかに入ったりすると
はい
そこの学生寮でいろんなコミュニケーションが
はいはいはい
やっぱりそういうのは全然違うと思いますね
あーなるほど
なんか実際こうスタンフォードでこう勉強してみて
日本とこうなんだろう学ぶ内容の差とか
学生の雰囲気とかってなんかやっぱ差ってありました
うーん学ぶ内容の差というのは実そんなにないんじゃないかと思うんですけど
そうなんですね
学生でいうとまあいろんな国から来てるというのは違いますよね
はいはいはいはい
50カ国以上から来てると確か学長が入学の時に来てたと思うので
かなりすごいですね確かにそれは
で男女比とかも64で男の人が6割女の人が4割ぐらいみたいなので
まあダイバーシティとかもいろいろ考えながら取ってるっていうのがあるんでしょうけど
まあそれも半々を目指してるみたいなことを言っていた
はいはいはい
あとはスタンフォードの教授まあ西海岸だからっていうのがあるんでしょうけど
スタンフォードの教授たちはみんなビジネスもできるっていうのを自慢してるっぽくって
へー
その入学の時にですね学長
うんうんうん
コンピューターサイエンスの学長が我々は常にビジネスプランを後ろのジーパンのポケットに入れてるんだみたいなことを言って
はいはいはいはい
まあそれは比喩でしょうけど
はい
ただアカデミアだからビジネスのことはわからないみたいなのは全く逆というか
そうですね
それで実際教授がですね
うん
ビジネスで大成功した後に教授になってる人とか結構いて
うん
何千億円持ってるみたいなっぽい人が
はいはいはい
いたりとかするんです
へー
へー面白いですね
ビジネスに転身する人も結構多くて
はいはいはい
教授からってことですか
教授から
へー
会社を作っちゃう人も結構多いですし
うんうん
例えば僕は最後の方に受けたネットワークの授業の教授は
はい
授業が終わった何クォーターか後にインテルに転職していて
へー
でインテルの副社長になっていて
はい
SVPになっていて
すごいですねそんなキャリアの転身があるんです
そういう感じなんだと思って
すごいなと思いました
はいはいはい
確か日本とはそこら辺の雰囲気が全然違いそうですね
やっぱなんか日本のこう大学とか
まあいわゆるこうアカデミックなところって
なんかそこからこうビジネスにつなげていくぞみたいな雰囲気ってあんまりないというか
だからこう大学で学生はこう勉強して論文書いて
で終わったらそっからこう就職して
そこでまたこうゼロからエンジニアとしてのキャリア積んでいくみたいな
なんかそういうイメージがあるんで
そうですね
スタンフォードなんかはコンピューターサイエンスは
就職予備校みたいなマインドだと思いますね
基本的には普通に就職に役に立つからみんな来ていて
すごいお金もたくさん払っているので
元を取る気持ちもみんな満々だし
はいはいはい確かにそこは日本と結構違いそうです
授業とかでも単位がもらえない授業だか