RecurseCenter.return()
RecurseCenter.return() (mm-dev.rocks)
要約
この記事は、プログラミングリトリートであるRecurse Center(RC)での12週間の体験について書かれています。筆者は、RCがコード愛好家が集まり、互いに学び合い、能力を伸ばすためのプログラムであることを説明しています。また、RCへの応募プロセス、特に筆者がどのようにRCを知り、応募を決意し、最終的に参加に至ったかについても詳細に語られています。
全文翻訳
RecurseCenter.return()
19 Aug '26 更新 21 Sep '26 17 分で読めます
Intro Part 1 of 8
プログラミングリトリートでの12週間の体験。
The Recurse Center(略してRC)はプログラミングリトリートです。コード中毒者たちが、ジュピターノートブックや猫の写真を共有しながら、うろうろしている様子を想像しませんか? ええ、まさにそんな感じです!
しかし、待ってください! まだあります!
RCは、コーディングやものづくりを愛する人々が集まり、互いに学び合い、能力を高め合う場所です。それは、愛情深く組み立てられたアクティビティ、トーク、そして共同教育のプログラムです。
RCの物理的な拠点(Hubと呼ばれます)はニューヨークのブルックリンにありますが、完全にリモートの応募者としてリトリートに参加することも可能です。毎年いくつかの6週間のバッチがあり、1つだけ参加することも、私のように連続して2つ参加して12週間のバッチにすることもできます。
ハブでバッチ全体を過ごす人もいれば、私のように完全にリモート、あるいはハイブリッドで参加する人もいます。
ファカルティがアクティビティのスケジュールとサポートを提供しますが、一般的に作業は自己主導です。RCには「合格か不合格か」という状況はほとんどなく、単に完了したと印をつけることよりも、自分の能力を伸ばすことが重視されます。それは非常に栄養のある環境であり、関わるすべての人々は親切で寛大です。
それ以上に、あなたは自分が投じたもの以上のものを得ることができます。
RCとの出会い Part 2 of 8
下部に特定のリンクがある、クールな記事がいくつか。
ある日、Hacker Newsを閲覧していて、3Dプリンターでラップトップのエルゴノミクスセットアップを自作するという記事へのリンクを見つけました。それを読んで楽しかったのですが、RCについては知りませんでした。記事の最後に「The Recurse Center」という小さなリンクがありました。クリックしてみました。少しだけ読みましたが、興味深い場所のように思えましたが、その時はあまり深く考えませんでした。私はインターネットユーザーですから、立ち止まったりしません!
数週間後、またHNで別の素晴らしい記事(ニッチなソリューションを作ることが重要)を読んでいました(注:この記事を書くまで、両方の記事が同じ人物によって書かれていることに気づきませんでした。Nicoleさん、ありがとうございます!)。この記事は、3Dプリンターがものづくりのプロセスについて新しい考え方を開き、組み立てラインを立ち上げるほどではないニッチなソリューションを可能にすることについてでした。
再び、記事の最後にこのRecurseという場所へのリンクに気づきました。今回はもう少し読み込み、あちこちクリックしてみました。この場所には、私に合うであろう多くの要素があるように思えました。
しかし、独学のコーダーである私に十分なコンピュータサイエンスの知識があるか、そしてイングランドの公営住宅出身の私に文化的な適合性があるか、確信が持てませんでした。応募しませんでした。私の否定的な考えが勝ってしまったのです。
でも、サイトはブックマークしました。
数日後の夜、キャリアや人生の状況について何か考えている最中に、自分が十分なことをしていない、何も進歩していないと感じていました。以前読んだRecurseという場所のことを思い出しました。
そこでブックマークを探し出し、応募書類の記入を始めました。なぜやらない?
応募プロセス Part 3 of 8
「始めた者は半分終えたも同然。知る勇気を持て、始めよ!」(ホラティウス)
このプロセスを真剣に受け止め、合格のチャンスを公平に与えたいと思いました。応募を決めたと同時に、私はマインドセットを切り替えました。これは、フルタイムの仕事やその他の重要な検討事項に応募する際のマインドセットに似ています。
私は非常に長い間自営業だったので、このようなプロセスには慣れていませんでした。そのため、応募を始める前から、この切り替えはすでに私にとって興味深く、役立つものでした。
応募プロセスには、主に3つのステップがあります。
1. 書類選考
これは、簡単なフォームに記入する以上の、より複雑なものでした。通常の個人情報に加え、長文の回答を必要とする質問もありました。これにより、自分を表現し、物語を語る機会が生まれました。
RCは、単に定量的な情報だけでなく、質的な側面から私という人間を理解しようとしているように感じました。それが気に入りました。
2. 面談
これは、快適でインフォーマルなZoom通話でした。私の場合は、RCの卒業生との会話(チャットのようなもの)でした。私たちは気楽な会話をし、少し笑い合い、共通の興味を持っていました(このパターンはRC全体で繰り返されました。誰とでも一緒に過ごしやすく、共通点は…共通でした)。
3. ペアプログラミング
この段階で少し不安を感じました。ペアプログラミングは初めてでした。ペアプログラミングについては、多くの話を聞いてきました。職場でやったり、就職活動の面接の一部として使われたり。どうすればいいか分からなかったのです。
応募プロセス中にRCから読んだいくつかの情報で、ペアプログラミングはテストではなく、ストレスを感じる必要はないことが明確になっていました。それは、私がコーディングの問題にどうアプローチするか、そして共同作業中にそれらをどう伝えられるかを知るためのものだと理解しました。
ペアを組む内容については、いくつかの提案されたアイデアから選ぶことができます。アイデアは、コンピュータサイエンスの話題から、私が日常的なプログラミングタスクと呼ぶものまで多岐にわたります。自分で提案することもできます。目標は、コードを書く能力と、それと思考プロセスを伝えられることを示すことだと思います。
提案の一つに、何らかのスペースインベーダーゲームを作成するというものがありました。私は以前作った別のゲームからゲームエンジンの基礎をすでに持っていたので、それを一般化し、スペースインベーダーに作り直す機会を得ました。
私は別の素晴らしい人物、これも卒業生でしたが、親切で協力的で話しやすい人とペアを組みました。偶然ですが、私が書く他のどのコードとも異なり、私のスペースインベーダーにはいくつかのバグがありました。そこで、それらのバグをいくつか一緒に修正しました。
短いセッションで、あっという間に時間が過ぎました。実際、楽しかったです。
応募プロセス自体が有益でした。バッチに受け入れられるかどうかに関わらず:
- プログラマーとしての「これまでの私の物語」や目標など、いくつかの考えを明確にしました。
- (素敵な)見知らぬ人と数回Zoom通話をし、ビデオ通話に慣れるのに役立ちました。
- 初めてのペアプログラミングも少しだけ体験しました!
すでに、この試みから得たものがありました。バッチに招待されなくても、私はすでに得をしていたのです。
RCの文化 Part 4 of 8
レコーサー(Recursers)であることの感覚。
RCは本当に参加する価値のある素晴らしいもので、たくさんの志を同じくする人々に出会える、非常に社交的な体験です。プロジェクト全体は、知的で善意のある人々によってよく考えられています。彼らは、驚くほど優秀でありながら、親切で歓迎的な応募者を選び出すことに成功しています(私がどうやって紛れ込んだかは気にしないでください!)。誰と話しても、あなたは好意的に受け入れられると確信できます。
最初から、誰もがZulipで自由にメッセージを送ることが奨励されており、いきなりDMを送っても大丈夫であることが明確にされています。この小さな詳細でさえ重要です。考えすぎたり、誤解されることを心配したりする傾向のある私たちにとって、突然誰かにDMを送ることは曖昧さに満ちている可能性があります。それが「受け入れられている」と知ることは、リラックスしたフレンドリーな雰囲気づくりに貢献しました。
私より若い人も、年上の人もいました。経験豊富な人も、そうでない人も。多くはコンピュータサイエンスの正式な教育を受けていましたが、私のように独学の人もいました。中には現在教育を受けている人もいました。教育者自身もいました。
確信はありませんが、バッチごとに、共通の興味を持ちそうな人々の組み合わせを作るために、何らかの思考が適用されているのではないかと思います。例えば、私のバッチでは、視覚的またはグラフィカルに創造的なものに興味がある人が多かったようです。私のバッチでは、私たちのようなアーティな人々が一緒に集められたのかもしれません…あるいは、RCは自然にそのようなタイプのコーダーを引き寄せているのかもしれません。
いずれにせよ、それはうまくいきます。
完全リモートでの参加 Part 5 of 8
千マイル離れた場所からRCを最大限に活用する。
リモート参加には、いくつかの追加の課題があるかもしれないと分かっていました。時差。ZoomとZulip(Slackに似たメッセージングアプリ)のみでのコミュニケーション。
応募プロセス中に、誰かが親切なアドバイスをくれました。完全にリモートで参加する者として、Zulipで人にメッセージを送ったり、イベントに参加したりすることで、自分を目立たせる努力をする必要があるということでした。ハブに物理的にいる人々は、自然にお互いにぶつかってチャットしたり、対面で時間を過ごしたり、物理的/ハードウェアプロジェクトで協力したりします。リモート参加者には、これらのどれも適用されません。
予想通り、時差で少し、しかし管理可能な問題がありました。あなたのバッチはフルタイムのコミットメントであり、平均して丸一日(少なくとも6時間)参加することが期待されます。カレンダーイベントはニューヨーク時間で行われるため、英国にいる私にとっては、RCのコアタイムは午後4時に始まり午後10時に終わりました。
私は自然に早起きで、通常は午前5時頃に起きます。睡眠スケジュールを調整するのは、簡単で迅速な作業ではありません。これは、私が長時間働くことを意味しました。最初の1週間ほど、足場を固めるのに費やしました。
私の毎日のルーティン
私のバッチ期間中、英国はニューヨークより5時間進んでいました。最終的に、私はパターンを確立しました。
| 07:00 - 11:15 | 午前中のコーディング | 私の「メインプロジェクト」に取り組んでいました。比較的慣れているものに集中して取り組むのに良い時間でした。 |
| 11:30 - 12:30 | ボディダブル | それ自体が非常に有益でしたが、毎日の習慣として、私の「午前中のコーディング」と「RCの日」を分ける便利な区切りとなりました。 |
| 13:00 - 15:00 | 食事と昼寝 | カーテンを閉めて1時間横になることを心がけました。眠れることもありましたが、そうでなくても、画面から離れて少し心身をリラックスさせることができました。 |
| 16:00 - 22:00 | メインのRCデー | RCカレンダーからのアクティビティ、コーヒーチャット、「コンフォートゾーンの外」でのコーディング。 |
(異なるタイムゾーンの人々は物事の対処方法が異なる場合があるという理解があるため)私に強制されたわけではありませんが、毎日午後10時まで参加したいと決めました。午前中に時間を費やし、たくさんのコードを書いていることは分かっていましたが、それでも自分の規律のために「フルRCデー」を目指したいと思いました。
このコミットメントを pretty well 守ることができ、数回早く切り上げたときも、数時間ではなく数分でした。
夜遅くの時間帯は、午前中のコーディングよりも集中力が低いこともありました。このコアRC時間は、アクティビティやチャットで自然に中断され、私は探索的なもの、より新しく馴染みのないものに取り組む傾向がありました。
私がした小さな譲歩(あるいは少なくともスケジュールの妥協)は、一日の最後の数時間でのZoom通話を避けたことです。ほとんどのコーダーのように、寝るまでコーディングできますが、その後の時間帯では、対面でのチャットのために社会的なエネルギーを生み出すのが難しいことに気づきました。これは、疲れのせいで私の態度が平坦になったり、無関心に見えたり…あるいはあくびをしたりするのではないかと心配したためでもあります!
しかし、最終的にはすべてうまくいきました。
アクティビティ Part 6 of 8
バッチ期間中に時間を過ごす方法のいくつか。
RCは自己主導です。毎日イベントでいっぱいの共有カレンダーがありますが、参加するかどうかはあなた次第です。イベントを欠席しても「失敗」することはありません。もしあなたが全く関与していないように見える場合、ファカルティが、このバッチに参加するのに適切な時期かどうかについてあなたと話すだろうと信じています。これは非常に合理的だと思います。
コード隠者になる傾向に抵抗し、もう少し多くの任意参加イベントに参加するべきだったかもしれません。他のレコーサーとのチャットでよく聞かれるのは、「バッチ期間中は時間が本当にあっという間に過ぎる」ということです。誰もが望むすべてをやり遂げることができるとは思えません。
時間の使い方には多くの方法があります。毎日異なるプロジェクトに取り組む人もいれば、バッチ期間中ずっと1つか2つのプロジェクトに深く集中する人もいます。
一般的なアクティビティ
これらはすべてを挙げるには多すぎ、常に変化しています。多くはファカルティによって企画されますが、誰でも(他のレコーサーを含む)プログラミングに関連することなら何でもイベントを作成できます。
大まかなアイデアとして、いくつかの例を挙げます。
- ペアプログラミング演習
- Impossible Day(不可能な日)とImpossible Hour(不可能な時間):失敗すると予想されるタスクに挑戦するという考え方です。
- 古典的なコーディングブックや演習を一緒に進めるグループ(例:私のバッチでは、The Book of Shadersを一緒に取り組んだ人もいました)。
- オーディオプログラミング、GPUシェーダー、システムプログラミング、LLMの使用、LLMのコーディング/作成など、多くの特別関心グループ。
- RCでの進捗を評価し、時間を最大限に活用するためのメタアクティビティ。
- キャリア分析と計画。
コーヒーチャット
これはRCにいる間、私の最も好きな部分の一つでした。サインアップしたいだけ多くの日数(例:「毎週平日」または「月曜日と木曜日」)で「コーヒーチャット」にサインアップできます。チャットにサインアップした日には、ボットがあなたを他の誰かとマッチングし、短いインフォーマルなミーティング/チャットを行います。完全にリモートで参加する私にとっては、これはZoomで行われました。
バッチ期間中にこの方法で数十人の人々と会いました。RCが機能する魔法のようなところは、多様な趣味や興味を持つ様々な人々に出会うにもかかわらず、彼らが知的で、親切で、あなたが話したいことすべてに興味を持っていることが「保証されている」ことです。会話は、心地よい15分間の自己紹介や一般的なチャットから、興味が特に重なる人と出会った場合には、様々なトピックにわたる数時間に及ぶ長話まで様々です。
長年自営業で、リモートワークをし、内向的な傾向のあるソロ開発者である私にとって、コーヒーチャットは貴重な経験でした。多くの人と同じように、私は少し社交不安があり、時々考えすぎたり、見知らぬ人と、また対面で会うという考えに恐れを感じたりしました。しかし、私はそれらの感情を乗り越え、一度も後悔したことはありません。
一度か二度、特にバッチの終盤で、時間が飛ぶように過ぎていくように感じられたとき、自分に言い訳をしてチャットをスキップしたことを認めます。しかし、それは私がもっと素晴らしい人々に出会う機会を逃したことを意味するので、私の方が愚かでした。
プレゼンテーション
毎週木曜日(英国の私にとっては夜)に、約1時間の短いプレゼンテーションが行われます。ここでは、仲間のレコーサーが5分間、スライドとデモンストレーションを交えて、現在興味を持っている、あるいは取り組んでいるコード関連のことについて話します。
トピックの範囲は信じられないほど広いです。ほとんどは私の専門外でしたが、それでもすべて興味深いものでした。5分という長さは、 nice な一口サイズの時間の塊なので、それに役立ちます。
バーチャルチェックイン
完全にリモートで参加する人々のために、週に数回バーチャルチェックインがあります。これらは、バッチメイトと、何に取り組んでいるか、どのような問題があるか、次に何をするかについてチャットする、リラックスしたミーティングです。非常にフレンドリーでインフォーマルですが、集中力を維持し、RCでの時間を最大限に活用するのに役立ちます。
これらは明らかに、リモート参加者として利用できたものです。ハブにいる人々には、他にもいくつかの活動がありました。例えば:
- ハードウェアプロジェクトでの共同作業(リモートでも不可能ではありませんが、対面の方が楽しいと思います)。
- 食事や飲み物など、地元の社交的な集まり。
- 非常にクールなビンテージエレクトロニクスラボ。
- 潜在的な雇用主とのミート&グリート。
- テック本のライブラリ。
- …椅子の積み上げ(私は自分で目撃しました!)。
追加の特典 Part 7 of 8
バッチ終了後も続く、いくつかの素晴らしいもの。
卒業しない
RCでのバッチの後、あなたは生涯の卒業生になります。これは、Zulipで人々にメッセージを送るための組織に永久にアクセスでき、プレゼンテーションを提供したり見たり、多くの活動に参加したりできることを意味します。キャリア部門から助けを得ることもできます。
20年以上プログラマーとして働いてきましたが、他のプログラマーを驚くほど知りません!キャリアの初期には、デザイナーと一緒に働く傾向があり、私だけが開発者でした。その後、自営業になり、リモートで、そしてはるかに小規模な企業で働くようになりました。現在の従業員のスキルセットにはないものをコーディングするために、外部の人間として呼ばれることがよくありました。プロジェクトを完了して、私は去りました。
RCで他の多くのプログラマーに出会い、非常に社会的に安全な方法で彼らと交流できるのは素晴らしかったです。競争はなく、相互の助けと関心だけでした。私たちは皆同じチームでした。
バッチを終えてから数ヶ月経ちましたが、今では友人だと考えたり、思ったりできる他のレコーサー数人と定期的に連絡を取り合っています。
キャリアサポート
RCでの期間中および終了後、キャリア部門にアクセスできます。彼らは非常に協力的で、以下のような重要なことに役立ちます。
- CV/履歴書の助言。
- 求職活動。
- 模擬面接。
RCの他のファカルティと同様に、キャリア部門の全員が親切で、協力的で、時間を惜しみなく提供してくれます。
彼らがあなたを仕事に就かせた場合、雇用主はRCにあなたを見つける手助けをしたことに対して支払いをします。あなたは何も支払う必要はありませんが、これはRCがあなたに仕事を見つけるのを助けることに利益があることを意味します。なぜなら、彼らが成功すると、それが彼らの資金調達に役立つからです。これは良い、健全なシステムだと思います。RCのような組織を維持するには費用がかかり、何らかの方法で資金調達する必要があります。このようにすることで、私のような人々はRCに無料でアクセスでき、隠れたコストや裏の動機はありません。すべてがオープンです。
return(); Part 8 of 8
私が得たもの。
RCには、できるだけ期待を持たずに入りました。何人かの人に会い、何かを学び、何かを作ることを望んでいました。実績は確かに解除されましたが、より具体的には、私が得たものは以下の通りです。
- Algernonアプリ - Flutterでオーディオビジュアライザーアプリを構築し、リアルタイムオーディオ処理、高速フーリエ変換、フラグメントシェーダーについて学びました。
- caldavtuiアプリ - ターミナル用のTUIカレンダーアプリ。これはImpossible Dayプロジェクトとして始まり、「ああ、これは実際にできる!」と発展し、今では私の長期プロジェクトになっています。すでにうまく動作していますが、追加したいことがたくさんあり、関連する仕様(例:iCalendarとCalDAV)に関する知識を深めています。
- ボディダブル/ペアリング - これは簡単なプロセスです。誰かとペアを組み、1時間、邪魔をされないようにコミットして作業します。特に在宅勤務者である私にとって、軌道に乗るのを助け、作業中の全体的な進捗状況を把握するのに役立ちます。
- Godotゲーム開発への習熟 - 他のRCメンバーとペアを組み、彼がGodot初心者として学んだことを教えてもらいました。その後、LLMと1日、そして自分で1〜2日過ごしました。これらを組み合わせた数日間で、Godotに慣れることができました。もちろん、まだ探求していないことや学ぶべきことはたくさんありますが、以前にいくつかのゲームを構築した経験がある者として、Godotで発生するあらゆるプロジェクトに取り組む準備ができたと感じています。方向性が分かりました。
- C/Goの習熟度向上 - それぞれに数十時間費やした後、私はほぼゼロの知識から、
CとGoの初心者/中級レベルになりました。再び、学ぶべきことはたくさんありますが、今はある程度の快適さを感じており、これらの言語でプロジェクトを開始するという考えに恐れを感じなくなりました。 - キャリアと将来の方向性についての明確化 - キャリアに焦点を当てたいくつかのワークショップを通じて、私のキャリア全般と、将来何が私に適しているかについて構造的に考えることができました。
- Zoomへの慣れ - 対面でのビデオ通話は、現代の職場環境、特にリモートワーカーにとって重要な部分です。RC以前は、Zoom通話、特に見知らぬ人との通話の前に、手の汗をかくような緊張を感じていました。今では、それは私にとってずっと普通のことになりました。
- 人脈/ネットワーキング - 興味を共有する素晴らしい人々がたくさん出会い、そのうちの何人かとは連絡を取り続けています。RCの一般的な雰囲気のおかげで、将来何か理由があれば他の人に連絡することに抵抗を感じなくなりました。
- 更新されたCV - キャリア部門との有益な会話の後、CVを短く明確にするために作り直しました。新しいバージョンには pretty happy です:新しいバージョン。
誇張なしに言えるのは、これらのうちどれか一つでも得られていたら満足していたでしょう。プロセスからすべてを得て出てくることは、私が望んでいた以上のものです。本当に素晴らしいです。
「意思決定能力を鍛える」というアクティビティ中に、RCでの時間について最も誇りに思っていることを書き留めるように求められました。小グループでそれらを話し合いました。メイングループに戻ったとき、私たちの一部は話し合ったことを共有しましたが、私は静かで、自分のことは自分の中に留めておきました。
私にとって、それをほとんどやらずに、RCから得たすべてのものを逃す可能性があったことを考えると、プロセスの1つの部分が最も重要であると際立っていました。
私が最も誇りに思っていることは、そもそも応募したことです!