Rebecca MarkはUnison Computingに勤めており、Unisonプログラミング言語の学習をできるだけ楽しく、親しみやすいものにすることを使命としています。
Jonathan: Rebecca、Exercismのポッドキャストへようこそ。来てくださって本当に嬉しいです。こうしてお話しできるのはとても光栄です。そちらは朝の7時30分、こちらは今16時30分ですね。ようこそ。今、世界のどのあたりにいらっしゃるんですか?
Rebecca: ワシントン州のシアトルにいます。なので、朝早くからお話しさせてもらっています。
Jonathan: いいですね。それに、コーヒーももう注いであって、おかわりの分もそばに置いて、温かいまま一日の始まりを迎える準備は万端だと伺いましたよ。
Rebecca: ええ、もう、すぐそばにあります。予備のChemexもあって、今日はしっかりエネルギー補給できそうです。
Jonathan: わかりました。すばらしい。ではRebecca、ようこそ。Rebeccaのことは、Exercism、とくにUnisonトラックでの活動を通して少し知っています。ただ、そこを深く掘り下げる前に、Rebeccaご自身のことや、どうしてシアトルにたどり着いたのかをもう少し伺いたいです。 一部はシアトルの話ですね。いや、確かにシアトルと言いました。 ……そう言っていいんでしたっけ。ええ、そう。一瞬、魚のような記憶で、Rebeccaがどこに住んでいるかを忘れてしまったかと思ったんですが、シアトルですね。どうしてそこに住むことになったのか、ご自身のこと、Rebeccaの物語を少し、それからどうやってIT業界に入り、何がきっかけでその道に進んだのかを伺いたいです。
Rebecca: ええ。実は私の家族は6世代前に直接シアトルへ移住してきたんです。なので、もう本当に長いことここにいます。シアトルに住む移民の一家です。ここが大好きです。学校もこのあたりに通いましたし、実はそれが私がIT業界に入った大きな理由のひとつでもあります。シアトルはIT企業がたくさん集まる大都市なんです。ただ、大学ではプログラミングを専攻したわけではありません。英文学、それも詩を中心に学びました。なので、ちょっと意外に思えるかもしれません。ええ。変な組み合わせに見えるかもしれませんが、ある意味ではつながっていると思っています。大学はここ、ワシントン大学に通いました。最初の仕事はポートランドで、高等教育の分野で働いていました。学生と関わりながら、人々の学力格差を縮め、学生が大学にとどまれるように支える仕事です。それが私の、私の、私の仕事でした。学生のライフコーチとしてです。本当にすばらしい仕事でした。ただ、多くのオンライン大学と関わるなかで、学生たちがテクノロジーのプラットフォームに本当に苦労している姿や、逆にテクノロジーが彼らによりよい経験をもたらし、人生を変え、貧困や抑圧の世代間の連鎖を断ち切る助けにもなっている姿を見ました。そして、それに実際に手を動かして関わりたいと思いました。それに、これは少し自分勝手かもしれませんが、教育という仕事はいろいろな意味で本当に大変なんです。とてもやりがいはありますが、同時にとても難しい。それに比べて、テクノロジーの世界では、毎週ちゃんと前に進んでいるという感覚が得られます。そして、それが私がキャリアに求めたかった問題解決の側面に火をつけてくれました。それで進む道を変え、シアトルにあるADA Developers Academyという学校に応募しました。こうしてぐるりと一周して、また戻ってきて、そこの1年間のプログラムを受けることになったんです。
Jonathan: ちょっと待ってください。ということは、シアトルで育って、それからキャリアを始めるために引っ越したんですね。シアトルからどこへ行ったんですか?
Rebecca: ポートランドに行きました。シアトルから少し南ですね。ええ。
Jonathan: なるほど。いいですね。それで、言語、詩、英文学をやっていたと。私も同じでした。高校のときは英語やそういう分野が大好きで、もう「やったー」という感じでした。 また英文学の学生が一人。ぜひその火がついた話を聞かせてください。目の前でテクノロジーがさまざまな問題を解決していくのを見て、思い切って飛び込むと決めるまでのプロセスです。そのプロセスはどんなもので、どうやって「よし、仕事を辞めてキャリアの道を変え、まったく別のことに進もう」と決めたんですか? どんな感じでしたか?
Rebecca: 少し、そうですね。少しは運もありました。というのも、学生たちがこれでうまくやっているか、あるいは本当に苦戦しているかを目の当たりにして、私も関わりたいと思っていたからです。今やっていること以外に何ができるかはわからないけれど、今の仕事が、私が日々の仕事に求めているものの一部を満たしていないことはわかっていました。それで、半分は退屈しのぎで、昼休みにHTMLとCSSを学び始めました。小さなウェブサイトや小さなウェブフォームを作る練習をしていたんです。当時は完全に無料の学習教材を使っていました。ただ独学で、「このインターネットって一体何なんだろう」と考えながらやっていました。
Jonathan: ええ。ええ。
Rebecca: 今でも自分に問いかける疑問ですけどね。でも、そう、なんというか、とにかくプログラミングに恋をしてしまったんです。小さなカメを画面の上で動かしたり、四角形を表示させたりするのは、ある意味で魔法に一番近いものに感じられました。ええ、それで「よし、これが好きだし、この使命も好きだ。この2つをどうやって結びつけようか」と考えて、ただその問いを何度も何度も自分に投げかけながらキャリアを築いてきました。
Jonathan: いいですね。それで、コードを書く、というそのプロセスですね。コンピューターの中で起きていることを概念化して捉えることを学びながら、それについて頭の中にイメージを持つこと。たくさんの人と話していて感じるんですが、これは私自身の開発経験にも当てはまると言えます。というのも、私も少しずつその世界に足を踏み入れているからです。頭の中にイメージを持ち、それを思い描けること。これはプログラミングを学ぶうえでとても大きな部分です。Rebeccaはそれをどうやって身につけたんですか? どうやって自分の学び方に気づいたのか、伝わりますかね。CSSとHTMLを見て、「よし、いい感じだ」と思う。そこからどうやって頭の中で情報を整理し始めたんですか? 通じますかね。
Rebecca: ええ、いい質問ですね。それをどう形式化したか、ですか。文学の教育で叩き込まれたことのひとつは、注意深く読む、ということでした。行間を読み、物事のかたちに注意を払う。そして、プログラムにもかたちがあると思うんです。型のある言語を扱っていたので、本当にコンパイルできないものを書けてしまう、とても独特な書き方があります。私……
Jonathan: ええ、まさに。ええ。
Rebecca: プログラミングをするときは、「よし、この目標の構造はどんなものだろう、物語はどうなっているんだろう」と考えるのが好きです。とても変わった想像の仕方かもしれません。コンピューターが何をしているのか、あるいはaとbをどう組み合わせるのかを、型にはまらない方法で思い描くわけです。でも、いつも「よし、コンピューターを自分の主人公だとしたら、A、B、Cの各時点で何をしているんだろう? どうやって私が望む目標を達成するんだろう?」と考えてきました。フィネガンズ・ウェイクほど面白い物語ではないかもしれませんが、そこは好みが分かれるところです。でも、それが私の持っているモデルです。
Jonathan: とても興味深いです。今話してくれたことは、プログラムやコードにそのまま当てはめられますね。シーンがあって、登場人物がいて、それは変数のようなものと言えるでしょうし、さらにプロットもある。なかなか楽しいですね。大きな脱線をしてしまいそうですが、実際にエンジニアになった英文学の学生にも、どこかで出会うかもしれません。ただ、私がこれを尋ねた理由は、学び直しというか、多くの人がプログラミングを学ぶとき、実際には新しいキャリアや、失礼、以前のキャリアから来ているからです。そして、頭の切り替えをして、もう一度心を向ける方法を見つける必要があります。それで、もう一人のコントリビューターであるBobby Towersと話していたんですが。Rebeccaもご存じかもしれません。彼は音楽のバックグラウンド、それもかなり本格的な音楽のバックグラウンドを持っていて、片腕を事故でけがしたので、片手でタイピングできるように自分専用の片手用キーボードを開発したんです。彼もこの話を共有してかまわないと思いますが、彼が音楽やパターン、音楽に典型的なものをどう理解していて、それが開発にどう活かされるかを聞いたのは、とても興味深かったです。こうした会話の面白いところは、誰もがそれぞれ独自のやり方を持っていると気づけることです。ドキュメントにある情報、とても実用的な情報や科学的な情報を取り入れて、自分なりの味付けをする。とても興味深いですね。それで、CSSやHTMLの書き方を学び始めて、物事を組み立て始めて、頭の中に物語を描き始めたわけですが、そこからどうやって知識を深めていったんですか? そして、頭の中で壁にぶつかって、なかなか前に進めず、全体像が見えなくなったときはどうしましたか? そういう障害にどう気づき、どう乗り越えたんですか?
Rebecca: ええ、ええ。いい質問ですね。私はいつも障害にぶつかっています。というか、間違いなく、絶えず壁にぶつかり続けています。そんなときに本当に助けになったのは、人のつながりを頼ることでした。私を支えてくれたのは、コミュニティであり、友情であり、メンタリングでした。難しい課題に直面したときも、ただ新しいことに出会っただけのときもそうです。たとえば、プログラミングスクールの直後のインターンシップのときは、とても仲のいい友達が一緒にその経験をしてくれました。彼女がいてくれたおかげで、「ああ、これを知らない、でも知っているべきなのかも」と感じたときに、友達のところへ行って「これ知ってる?」と聞けたんです。すると彼女は「知らないよ。なんで知ってるはずなの?」という感じでした。その……
Jonathan: ああ、ええ、私もそうしますよ。
Rebecca: ええ。まわりに人がいてくれたことで、自分の旅のどのあたりにいるのかが当たり前のことのように感じられました。そして、みんな本当に時間とサポートを惜しみなく提供してくれました。だからいつも、その恩を次へつなげようという気持ちでいます。というのも、大変な時期に私を本当に支えてくれたのはコミュニティだったからです。
Jonathan: とてもいいですね。それで、1年間のブートキャンプのようなものを受けたわけですね。ブートキャンプと言えますか、それとも特定の学校という感じでしたか? 大きな違いがあるわけではありませんが。
Rebecca: ええ、ブートキャンプに分類されると思います。ADAのプログラムは、ある意味で独特だと思います。というのも、学費を払って通うのではなく、授業料の仕組みそのものがないんです。学生は応募して、かなり厳しい選考プロセスを経ます。そして選ばれると、このプログラムに価値を見出して、この経路でインターンを欲しがっている企業が、学校全体をスポンサードします。それに助成金や他の非営利の資金もあります。モデルとして本当にすばらしいです。というのも、学生としては、学びながら1年間収入なしで過ごすだけでも大変ですから。追加の授業料を払わなくてよかったのは、その点で本当に助かりました。
Jonathan: なるほど。つまり、基本的には……その前にスポンサーがついたと。企業が「うちがスポンサーします、その代わり最後はうちで働いてください」と言う感じだったんですか? そういう仕組みでしたか、それとも、試験に合格して、最後に参加できる機会が与えられる、という感じでしたか?
Rebecca: ええ、どちらかというと後者です。当時、企業は何人かまとめてスポンサーする、ということをしていました。それで学校が「では、その人数を受け入れられます」と決める、という流れです。そして年の半ばに、全員がいろいろな企業と面接して、どこがいい組み合わせかを探る、という入れ替えがあります。その後、アルゴリズム、最適マッチングのアルゴリズムを走らせます。そして最終的に、ある企業に決まるわけです。ええ、そうやっていました。
Jonathan: 実際にそうやっていたわけですね。ということは、
Rebecca: ええ。医学の研修医マッチングのアルゴリズムに少し似ています。
Jonathan: なるほど。わかりました。 興味深いです。それで、その年は何を学んだんですか? JavaScriptが伝統的なものだったんですか? JavaScriptを伝統的なプログラミング言語と呼んだら、今からたくさん怒られそうですね。でも、その、カリキュラムはどんな感じだったんですか?
Rebecca: ええ、当時はRubyをベースにしたカリキュラムで、HTML、CSSを学び、それからウェブアプリケーション開発では、Ruby on RailsやSinatraを使って、ウェブフレームワーク的なことをしていました。あと、よりフロントエンド寄りの開発に使うものもありました。それもカリキュラムの一部だったからです。それから、API連携や、アプリケーションのさまざまな部分をどうつなぎ合わせるかについてもたくさん教わりました。ワークフローもとても協働的で、チームで一緒に働くとはどういうことかを、できるだけ忠実に再現しようとしていました。それもとてもよかったです。つまり、とても実践的でハンズオンのソフトウェア教育だったわけです。
Jonathan: なるほど。すごい。それで、ええと、そういう流れですね。人がどうやって今の場所にたどり着いたのか、その話を聞くのが本当に好きなんです。それで、今はUnisonという言語の会社で働いているわけですね。それはどういう経緯だったんですか? この一連の流れの延長として、それから、Unisonについて少し説明してもらえますか? 聞いているみんなが、どんなものかを理解できるように。いずれにしても、すべてショーノートにも載せますので、みんな見に行けます。でも、そう、説明してください。どうぞ。
Rebecca: ええ。私が働いているのはUnison Computingという会社で、Unisonという新しいプログラミング言語を作っています。この言語のいちばんの違いは、コードベースが変更可能なテキストファイルの寄せ集めではない、という点です。すべての関数はASTにハッシュ化され、内容アドレス方式で管理されます。これは、その、技術的な話ですね。現役のエンジニアとしてのメリットは、たとえば計算をプログラム的に分散させることがとても簡単になることです。コードをプログラム的にアドレス指定して取得できるなら、データのシリアライズとデシリアライズに関する問題の多くが、まるごと消えてなくなります。ですから、このプログラミング言語でエンジニアの作業の流れを改善し、ひとつのプログラミング言語だけで本格的な分散システムを書けるようにすることに、とても関心を持っています。完全な本番システムを運用するうえでの、運用的かつ知的ないくつかのコストを考えずに済むようにする、ということです。ええ。
Jonathan: それはバックエンドとフロントエンドのようなものですか? 間違っていたら訂正してください。というのは、ひとつの言語で、フロントエンドもバックエンドも、その他すべてを含めて、ウェブアプリケーションを丸ごと書けるということですか?
Rebecca: 私たちは純粋にバックエンドです。
Jonathan: なるほど。
Rebecca: ええ、純粋にバックエンド言語です。本当の意味での革新は、たとえばKubernetesクラスターの管理や、ZooKeeperクラスターの管理、あるいは多数のマイクロサービスの管理といった、運用まわりの複雑さの多くを、Unisonがプログラム的に記述できて、それに対してプログラムを実行できることです。そうした作業をすべて自分でやらなくても済むんです。
Jonathan: それで、Unisonで日々どんな仕事をしているんですか? どのように関わっていて、いいところ、本当に楽しいところ、それから「ああ、ここはもっとこうなればいいのにな」と思うところはどこですか? 一日の流れはどんな感じですか? 今日はどんな様子ですか? うまく言えませんが。
Rebecca: ええ。
Jonathan: 今日はどんな感じですか? よくわかりませんが。
Rebecca: 今日は、なんとか片づけたいウェブサイトのデプロイがあるんです。それから、言語のドキュメントなど、いくつかのドキュメントを改善する予定です。今週の大きな目標は……分散エコシステムですね。その一部はExercismにも登場するかもしれません。ぜひトラックをチェックしてみてください。それで、私の役割は……
Jonathan: 宣伝ですね。
Rebecca: ええ。
Jonathan: ええ。
Rebecca: 私の役割は、人々がUnisonを学べるように助け、この言語に気軽に踏み込んで、実務で使えるレベルになり、歓迎されていると感じてもらうことです。そして、それぞれの目標を実現するために必要な情報を手に入れられるようにすることです。なので、まあ、週のあいだは、そういった寄せ集めのような活動になります。誰かがトラブルシューティングを必要としていたり、別の人が「ウェブサイトのこのリンクが間違っている」と言ってきたりするからです。ですから、内容はいろいろ変わります。いちばん大変なのは、パンデミックのなかでリモートで働くことですね。コミュニティを築くのは本当に難しいです。この時期に開かれていたはずのカンファレンスやIT関連のイベントの多くは、理解できることですが、本当に後回しになってしまいました。恋しく思うことのひとつは、たとえば「今週はフランスのリヨンで登壇するんだ」といったときの、あのワクワク感ですね。
Jonathan: IT業界ならではの暮らしぶりですね。そうそう。ここでちょっと落ち着いて……
Rebecca: ええ。新しい人と出会う機会が恋しいです。でも、これから改善していくはずだと、願っています。
Jonathan: 今の時点ではリモートで働いているんですね。ということは、チームはあちこちに散らばっていると。全米に。世界中に。今、チームはどこにいるんですか?
Rebecca: ええ、東海岸に多くのメンバーがいます。ボストンやロードアイランドのあたりですね。でも本当に、まさにうってつけの、完全に分散した会社なんです。そう、私は西海岸にいます。アメリカの中央部にいる人もいます。今はオフィスを持っていません。それぞれの小さな場所で、完全にリモートです。
Jonathan: なるほど。では、今はIT業界の他の人たちに会いにいく機会はどうやって作っているんですか? それとも、言っていたように、すべてが止まってしまって、ホームオフィスで目を覚ますのが少し心地いいような状態ですか? ドアを閉めて、そのまま廊下を歩いて帰宅する、みたいな。言っている意味、わかりますよね。全体としてどう感じていますか? 仕事とのつながりを保つうえでの課題や、今の状況にどう対処しているかを教えてください。それから、この先、Rebecca自身と、チームとしてのUnisonはどうなっていくと思いますか? 長期的にリモートなのか、それとも、もう少し対面の要素を取り入れていくのが目標なのか。
Rebecca: 目標はリモートのまま続けることだと思います。多くのメンバーにとって、それがうまく機能しています。仕事以外に役割がある人もいますし。それに、根本的なところで、私はいくつか理由があってリモートが本当に好きです。ひとつは、この1年オンラインカンファレンスを開いたことです。コミュニティが成長し続けるなかで、それが続いてほしいですし、来年は対面の要素も入れられるかもしれません。それから、来月予定していることですが、会社としての対面のリトリートがあります。ボストンあたりの大きな、ええ、大きな屋敷を借りて、みんなでそこに集まる予定です。テニスコートやいろいろないい部屋があって、そこで一緒に仕事をします。計画を立てたり、ビジョンを描いたりする活動は、対面でやるのがいちばんいいでしょうから。今は対面が選択肢になってきたので、チームを少しずつ集めています。
Jonathan: ええ、そういったものはいいですよね。Exercismでも8月初めに似たような集まりを開いて、チームのつながりという意味で本当によかったですし、とくに、終わらせる必要があったり、新たに始める必要があったりした大きなプロジェクトを前に進めるのに役立ちました。だから、きっととても楽しいでしょうね。さてRebecca、あなたはExercismのUnisonトラックの責任者でもあり、それをすべて作り上げてきました。その経験について少し、それからどうやってExercismと出会ったのか、このトラックを今後どうしていきたいかを聞かせてください。
Rebecca: ええ、ええ、本当にすばらしい経験でした。Exercismは、同僚のStが最初に紹介してくれたんです。彼はこのプラットフォームの大ファンで、以前から使っていました。それに、Unisonには学習コンテンツ管理プラットフォームをまるごと作るようなリソースがありませんでした。かなり小さなチームで、他にも多くの目標があります。それで私は「どうやって……」と考えたんです。
Jonathan: 何年経っても、Rebeccaはまだこんな感じで……
Rebecca: ええ。今も作り続けて……
Jonathan: それを。
Rebecca: プラットフォームをです。ええ。それで、別の団体と提携する必要があるとわかったんです。Unisonという言語を、みんなが試せるように広めたいと。できればブラウザで動く要素があれば最高だと思いました。そうすれば、みんながとても手軽にこの言語に触れられるからです。そしてExercismが提供しているものを見て、「これはすばらしいコミュニティだ。成長していて、無料だ。とてもいい。私たちのユーザーも気に入るはずだ」と思いました。それで「よし、ここでみんなが練習できるようにしよう」と決めたんです。トラックを作るプロセス自体は少し面白いんです。というのも、Unisonはファイルベースの言語ではないですよね? コードベースはハッシュ化されてコードベースに保存されますが、他のほとんどの言語はファイルシステム上のファイルで動きます。なので、そこにはいくつか興味深い技術的課題がありました。
Jonathan: もう少し詳しく話してもらえますか? たとえばどんな? ぜひ、その、もう少しだけ。技術者ではない人間として言うと、こんなに技術的な質問をしたらJeremyはきっと笑うでしょうけど、その課題のいくつかをもう少し掘り下げてみてください。聞いている人たちも、話していることの一部はつかめると思います。
Rebecca: ええ。Unisonでは「スクラッチファイル」と呼ばれるものを使います。スクラッチファイル、つまり拡張子に.Uがつくファイルは、本当に使い捨てです。消してもいいファイルなんです。小さなプログラムを書いて、REPLのような、ノートブックのような環境で実行し、そして関数をファイルから削除します。Unisonのコードベース自体に保存されているからです。つまり、信頼できる唯一の情報源はUnisonのコードベースであって、ファイルシステムではありません。これがExercismとの連携で面白くなるところは、もちろん、Exercismはファイルを見ます。ファイルを渡されて、それに対していくつかのテストを実行し、「よし、学生はテストに合格した」あるいは「ここに問題がある」と判断します。結果的にはうまくいきました。というのも、テストを実行するたびに、基本的に新しいDockerコンテナが発行されるからです。バックエンドでは、とても賢い技術的な処理が行われています。
Jonathan: 魔法のような手品ですね。
Rebecca: ええ、魔法のような手品があります。Ericには、このプラットフォームの働きに対して、たくさんの拍手が送られますね。ええ、結果的にはうまくいきました。ただ、Unisonという言語の根本的なモデルは、ファイルに永続化されるコードベースではない、ということです。なので、学生が自分の作業を保存したい場合、実行のたびに……
Jonathan: どうするんですか?
Rebecca: ええ。
Jonathan: それで、どこで……
Rebecca: どこで……
Jonathan: つまり、学生は毎回、カリキュラムの最初から始めないといけないということですか? ほぼ毎回。というのも、私の頭はそっちへ行ってしまって、「ああ、保存ができない」と。でも、それは私の脳の処理がおかしいだけかもしれません。でも「わあ、また最初からやり直さないといけないのか」と思ったんです。
Rebecca: ありがたいことに、ウェブインターフェースは最後の実行を保存します。なので、ファイルシステムやファイルの状態を必ずしも保存しているわけではありませんが、Exercismのプラットフォーム自体が学生の作業を保存してくれます。それは本当にいいですよね。とてもすばらしいです。それから、学生がコマンドラインを使う場合は、Unisonの体験をまるごと使えますよね? というのも、その場合は実際にUnisonのコードベースマネージャーをダウンロードして、直接扱うからです。ええ、ウェブベースのインターフェースとコマンドラインでの作業のあいだには、多くの柔軟性があります。
Jonathan: なるほど。とても興味深いです。毎回思うんですが、Exercismのさまざまなメンテナーやコントリビューターと話すたびに、それぞれの言語のニュアンスや細かい違い、そういったものを聞くと、本当に驚かされます。世の中には、本当にいろいろなやり方があるんですね。さて。今はUnisonにいらっしゃるわけですが、そろそろ、このIT業界で「自分が命を懸けてでも守る丘」について聞くのにいい機会だと思います。事前に十分準備しておいたはずです。最終的に、Rebeccaが「これが自分の意見で、絶対に欠かせない。これだけは譲れない」と思うひとつのことは何ですか? 「戦う」という言葉を使う必要はありません。むしろ、心から支持して「これは本当に大切にしたい」と言えるものは何ですか? どんな考えですか? あるいは「CSSより関数を先に書け」みたいなものでもいいんですよ。よくわかりませんが、今適当に言っただけです。でも、どんなものでもいいです。
Rebecca: ええ。私が命を懸けて守る丘は、ええと、IT業界があまりにも長いあいだ、技術的に優秀だという理由で、有害な人柄を受け入れてきた、ということです。そして、それは逆にされるべきだと思います。私はむしろ……
Jonathan: それです。いいですね。ええ。
Rebecca: 天才的な嫌なやつ1人よりも、本当に有能でよく働く50人と一緒に働きたいです。
Jonathan: それはIT業界全体で少しずつ変わってきている気がします。それに、理由は、間違っていたら言ってくださいね、私はExercismの文化が、大好きなんです。本当に大好きですし、言っていることもわかります。ただ、そういう意味では、いろいろなバックグラウンドや文化、経験を持つ人が学べば学ぶほど、ITがより身近なものになっていくほど、その逆転が起きていくのを目にすると思います。それはとてもワクワクします。それに、外からIT業界を見ていると、今の時点ではある意味で本当に富の移転が起きているんだと思います。というのも、知識を持つ人がかなり少数なんです。コマンドラインを理解するとか、bashスクリプトが一体どうなっているのかとか、そういう類のことを含めて、私は中で何が起きているのかまったくわかりませんが、その知識が、たくさんのお金とエネルギーと資金をその分野に呼び込んでいます。なぜなら、技能と知識を持っているのがその人たちだからです。そうするためには、時間をかけて、この2、3年で、人が学び、反論し、対抗し、物事の違う理解の仕方を持つようになるにつれて、その変化が起きていくと思います。私はそう信じていますし、願っています。でも、それについてはRebeccaに賛成です。とても興味深いと思います。結局、私が経験したのは、天才は手に入るかもしれないけれど、それを感情のレベルで管理するのに必要なエネルギー、他の人との摩擦、他の人たちが背負わなければならないストレス、たとえばクライアントとの間やチームとの間でのそれを考えると、実際には差し引きで帳消しになります。そして、完全にポジティブな経験だというのは見たことがありません。誰かが犠牲を払わなければなりません。その仕組みのなかで、誰かがその代償を払っているんです。なので、私はその点でRebeccaとまったく同じです。それに、これはたとえば何かのITソリューションにも当てはめられると思います。つまり、「これが唯一のやり方だ」というのは、いや、実際には20通りもやり方があって、それぞれにトレードオフがあるんです。そして、成熟しているというのは、「自分はどんなトレードオフなら受け入れられるか」を言えることです。「いや、こうやるしかないんだ。昔からずっとこうやってきたから」と言うのではなく。とにかく、これが私なりの考えですけどね。でも、ええ。
Rebecca: ええ。
Jonathan: 賛成です。よかった。というわけで、その丘については私たちは同じ考えですね。今の時点で、自分がたくさんの丘を抱え込もうとしていることに気づきました。
Rebecca: ええ、毎回……
Jonathan: 話す相手みんなに、そう、まさに、という感じです。「わあ」と思いますよ。今の時点で、少なくとも7つの丘で死にかけています。でも、いや、それ、とてもいいですね。Rebeccaは、これから数年でどうしたいですか? 自分の人生で、あるいはIT業界全体で、学びたいことや見たいと思っていることは何ですか? Rebeccaの夢はどんなもので、どう考えていますか?
Rebecca: Unisonのコミュニティが、本当に持続可能な形で成長し、いろいろなバックグラウンドの人を温かく迎え入れるようになるのを見たいです。それが本心です。私がUnisonに入った理由は、コミュニティを前に進める手助けをする機会があったからでした。でも、長い目で見れば、ITの旅を始めたばかりの人たちともう一度関わりたいとも思います。10年前の私のような人たちです。「インターネットってどうやって動いているんだろう?」と純粋に興味を持っているけれど、必ずしもバックグラウンドがあるわけではなく、ITについて違う考え方を持っている人たち。そんな人たちのために「詩人のためのプログラミング」をやりたいんです。
Jonathan: それはすばらしいですね。ソングライターや詩人と、コード。いいですね。
Rebecca: ええ。なので、ITの旅を始めたばかりの人たちと関われたらいいなと思っています。それは本当にすばらしいことだと思います。
Jonathan: では、もし今この部屋に、プログラミングや開発、その内側の世界についてまったく何も知らない人が10人入ってきたとして、彼らが始めるための、Rebeccaのトップ3のアドバイスは何ですか? しかも、彼らには選択肢がなく、学ばなければならないとします。「よし、君はここにいる。逃げ道はない。とにかくやるしかない」という状況です。Rebeccaなら、どこから始めさせますか? どう進めますか?
Rebecca: まず伝えるのは、部屋を見渡して、みんなの成功を自分の成功として捉えることです。それから、たぶん……システムをテストして、自分の作業を確認する方法を学ぶことに力を入れるように伝えるでしょう。「ああ、そうだ」……実用的なこととしては、デバッガーの使い方について伝えるかもしれません。でも、最初のポイントが本当にいちばん伝えたいことで、それは、他のみんなの成功を自分の成功として見ることです。なぜなら……
Jonathan: そう思いますか、私は……ええ。いや、というのも、とても興味深い指摘ですね。実は最近、こうしたコホートを開催したんです。ご存じかもしれませんが、AlexaトラックとGoトラックで30日間の学習プログラムを2回実施しました。それで、Goトラックには700人、いや、300人以上、700人が申し込んでくれました。Alexaトラックには100人ほどでした。とても興味深かったのは、人が一緒に学ぶとどうなるかを実験したかったからです。一緒に学ぶことは、学びを加速させ、目標を達成するうえで、最も重要な要素のひとつだと気づいたからです。それで、Rebeccaが今言ったこと、とてもいいなと思いました。お互いがそれぞれの成功を後押しすることについて、またいつかもっと話さないといけないですね。正直に言うと、それは学習においてとても強力な道具だと思います。私たちはしばしば、個人として孤立して動いてしまいます。でも、実際に強く感じるのは、加速はコミュニティから、他の人の視点を得ることから生まれるということです。それで、そのフレーズをいただいてしまおうと思います。できれば、みんなの成功を後押しするための言葉として、一般的に使わせてもらえないでしょうか。
Rebecca: どうぞ
Jonathan: ぜひ、優先的に。それについて何かできたらいいですね。でも、本当にいい話でした。とても気に入りました。ありがとうございます。共有してくれてありがとうございます、Rebecca。時間を割いてくれてありがとうございました。プログラミングやIT、そういったことについて話せて、本当に楽しかったです。早起きしてコーヒーを淹れて、時間を作ってくれてありがとうございます。こちらでは朝、そちらでは朝の時間に。ええ、感謝しています。それから、聞いてくれているみなさん、Unisonという言語をチェックしてみてください。ショーノートをまとめて、このポッドキャストの紹介文と説明欄に載せておきます。来てくれて本当によかったです。ありがとうございました。それでは録音を止めて、このあと少しだけ雑談しましょう。Rebeccaはそのまま残っていてください。他のみなさんは、またお会いしましょう。ええ。
コミュニティのメンバーの話を聞いて、学び、刺激を受けましょう。