コミュニティに戻る

量子の探求

量子コンピューティングについて、表面的な知識だけでなくもっと深く話したことはありますか? イーサンとのこの対話は、ほとんどの人が知らない世界へ深く分け入るものになりました。ぜひ読んでみてください!

Youtubeで見る
長さ 01時間 12分

Jonathan:では、おはようございます。少なくとも私にとっては朝です。Jonathanです。Exercismのポッドキャストで、Ethan Hansenさんとご一緒しています。Ethanさん、お越しいただけて本当に嬉しいです。今、世界でもかなり違う場所、まったく違うタイムゾーンにいらっしゃいますね。私にとっては朝で、Ethanさんにとっては夜ですね。ご自身のことを少し話していただけませんか?今どこにいるのか、何をしているのか。今の状況を簡単に紹介してください。 Ethan:はい、Jonathanさん、ありがとうございます。ここに来られて嬉しいです。Jonathanさんはすごく早起きで、僕は少し夜更かしになりましたが、こうして話せてよかったです。ええ、僕はオレゴンにいます。そう、西海岸です。僕が育った小さな町です。それで、今は大学、学校が休みです。そして僕はオレゴンにいます。西海岸にいます。オレゴンにいます。西海岸にいます。オレゴンにいます。西海岸にいます。…もし僕がどうやってここに来たのか知りたければ、それは楽しい話なので喜んで話します。簡単な自己紹介だけでよければ… Jonathan:なるほど、いいですね。それでオレゴン、訪れてみたいです。たしか、そこが本拠地なのでは?ポートランドでしたっけ?シアトルはワシントン州ですよね、間違っていなければ。つまりお隣さん同士ですね。ええ。この二つの都市にはちょっとしたライバル心があるのでしょう。すぐにそこへ踏み込む必要はありませんが。でも、どうして休暇中なんですか?みんな学校や仕事に戻っていると思っていました。何が起きているんですか?学期の時期とか、そういう巡り合わせなだけですか? Ethan:はい、実はほかの大学にいる知り合いの多くはもう戻っていて、いつもの調子でやっています。でも僕の大学はまだ始まっていません。ケース・ウェスタン・リザーブ大学です。僕が通っているのはそこです。あと4日ほどで始まります。 Jonathan:なるほど。それでEthanさん、そこではどれくらい勉強しているんですか?今、勉強の旅の中でどのあたりにいますか? Ethan:はい、今は2年生です。ただ、実はギャップイヤーを取ったので、本来は3年生のはずだと言っています。大学を始める前に、パンデミックの間にギャップイヤーを取りました。これは人生で最高の選択の一つだったかもしれないと思っています。Zoomでの学校を避けられましたし、量子コンピューティングに関わる仕事をしている素晴らしい会社で働けました。それ自体が一つの物語です。 Jonathan:わあ。ということは、2020年の初めに学校にいたということですね?最後の年、最終学年ですね。パンデミックが来て。突然、ええと、ギャップに入って一学期くらいでしたか?それとも大学1年目を始めていたんですか?それで「もう抜ける」と思ったんですか?どんな感じだったんですか、詳しく教えてください。 Ethan:そうですね。はい、高校、つまり海の向こうの皆さんにとっての中等学校を卒業しました。それが2020年5月ごろでした。まさに真っただ中でした。その時にこの量子コンピューティング企業でのインターンを始めました。しばらくやっていて、本当に楽しんでいました。でも、パンデミックなどで状況は良くなるどころか悪化していきました。それで、うーん、高校の終わりに1、2か月だけ味わったZoomでの学校をもっとやりたいのか?と考えました。やらないことにしました。それで、この会社でマーケティングの仕事をしました。それは自然に出てきたもので…実は量子コンピューティングについての自分のポッドキャストがあります。聞きたい人は、Quantum Computing Nowです。大学で研究をしているのでしばらく投稿していませんが、そのポッドキャストは素晴らしい経験でしたし、この会社での仕事も素晴らしいです。人と話し、複雑な科学やエンジニアリング、技術的な課題を、ビジネス層や一般の聴衆によりよく説明する最善の方法を考えるのは、本当に本当に面白いです。 Jonathan:オーケー。戻ってきましたね。おかえりなさい。中断、インターネット障害の中断でした。Ethanさん、かわいそうに、話の途中で私の側ですべてが固まってしまいましたね。何とか続きから再開しましょう。編集でうまくつなぎ合わせますから、誰にもわかりません。誰も気づきませんから。 Ethan:後で編集の参考に。すべてが落ちた数秒後に、実は手を叩きました。音声にそのスパイクがあるので、その箇所を見つけやすくなるはずです。 Jonathan:いいですね。あの、いわゆる監督用のクリップ、カチンと鳴るやつ、ありますよね…ええ、クラッパーですね。実はあれはExercismのグッズストアに必要なものかもしれないと思います。小さな…ええ。 Ethan:ええ、クラッパーですね。少しだけ。ええ。 Jonathan:でも、すみません、少し巻き戻しましょう。技術的な問題の前に。それで今、会社でインターンを始めたと言いましたね。それで、どうやって…でもその時点まで勉強していたと。卒業して、それからインターンになった。それは夏休みの仕事だったんですか?ただ時間を埋めるために何か必要なだけだったんですか?どんな経緯だったんですか? Ethan:はい、最初はただの夏の仕事として始まりましたが、その後、完全なギャップイヤーに延ばしました。でも、時間を埋めるためではなかったです。量子コンピューティングにとても興味があります。魅力的だと思います。多くのことを変える可能性を秘めています。ただ、今の時点では少し競争のようなものだと思います。どちらが勝つのか、量子コンピューティングが先に多くのことを変えるのか、それともChat GPTなどから出てくるクレイジーなものを持つAIなのか、よくわかりません。すごいです。でも、ええ。あなたはそういうものをどれくらい見ていますか?技術にかなり詳しい人たちと話しましたが、「Chat GPTは聞いたことがない。教えて」という人もいました。 Jonathan:ええ、実は、たぶん大した話ではないのですが、ここでその威力に気づいたんです。ぽんと出てきて、私は「はいはい、何かの、ブロックチェーンみたいなものか、みんなが思うような、ただの一時的な流行かな」と思っていました。でも、妻は英語を話しますが、スイス人なので英語が母語ではありません。小さな子供向けのビジネスをしていて、マーケティング、特にInstagramの投稿やニュースレターなどをたくさんしなければなりません。彼女自身の小さな事業なので。それで先日メッセージが来て、「ねえ、マーケティング資料、ニュースレターか、Instagramの投稿の説明文を手伝ってくれない?」と。正直、マーケティングや宣伝文句を書くのはとても嫌いです。脳の一部を使うので…まあいいや。それで「Chat GPTをマーケティングに使えると聞いたから、試してみよう」と。すごく懐疑的で「これはひどいものになるだろう」と思っていました。でも、一緒にやってみて、彼女がそこに座っていて、小さな宣伝文を打ち込んで、かなり具体的な指示を与えたら、出てきたものに「これはすごい」と。英語が母語でない妻が宣伝文を出せて、しかも3時間もかからないなんて、衝撃でした。私は学校で英文学をやっていたので、英語はよくわかり、うまく書くことも、つなげることもできます。それに度肝を抜かれました。今では彼女は宣伝資料はすべてChat GPTです。私は「機械を育てているだけだ」と。まったくです。恐ろしい、本当に恐ろしい。すみません、少し脱線しましたが、それは私のせいです。 Ethan:いいえ、いいえ。ええ。すべて僕のせいです。でも、そうですね、なんだか逆方向に進んでいる気がします。今の状況、去年何をしていたかから始めました。でもよければ、最初から全部の話をしましょうか。 Jonathan:お願いします。話は大歓迎です。話はいいですね。 Ethan:わかりました。それでは。ええ、僕はオレゴンの小さな町で生まれ育ちました。同じ小さな町ではありませんが、大学に行くまで、人口2,000人を超える町に住んだことがありません。それって…え?2,000人?ええ。すごく小さいです。ええ。「小さな町」と言うと、みんな「ああ、2、3万人くらい?」と言います。僕は「いやいや、一番近い2、3万人の町は車で20分かかる」と。ええ。わあ。ええ、でも大好きです。いつも農場を走り回って、何かを植えたり、ヤギの世話をしたり、木を切ったり、そういうことをしていました。でも大きくなるにつれて、いじくり回すのが本当に好きだと気づきました。それでいろいろ始めました。素晴らしい友人がいます。年上の家族の友人で、本職は優秀な機械エンジニアですが、電子工学について知り得るすべてを知っています。ラジコンカーをやっていて、週末に自分のラジコン飛行機を趣味で作ったりしています。キットからではなく、自分で設計図を描いて、熱線で発泡スチロールを切って。とにかく本当に素晴らしい人です。その人がいくつか手伝ってくれて、いじくり回すことを学びました。そして、手を使っていじくり回すのはとても遅いと気づきました。できれば一発で正しくやりたい、壊してしまったら動かなくなるので。でも、最初はなんとなくわかっていて、完全にはつかめていませんでした。それで、6歳の頃から、すべての6歳児がなりたいもの、つまりもちろん航空宇宙エンジニアになりたかったんです。飛行機です。ええ。みんな「宇宙飛行士になりたいの?」と言います。僕は「いやいや、航空宇宙エンジニアと言ったんだ」と。みんな「この子は誰だ、なぜ航空宇宙エンジニアを知っているんだ?」と。ええ。素晴らしい。そこからは下り坂でした。でも、そう、6歳でピークでした。ええ、学校を通り抜けて、航空宇宙エンジニアになりたくて、数学と科学を本当に一生懸命勉強しました。高校に入って、実際のエンジニアリングプログラムを始めました。私の高校はかなりクールで、いくつかのトラックがありました。それでエンジニアリング、エンジニアリングと航空宇宙科学のトラックをやりました。「これがやりたいことだ」と。でも始めてみると、ただ書類仕事が多いだけだとわかりました。「これはやりたいことじゃない」と。まあ、理にかなっています。すべてをきちんと文書化しておきたいし、何かミスすると、ロケットが爆発して6人が死ぬわけですから。ええ。 Jonathan:ハイリスクで、失敗が許されないタイプですね。 Ethan:まったくです。同じ頃、コードをいじり始めました。エンジニアにとって役立つからという理由もあり、「これを学びたい」と。あと、すべての中学生がやりたいこと、自分のビデオゲームを作りたいという理由も。それで「待てよ。いじくり回すのは好きだ。ロケットが爆発しないようにするプレッシャーは嫌いだ。コーディングは好きで、いじくり回すのに似ているけど、もっと速くできる。ミスしても、どこかのサーバーが落ちるだけで、誰も死なない」と。 Jonathan:誰も死なない。ええ。潜水艦のソフトウェアとか… Ethan:そう、ええ。それで「これはいい。もっとやりたい」と。それで高校でIBMのインターンを探してやりました。ソフトウェアのようなことをしました。素晴らしかった。人生で最高の夏の一つでした。冗談で言うのですが、そのインターンで学んだ最大のことの一つは、仕事で1時間の通勤はしたくないということです。最悪でしたから。でもそれ以外はすべて素晴らしかった。それは3年生と4年生の間の夏でした。それで学校を終えて、パンデミックが来ました。実は少し戻ります。IBMで、いくつかのプロジェクトを前倒しで終わらせました。それでインターンのメンターが「IBMの誰かに連絡して、『私はインターンです。あなたのやっていることを教えてください』と言ってみたら」と。それで名簿を見て、「あ、量子コンピューティングだ。なんとなく知っている。面白そうだ」と。IBMの人たちと話しました。量子コンピューティングについて何も知らない高校生に30分も話してくれるほど親切でした。面白そうでした。ええ。それで「これは本当に面白そうだ。みんなすごくワクワクしている。これは僕が大好きな三つのことの交差点だ」と。数学、物理、コンピュータサイエンス。素晴らしい。 Jonathan:とにかく。 Ethan:それでもっと調べ始めました。ポッドキャストが大好きで、中毒のようにたくさん聞いています。量子コンピューティングの良いものがありませんでした。それで「自分でできる。人と話せる。ポッドキャストを運営できる。そんなに難しくないだろう」と。それでポッドキャストを始めて、たくさんの人と話しました。それから高校3年の終わりごろ、ニューヨークである別の会社のインターンが決まっていましたが、物理的な量子コンピューティングの仕事で、現地に行く必要がありました。でもパンデミックが来て、世界のどこかが閉鎖されるとしたらニューヨーク市です。それは無理でした。 Jonathan:ピエロよりも早く閉まりますよね。 Ethan:まったくです。それで「しまった、どうしよう」と。そしたらよくある定型メールが来ました。「Ethan Hansenさん、あなたのポッドキャストを見ました。私の会社のCEOをあなたのポッドキャストに出したい」と。「はいはい、わかりました、やりましょう。以前もやったことがあります」と。でもその人へのメールの一つで、「追伸として、もしかしたら」と思って。「追伸、この夏インターンを探しています。あなたの会社はそういうことをしていますか?」と書きました。返信してきたのは、後に僕の上司になったCatherineでした。「電話しましょう」と。そして「いつから始められますか?」と。「え、この打ち合わせでインターンのオファーが来るとは思っていませんでしたが、受けます」と。それでパンデミックが続きました。「Zoomでの学校は本当に嫌だ」と。それでギャップイヤーを延ばして、この会社で働きました。素晴らしかった。たくさん学びました。ギャップイヤーが終わり、学校に戻り、ケース・ウェスタンでコンピュータサイエンスを学び始めました。うまくいっています。ちょうど3学期を終えて、4学期を始めるところです。それで今に至ります。実はこの前の学期、ケース・ウェスタンの量子コンピューティングのグループで研究をしていました。もうすぐ結果を発表できると思います。素晴らしい。でも本当に信じられないような学習経験でした。まだ学んでいます。知らないこともたくさんありますが、この年齢にしては多くの経験をしてきたと思います。 Jonathan:わあ、つまり、量子コンピューティングという言葉が実際に何を意味するのか、それ以上に知っている人と話したことがありません。私の非常に限られた非技術的な背景と経験からすると、それはまるでステロイドを使ったコンピューティングのように聞こえます。それが私の印象です。でも、そこに飛び込んで、少し説明してもらえますか?現実世界につなげてみてください。私にとって量子コンピューティングはいつも、国防総省、スパイ、秘密、発射、そういうものを連想させます。神秘性があります。それでは、少し打ち解けて、それが何を意味するのかを分解してみましょう。多くの人にとって本当に興味深いものになると思います。 Ethan:ええ、ええ、もちろんです。その通りです。自分のポッドキャストでよく話す大きなことの一つで、業界の多くの人が話すのは、量子のハイプです。ハイプサイクルのどこにいるのかわかりませんが、ピークに近いと思います。たくさんのハイプがあります。でも、量子コンピューティングについて私が聞いた中で最高の非技術的な説明は、John Skerrittという人のものです。ポッドキャストに招いた人で、Microsoftにいます。幅広い聴衆にこれを伝えるのがとても上手です。彼が挙げた例は、通常のコンピューターでは、Exercismを十分に長くやってきたJonathanさんならご存じでしょうが、通常のコンピューターは1と0、つまりビットで動きます。オンかオフか、それだけです。 Jonathan:最低レベルでは。最低レベルでは、そういうものを扱っているわけですね。 Ethan:ええ、その通りです。そこからすべての複雑なものを構築できます。でも最低レベルでは1か0で、照明のスイッチのように考えられます。オンかオフか、他の選択肢はありません。量子コンピューティングは、計算できるまったく別の領域を開きます。照明のスイッチではなく、Philips Hueの電球のようなものです。調光器のように、明るくも暗くも、1と0の間にもなれますし、さらに1か0という概念しかなければ意味をなさない奇妙なもの、たとえばさまざまな色にもなれます。すべてが白と黒なら、使える色がありませんからね。それで、望めば、通常の電球のように使うこともできます。でもあまり楽しくありません。部屋でクレイジーな色を得ることはできません。でも望めばオンとオフだけにすることもできます。それは選択肢です。つまり、量子コンピューターは古典的なコンピューターができることはすべてできて、さらに少し多くできます。「ステロイドを使ったコンピューティング」という印象は少しずれていると思います。1と0のモデルで言えば、ただ明るい電球にするようなもので、まったく新しいやり方で、古い枠組みでは意味をなさないことをしています。それにより、ある計算を他の計算より速く、効率的に行えます。あるアルゴリズムは古典的な方法が最善で、量子コンピューターで走らせる意味がありません。実はこれについて記事を書きました。名作ゲームのDoomを知っていますか? Jonathan:ええ、ええ、子供の頃の定番でした。 Ethan:ええ、ええ。最近では、考えられるあらゆるものでDoomを動かそうとします。冗談で「それはクールな技術だが、Doomは動くのか?」という感じです。Samsungのスマート冷蔵庫で動かした人もいます。Kindleでも、Kindle Fireではなく白黒の。 Jonathan:ごく基本の、ええ、Kindleですね。 Ethan:ええ、そう。それで、もし量子コンピューターが本当にパワーアップした通常のコンピューターなら、スマート冷蔵庫でDoomが動くのだから、量子コンピューターでも動くと思うでしょう。でも今のところ、量子コンピューターでDoomは動きません。理由は… Jonathan:話が通じない、パラダイムが違いすぎる、という見方で合っていますか? Ethan:いいえ、理由は量子コンピューターが小さすぎるからです。Samsungのスマート冷蔵庫の中にもそれほど多くのビットはありませんが、量子コンピューターの中身よりはるかに桁違いに大きいです。IBMがちょうど433量子ビットのマシンを発表しました。433,000ではなく、433です。これに対して、今この通話に使っているノートパソコンには、数十億のトランジスタのビットがあります。根本的な違いというわけではありませんが、桁の違いです。さらに、量子コンピューターでDoomを動かすのは意味がありません。利点がありません。計算をターボブーストできる特定のものはありますが、それ以外は量子コンピューターで動かす意味がありません。 Jonathan:オーケー、わあ。これについて多くの質問があります。量子コンピューティングには、その電球の調光器的な雰囲気を語る別のプログラミング言語があるのですか? Ethan:ええ、もちろんです。本当に良い質問です。まったく新しい言語を作る道を選んだ人もいます。代表的な例は、CsharpのようなQsharpで、Microsoftが開発しました。それからSilkは、たしかETH Zurichの研究グループが開発した実験的なプログラミング言語です。量子コンピューティングの領域でクールなことをしていますが、退屈させたくないので詳しくは話しません。そういう二つの言語がありますが、多くの人がやるのは、標準的なプログラミング言語の中に書かれたパッケージで量子コンピューターと対話する方法です。よくある例は、IBMのQiskit、GoogleのCirqueです。どちらもPythonで書かれています。Juliaを使いたければ、yow.jlというのがあり、どの企業にも属さず、Juliaで動きます。 Jonathan:オーケー、それでEthanさん、量子コンピューティングの実用的な現実世界の応用ですが、AIと量子コンピューティングのどちらかで揺れていると言いましたね。なぜそう思うのですか?これらの異なる側面、パラダイムについて、未来の地平に何を見ていますか? Ethan:ええ、ええ、良い質問です。量子コンピューティングは、古典的にはできないことに対して、長期的に非常に強力な可能性を秘めています。たとえば、量子力学の効果を持つものをモデル化したいとき、最良の方法の一つは量子コンピューターをシミュレーターとして設定することです。量子コンピューターなので、量子の効果がもともと備わっています。同時に、GoogleのAlpha Foldのようなもので信じられない進歩が見られます。RNAからタンパク質の3D構造を正しく予測できます。タンパク質が十分小さければ量子効果が関わりますが、機械学習と大量のデータでそれをやってのけます。どちらが勝つかという競争のようなものです。量子コンピューターはどんどん大きくなっています。IBMが433量子ビットのマシンを発表したと言いました。昨年、誰もが達成した最大数は127でした。どんどん大きくなり、その速度も上がっています。それでも、Googleが大量の計算とディープラーニングで行っているのと同じ計算をするには、まだほど遠いです。 Jonathan:わあ、なんだか、間違っていたら訂正してください。月に人類を着陸させたプログラムは、恐ろしいほど、いや、言い方が難しいですが、今のノートパソコンに慣れているものに比べると小さかった。キロバイト単位でした。それで量子コンピューティングも同じような段階なのでしょうか?その計算能力を、地球上のすべての人が個人として使えるようにするには、まだ技術が十分に進んでいないということですか? Ethan:ええ、ええ、そう思います。量子コンピューティングは決して普及しないと言う人もいます。何らかの理由で、ある量を超える量子コンピューターは作れないという根本的な障害があり、十分に有用なアルゴリズムも見つからないと考えるのです。私は非常に優秀な人たちとポッドキャストでこれについて話しましたが、彼らから聞いたのは、基本的に、宇宙の根本法則がこれをスケールできないと言うなら、その立証責任はそう主張する側にあるということです。ほとんどの人はエンジニアリングの課題と見ています。テックスタックを構築して、環境から十分に遮断された量子ビットを実際に使えるようにし、十分長く保持できるようにする必要があります。家に量子コンピューターを持つことは決してない。常にどこかのデータセンターにあり、大量の計算を必要とするものを解決する、という中間派もいます。クエリを送ると、古典的な場合より速く答えが返ってきますが、家に持つことはありません。それが最も可能性が高いと思います。量子コンピューターはとても壊れやすいのです。周りの世界はほとんどが古典力学です。何かを量子の領域、量子効果を持てる適切な条件に保つには、本当に厳密に制御する必要があります。家で幼児が走り回り、犬が吠え、猫がすべての上を走り回る環境では…古代メソポタミアの粘土板に猫の足跡がついている時代から、猫はすべての上を走ってきました。だから家の中で実用的になるとは思えません。でも可能性はあります。間違っていると証明されるかもしれません。 Jonathan:では量子コンピューターは、温度管理された、室内に温度差や静電気がない、騒音がない環境が必要なのですか?壊れやすいと言いましたが、なぜですか?なぜ量子コンピューターは壊れやすいのですか? Ethan:ええ、ええ、良い質問です。壊れやすいのは、よく制御された量子ビットを持つには、環境から遮断する必要があるからです。その通りで、今日のほとんどの量子コンピューターは非常に冷たくする必要があります。希釈冷凍機というものを使い、絶対零度に非常に近い温度まで下げます。そうする必要がないものもあります。量子コンピューティングのモデルにもいくつか種類があります。これも大きな違いです。かつて標準的な古典的コンピューティングでは、一度に一つの主要な計算方式しかありませんでした。真空管があり、トランジスタが登場して明らかに優れていて、それを使い、今も使っています。量子コンピューティングでは、少なくとも10種類の方式があり、すべてを暗記して言えるわけではありませんが、トラップイオン、フォトニクス、超伝導などがあります。シリコンスピン量子ビットを検討する人もいます。主なものはその四つですが、他にもたくさんあり、最終的にどれが勝つかは誰にもわかりません。ほとんどは、シリコンスピン量子ビット、超伝導は非常に冷たくする必要があると思います。トラップイオンは冷たいです。イオン自体が非常に冷たく、装置は冷たくする必要はありませんが、レーザーで完璧に保持されているため非常に冷たいです。すごいでしょう? Jonathan:ええ、ええ。わあ。テラバイト、ギガバイトのドライブ、SSDとはまったく別物ですね。別の技術の領域と言えるでしょう。わあ。確かに。それで、疑問が湧きます。 Ethan:また今度。ええ。 Jonathan:量子コンピューティングのインターンをしたんですよね?高校のあと、量子コンピューティングを専門とする会社で働いた。多くの人は逆で、コンピュータサイエンスの学位を取り、それを極めてから「私はプロだ、雇ってくれ」と出てくる。でもあなたは逆を行った。会社のインターンから勉強に戻るのはどんな感じでしたか?普通のコンピュータサイエンスに戻ったと言っていいのですか?コインの片側を見て、まったく別の側を見た。学習のその移行はどんなものでしたか? Ethan:ええ、違いました。間違いなく興味深かった。その通りです。古典的なコンピューティングを学んでいます…コインの表裏というほどではないかもしれません。あるいはそうかもしれません。結局同じコインだというのが、このたとえの大きなポイントかもしれません。一方で、本格的に取り組むと、古典的コンピューティングで知っていることと量子コンピューティングで知っていることには根本的な違いがあります。でも結局、アルゴリズム解析、良いコーディング習慣、チームで協力する方法の理解といった基本は同じです。これらはすべて似ています。理論の部分では、1学期目の授業のごく基本はアルゴリズムとデータ構造でした。どんなアーキテクチャを使っていても、価値のあるものを書くには基本的なデータ構造とアルゴリズムを知る必要があります。でも本格的に飛び込むと、大学ではまだやっていませんが、少し違ってくるでしょう。同じコインの両面を見始めるわけです。今はコインを全体として見ています。 Jonathan:ええ、なるほど。まだ完全に掘り下げてはいないのですね。それと、もっと前に聞こうと思っていたのですが。農場で、田舎で、屋外で、手を使う環境で育ったと言いましたね。今はおそらくかなりの時間を画面の前で過ごしています。コンピューターがより中心的な存在になっています。どうやってコンピューターの世界から離れて、より物理的な世界とつながり直すのですか?それは必要ですか?気にしませんか?特に出身を考えると、どうですか? Ethan:ええ、それは間違いなく必要です。時には混ざることもあります。好きなことの一つは、ノートパソコンをポーチに持って行き、日没を見ながら作業することです。天気が良ければですが。オレゴンではよく雨が降ります。ええ、好きなことのいくつかは、特にオレゴンでは、来る予定なら、コロンビアリバーゴージュエリアで少なくとも一度はハイキングをすべきです。本当に美しい。ハイキングは大好きで、自然とつながり直す良い方法です。それは大切です。ある会社で働いていた人と話しましたが、「誰もが、デスクで画面を見つめる仕事とはまったく無関係なことを持つべきだ」と言っていました。その人にとっては自転車に乗ることで、私も好きです。そういうのはとても大切だと思います。ハイキング、サイクリング、良いですね。 Jonathan:それでEthanさん、兄弟はいますか?家族構成は?いわゆる長子ですか? Ethan:ええ、私は一番上の兄弟です。二人の下の兄弟はまったく違い、技術にまったく興味がありません。一人は俳優として舞台をやりたく、もう一人は舞台の照明をやりたいそうです。だから一番上ですが、家族の中では少し外れ者です。 Jonathan:もっと創造的な感じですか?家族の中で、どう説明すればいいか。外れ者と言いましたね。つまり、コンピュータサイエンスや技術はそれほど身近ではなかったということですか?どうやって…明らかに数学と物理、物理的な工作、物を作りたいという自然な流れがありました。でも、あなたがやっていたことがより技術的な領域に合っていると両親が気づかせてくれたのは、かなりクールです。それも珍しい。どう展開したのですか?両親の励ましだけでしたか? Ethan:ええ。それはどう展開したのですか? Jonathan:どう展開したのですか? Ethan:ええ、外れ者というよりは、仲間外れというより、一人だけ違うという意味です。その通りです。家族のほかのみんなはもう少し創造的で、論理的ではないかもしれません。私は1と0で考えることが多いので、コンピュータサイエンスは自然に来ました。でも、私の育ちの素晴らしい点の一つは、祖父母の一方が長いこと教師だったことです。学ぶことを本当に励ましてくれました。私が赤ん坊の時から大学資金に貢献してくれています。「この子にはよくやってほしい、可能性を最大限に生かしてほしい」と。たくさんの励ましをもらいました。正直わからないのですが、人生にはいくつかの転機がありました。割り算で涙を流していたあの一度がなければ、STEMのことを何もしていなかったかもしれません。2、3年生で割り算を習っていて、まったく理解できませんでした。なぜかピンと来なかった。教師だった祖父は中学で教えていました。ある夜、私が泣いた後に座らせて、微積分の前段階、いや、代数の前段階を説明してくれました。2、3年生の私に。「じゃあ、xという概念を導入しよう。xを解くんだ。xかけるこれがこれなら、xは何でなければならない?」「明らかに4です」。「よし、少し入れ替えよう。xはこれ割るこれだ。割り算だ」。「ああ、割り算がわかった」と。そういう基本的なことでした。もっと技術的なことに入ると、物心つく前から家族のIT担当でした。家族の誰よりも早く技術を知るようになりました。だから多くは独学でした。少しインターネット漬けで、常に何かを読んでいます。ああ、すごくオタクっぽく聞こえますね。コメントで優しくしてください。中学生の頃の好きな趣味の一つはKhan Academyの動画を見ることでした。経験値がもらえるという満足感と、単に面白いから。だからたくさんの励ましと、たくさんの独学でした。 Jonathan:ええ、割り算の話をしましたが、私は九九でとても似た経験をしました。たぶん7歳くらいで、九九をやると言われて、まったく理解できませんでした。脳のニューロンが形成されていなかったのか、誰かが「3頭の牛を3回、3かける3は3頭の牛ということ」と説明するまで。ここに3、ここに3、ここに3、全部でいくつ?「ああ、簡単だ」。それでコインが落ちました。これはポッドキャストで多くのゲストに聞いてきた興味深い質問でもあります。 Ethan:形成されていなかった、と。 Jonathan:学習の面で、そういうコインが落ちる瞬間がありますか?コーディングであった瞬間はありましたか?特定するのは難しいかもしれませんが、私の経験では…生活や子供の合間にしばらくコーディングを学ぼうとしていて、確かにコインが落ちる瞬間があります。しばらく問題の中に座っていて、突然落ちる。でもEricのように、情報が吸収されて納得しただけ、ユーレカの瞬間はなかったという人もいます。あなたはどうですか?概念が固まり、納得し、他のコーディングの問題や言語に統合できるようになるには、何が必要ですか? Ethan:ええ、良い質問です。その点ではEricに近いと思います。少なくともコーディングでは、いつも自然にわかってきました。いくつかの概念ではありました。コーディング全体としては、1と0で考え、二進法や行列の列で夢を見ますが…でも特定の概念ではコインが落ちる瞬間がありました。大きなものの一つは再帰です。中学生の初めにプログラミングを始めました。その間ずっと普通の、主にJavaScript、少しPythonをやっていました。再帰はありませんでした。関数を呼ぶなら呼ぶだけ。自分自身の中から関数を呼ぶことなど考えもしませんでした。どう分析するのか?高校でAPコンピュータサイエンスを取り、再帰を学ばなければなりませんでした。まったく理解できませんでした。自分自身の中から関数を呼ぶとはどういうことか?しばらく考えました。最終的に、言うようにコインが落ちましたが、何がきっかけだったかは説明できません。ただ粘り強さだけです。これはとても重要なことかもしれません。年上のソフトウェア開発者から聞いたのですが、「良いプログラマーになるために不可欠な決まった特性はない。ただ、試して失敗し、試して失敗し、それをとても速く、何度も何度も繰り返せなければならない」と。そして血の滲むような… Jonathan:そして血の滲むような、粘り強い。ええ、ええ、まったくです。選択肢ではありません。立ち上がってまた進むしかない。ええ、ええ。本当に興味深い。 Ethan:まったくです。バイ。そしてそれは、私が知っている良いプログラマー全員に見られることです。多くは、確かに生まれつき賢く、すぐに習得します。でもほとんどは「8時間もこの関数が動かない理由を考えた」と言います。私なら途中で散歩に行ったでしょうね。 Jonathan:8時間、すごい時間ですね。何かに注ぎ込む時間としては。でも、何かが動いたときの満足感はよくわかります。Exercismが楽しいのはそこです。ハローワールドから3つ目の演習で「これは簡単なはずだ」と思って、簡単だと自分に言い聞かせ続けるけど、そうではない。でも最終的にできて「ああ、これだったのか」と。セミコロンを見つけたんですね。あの厄介なセミコロン、毎回。だからコンパイル言語が少し好きです。「違う、ここを見て」という感じで。それはとても楽しい。今はGoを楽しんでいます。 Ethan:ええ、つまり…毎回言っているかもしれませんが。コンパイル言語が好きで、Goが好きで、良いエラーメッセージがあるものが好きなら、Vをちょっと宣伝させてください。それがこのポッドキャストに出ている理由、少なくとも私があなたと出会った理由です。 Jonathan:リスナーの皆さんに一言。VはEthanが作っている言語で、間もなくローンチされます。Ethanが近いうちにローンチすると言っています。私はその言葉を信じています。このポッドキャストの公開に合わせようと思います。聞いている方はぜひチェックしてください。でもEthan、宣伝からエネルギーを奪う前に、続けてください。 Ethan:ええ、これを録音している時点ではExercismでは準備できていませんが、うまくいけばもう一つ準備ができるはずです。素晴らしいものになります。でも、Vは僕の一番好きな言語です、断然。言ったように中学生からプログラミングをしています。たくさんの言語を試しました。JavaScript、Python、Go、アセンブリで書きました。HTMLとCSSも一からやりました。Juliaもやりました。Kotlinも試しました。言語のジャンルを選べば、たぶん試したことがあるでしょう。Vは断然一番好きです。構文はGoに非常によく似ています。Goと違う点の一つは、ばかげてほど速いことです。宣伝するときによく言うのは、どの言語にも「良いところ」と「でも」がある、ということです。たとえばPythonは、良いところは書くのがすごく楽しいことです。Pythonを書くのが嫌いな人はいません。簡単で、初心者にも良い。でも「でも」は、とても遅いことです。プログラミング言語のミニバンのようなものです。C++は、良いところはPythonの遅さを解決したことですが、書くのが最悪です。狂ったようにCやC++を書くのが好きな人もいますが、僕はメモリ割り当てやヌルポインタのエラーをそんなに扱いたくありません。Vにはそういう「でも」がまったくないと思います。 Jonathan:それはかなり大きな主張ですね。大きな、大きな主張です。 Ethan:大きな… Vについて言える「でも」は、大きなコミュニティがないことです。だからExercismに載せるのが楽しみなのです。人々が学べば気に入り、大きなコミュニティができ、支持するでしょう。速い。書くのが楽しい。プログラミング言語がどうあるべきかを考えると、「Vでこれをどうやるか正確にはわからない」と思っても、「これをやるならこれが論理的な方法だ」と思えば、そのまま動きます。論理的なプログラミング言語だからです。ばかげてほど速い。書くのが楽しい。とても安全。Vのページができたら、Exercismのページでこれらすべてが見られます。ぜひチェックしてください。とても楽しいです。 Jonathan:今、12と23の言語チャレンジをやっているので、これを見たことがあるかもしれません。毎月新しい言語を学ぶというものです。経験豊富な開発者には良い小さなチャレンジだと思います。でもVの宣伝です。リストに入れてください。間もなくローンチされます。注目してください。でも、高性能な言語と言うと、Rustがよく上位に来ますが、どうやら…これは私が適当に言っているだけですが、理解するのが、書くのが、最初は信じられないほど難しいらしいです。それが本当かどうかは別として、光を当ててくれるかもしれません。でも書くのが楽しく、複雑でない速い言語があるのはいいですね。 Ethan:いいですね。聞いてください。Rustを愛する人を十分知っているので、あまり悪くは言いません。一つ言えるのは、速いですが、小さくはないということです。Vはとても小さい。Vをコンパイルしたいなら、V自体がVで書かれています。Vのソースコードをダウンロードすると、Vが1秒未満で自分自身をコンパイルします。望めば、Vが自分をコンパイルし、そのバイナリでまた1秒未満で自分をコンパイルできます。それほど速いのです。Rustは、記憶が正しければ、完全にコンパイルするのに30ギガバイト以上と1時間かかります。ほとんどの人は自分でコンパイルせず、配布ページからビルド済みバイナリをダウンロードします。でも私のコンピューターでVと打つと、GitHubに行き、ソースコードを取得し、自分をコンパイルし、それが更新方法です。とてもクールです。速くて、小さくて、素晴らしい。 Jonathan:ああ、いいですね。Vを手に入れるのが楽しみです。言語として、少し背景を。どれくらい前からありますか?どうやって見つけましたか?興味深い背景情報は? Ethan:ええ、正確にどれくらい前からあるかはわかりません。それほど長くはありません。新しい言語です。まだバージョン0.3です。いわゆるベータ版です。見つけたのは、たぶん2、3年前で、GitHubのスター数で最速で成長している言語の一つでした。当時、今も少しやっていますが、Exercismを見つけてからはExercismをやっています。GitHubのリポジトリがあり、階乗を求めるプログラムや関数をたくさんの言語で実装しています。「新しい言語を学ぼう、こうやってやろう」と。それでVを試して「ああ、これはクールだ」と。そうやって見つけました。それ以来ずっと大好きです。素晴らしい。 Jonathan:いいですね。わくわくします。素晴らしい。それについて少し教えてくれてありがとう。作ってくれてありがとう。Exercismはあなたのような人が興味を持つことで成り立っています。本当に頼りにしています。大きな感謝を。それで、Exercismにどう関わったかにつながります。少し話してください。数分掘り下げて、それから次に進みましょう。 Ethan:ええ、もちろんです。オープンソースが大好きです。学校での自慢の一つは、友達ほぼ全員にWhatsAppやMessengerではなくSignalを使わせたことです。オープンソースでプライベートだからです。それでオープンソースを探していました。alternative.toというサイトを使ったと思います。HackerRankのオープンソースの代替を探していて、Exercismが出てきました。なぜそれを探していたかというと、Juliaを学ぼうとしていたからです。良い場所を探していて、ExercismはJuliaのトラックがあるものの一つだったので試しました。実は当時オープンソースだと知らなかったかもしれません。HackerRankのような、新しい言語を学べるものを探していました。Juliaを始めて、ある時「このページのソースコードを見る」を見て「あ、オープンソースだ」と。それで「Vのトラックはあるかな」と探しました。調べてみると、しばらく前に考え始めた人がいました。まだ0.2で0.3でもなく、実現しそうにありませんでした。それで「まだ誰かやっていますか?」と聞きました。すると実際に返信がありました。GitHubを知っていれば、死んだissueを見つけて質問して、返信は永遠に来ないものです。でも返信がありました。信じられない。 Jonathan:返信、信じられない。まるで大海原です、ええ。 Ethan:ええ、ブラックホールに吸い込まれて、二度と見られない。でも実際に誰かが返信して「正直、別のことに移りました。トラックが欲しければどうぞ」と。「じゃあ、少なくとも一部はできるだろう」と。それで空き時間に少しずつ進めました。そして、もうすぐローンチです。 Jonathan:前に話しましたね。物事を進めている途中だったと思います。連絡できてよかった。ローンチが楽しみで、サポートを盛り上げたい。聞いている方は、Vの集団の一員で、最初の言語トラックをやる必要があります。何でローンチしますか?コンセプト演習がいくつ、プラクティス演習がいくつ、何を用意していますか? Ethan:ええ、少し最小限です。コンセプト演習はありませんが、プラクティス演習が20あります。内訳は、簡単が10、中級が7、難しいが3だと思います。 Jonathan:オーケー。素晴らしい。楽しみです。皆さんに情報を伝えます。Vについて質問があれば、メールしてください。Ethan、ショーノートにいろいろ載せます。話したことすべてについて、忘れないようにリストを書いています。 Ethan:メールしてください。Exercismのフォーラムも見ています。そこでディスカッションを開いてタグ付けしてもらえれば、どうぞ。 Jonathan:いいですね。そのカテゴリーも用意します。Vのカテゴリーを追加する必要があるかもしれません。でも、もう少し触れたいことがあります。それから寝てもらって、私は朝のコーヒーを飲みに行きます。私はケープタウンにいます。アフリカの最南端で、多くのものから遠く離れていますが、それが好きです。 Ethan:良い朝を。コーヒーなしでこれをやっているとは知りませんでした。とても感心しています。信じられない。 Jonathan:紅茶でやりました。紅茶しかなかったので。私たちはとてもスノッブです。西海岸のアメリカ人なら、これは大きな一般化ですが、たぶんそうでしょう。怒られるかもしれません。でもケープタウンではコーヒーは大きなものです。コーヒーの質に本当に恵まれています。でもアメリカの西海岸もコーヒーにこだわるのは知っています。実際、世界のほとんどがそうかもしれません。 Ethan:シアトルとポートランドのライバル関係の話をしていましたね。コーヒーはシアトルの方が上だと思いますが、橋は私たちの方が多いので、どちらが勝ちかわかりません。 Jonathan:ええ、いい見方ですね。都市のクールさを測る面白い指標がありますね。でも残念ながらまたシアトルに譲ります。ケープタウンにはシアトルのコーヒーがあるからです。もしオレゴンのコーヒーが来たら、良い日になるでしょう。きっと良い日です。それでは、次に進む前に、Ethan、おすすめのローストやブレンドはありますか?そこまでコーヒースノッブですか? Ethan:いいえ、でもオレゴンに来たらDutch Bros Coffeeを試してください。オレゴンで生まれ育ったようなものです。小さな町の小さな小屋で始まり、みんなが気に入って、今ではどこにでもあります。 Jonathan:いいですね、Dutch Bros Coffee、声援を送ります。このポッドキャストで言及されたことに気づかないでしょう。いや、実際、送って「聞いている人に割引コードをくれ」と言えばいいですね。では、Ethan、毎週ゲストに聞く定番の質問です。Exercismでは特に、人々が学び、プログラミングを始められるように助けることに関わるので、クールだと思います。最初の質問です。テックで命をかける丘、という概念があります。少しメロドラマチックに聞こえますが。テックの分野で特に固く守りたい一つのこと、本当に擁護したい価値は何ですか?戦うと言いましたが、擁護の方が適切かもしれません。テック分野で特に、これは重要だと信じていること、支持していることは何ですか?何でもよく、かなり広いです。 Ethan:ええ、私の答えは…GitHubで見たことがありますか?ハッカーの法則と呼ばれるリストがあります。 Ethan:ええ。その一つに、コードは書くより読む方がいつも時間がかかる、というのがあります。それに基づくと、私が命をかける丘は、良いコードを書くことよりも、良いコメントと良いドキュメントを書くことの方が重要だ、ということです。今日のホットな意見です。 Jonathan:いいですね。とても興味深い。良いコードよりも良いコメントを書く方が重要。メモしています。金言です。 Ethan:もしかすると、Exercismでやっていて誰もあなたの解答例を見ないなら、少し重要度は下がるかもしれません。関数を書きましょう。でもExercismで学んだことを仕事やオープンソースのコミュニティで応用するなら、間違いなくその丘で死にます。 Jonathan:オーケー、とても興味深い。物事を文書化すること、良いコメントを書くことは、他人を助けるだけでなく、考えを論理的に構造化するのにも役立ちます。実際に思考を整理するのに役立ちます。エッセイを計画するようなもので、書き始める前に導入を決めて計画します。Exercismで大切にしていることの一つでもあります。Jeremyからよく聞くのは、コードを書くよりも考えるのに多くの時間を使うということです。コードを書くときには、すでに考え抜いて生成した解答を書いている。コードは思考を具体化したものにすぎない。これは多くの良いベストプラクティスとも一致します。今日から何か持ち帰れるなら、コーディングを学び、開発をしているなら、良いコメントを書き、考えるために使い、物事を適切に整理してください。あなたを助け、他人を助けます。 Ethan:ええ。 Jonathan:伝わるといいですが。クールな丘です。ありがとう。 Ethan:そうします。ありがとう。今のあなただけでなく、未来のあなたを助けるという話。ある人は「誰かが読むつもりでコードを書け」と言います。私はいつも、6か月後の自分が読むつもりでコードを書くようにしています。何をしていたかまったくわからないでしょうから。 Jonathan:ええ、ええ。文脈ですね。文脈が王です。それを得る手助けをするのは本当にクールです。次の質問です。 Ethan:ええ。 Jonathan:学習を加速させた重要な行動や習慣を挙げられますか?学習を効果的にする、ほかの人がやっているのを見て、そうだと気づく行動はありますか? Ethan:ええ、先ほど話した、試して失敗を何度も繰り返すことに戻ります。学習を加速させたと明確に言えることはあるかわかりませんが、壁にぶつかりますよね。それは間違いありません。奇妙なエラーが出て、どうしてもわからない時が来ます。あまりに「誰にも助けを求めない」側にいる人もいます。私の友人のように「8時間この関数を見つめて、やっと問題がわかった」と言う。逆に、壁にぶつかると手を挙げたり、すぐに誰かに聞いたりする人もいます。私の勧め、あるいは自分に必要なのは、私は「自分で解決する」側なので、主に他人に迷惑をかけたくない、馬鹿に見られたくないからです。「おい、セミコロンを忘れてるよ。13行目だ」「ああ、その通りだ」と。だからタイマーをセットしてください。5〜15分の範囲で「この問題とX分格闘する。それでもわからなければ、同僚か友達に助けを求める。あるいはStack Overflowで質問する。古典的な「Stack Overflowで質問して、マイナス1票と回答ゼロ」ですね。いつも楽しいです。あるいは散歩する。周りに誰もいなければ、その時間格闘し、頭を整理して、5分散歩して戻る。プロのソフトウェア開発の環境でも、もし職場が「必要なら散歩して頭を整理して戻れ」と励まさないなら、別の場所を探す価値があるかもしれません。私が働いた良い職場はすべてそれを励ましていました。とても重要です。メンタルヘルスは…心が荒んでいたら良いコードは書けません。 Jonathan:本当に、まったくその通りです。いいですね。これが今日最後の質問です。今朝は楽しく話せました。では質問です。今週、コミュニティへのおすすめは何ですか?かなり広くて構いません。大西洋や太平洋で泳ぐでも、オレゴンならDutch Bros Coffeeでエスプレッソを買うでも。今週のコミュニティへのおすすめは? Ethan:もう言った気がします。Vをチェックしてください。素晴らしいです。とても楽しい。もっと楽しいものが欲しければ、Metaculusをおすすめします。metaculus.comです。M-E-T-A-C-U-L-U-S。時間をつぶすのにお気に入りの方法の一つで、おそらくやりすぎています。未来を予測しようとするサイトです。「2035年に太陽光パネルが発電する総電力量は何テラワット時か?」という質問があり、「私の予測はここからここ」と答えます。何百人もの人がこのサイトで予測します。実際の数字に近いほど多くのポイントが得られます。世界の見方をよりよく考えるための方法としてやっています。私にとって「私のバイアスでは40%くらいだと思うが、数字を見ると実際は75に近い」というのに役立ちます。信じられない。それがおすすめです。Vをチェックして、とても速く学べ、楽しく、簡単なので、それが終わったらMetaculusをチェックしてください。 Jonathan:オーケー、いいですね。素晴らしいです。Ethan、今夜のあなたの時間、私にとっての朝、本当にありがとう。とても興味深かった。量子コンピューティングの話は少し聞いたことがありましたが、あなたのポッドキャストもチェックします。聞いている方は、コメントにEthanのポッドキャストを載せます。いいねをして、登録して、聞いてください。私も時間があるときに聞きます。話せて本当に面白かったです。Exercismへの貢献に感謝します。Vトラックのローンチが楽しみです。おすすめも素晴らしい。話せてよかった。そろそろ締めましょう。Ethan、改めて時間をありがとう。オレゴンでの残りの夜を素敵に。 Ethan:ありがとう、Jonathan。こちらこそ。Exercismのためにしていることすべてに感謝します。必要なら朝5時30分に、24時間体制でやっているのを知っています、個人的な経験から。あなたがしていることすべてが素晴らしいです。感謝します。呼んでくれてありがとう。 Jonathan:いいですね、いつでも。素晴らしい。皆さん、乾杯。

コミュニティのその他のストーリー

コミュニティのメンバーの話を聞いて、学び、刺激を受けましょう。