世界を動かす技術を、日本語で。

レクリエーションプログラミング

2026年10月14日原文(cphiri.dev)

概要

Recreational Programming は、純粋な楽しみや好奇心からプログラミングを行う活動。 外部の期待や収益性ではなく、 内発的動機 が原動力。 多様なスタイルやアプローチが存在し、 自己表現や学び の場となる。 失敗や「無駄」も価値ある経験として受容。 キャリアの中でも 好奇心と情熱 を持ち続けることの重要性を強調。

Recreational Programmingとは何か

  • 定義 :仕事やお金、外部要請のためではなく、 プログラミング自体の楽しさ のために行う行為
  • 具体例
    • 仕組みに興味があり、何かを作る
    • 新しい言語を触ってみる
    • 頭の中だけの課題を解く
    • 実際には必要ないツールを作る
    • 思わず笑ってしまうコードを書く
  • 該当しないもの
    • 副業やスタートアップの準備
    • キャリアアップのためのスキル習得
    • チュートリアルの模倣
    • 面接対策のコーディング練習
    • 他人の期待に応えるための制作
  • 本質的な違い
    • 内発的動機 vs. 外部からのプレッシャー
  • 意義
    • 内的動機との再接続で 燃え尽き防止
    • 低リスクな探索 で直感を養う
    • 長期的な情熱の維持
    • 思いがけない発見や学びにつながる

Recreational Programmingの多様なスタイル

  • Style 1: The Live Explorer
    • ストリーミングやブログで公開制作
    • 失敗やバグも含めた プロセス共有
    • コミュニティがエネルギー源・モチベーション
    • 実用ツールから実験的プロジェクトまで幅広い
  • Style 2: The Deep Diver
    • 仕組みの深い理解に没頭
    • 複雑なシステムの おもちゃ版実装
    • 学び重視、成果物のリリースは重視しない
    • 複数の「学習用実装」を持つケースが多い
  • Style 3: The Creative Technologist
    • コードを 芸術的表現 の手段として利用
    • ジェネラティブアート、音楽合成、インスタレーション
    • 技術が創造性のビジョンに奉仕
    • 他分野との融合が多い
  • Style 4: The Problem Solver
    • 個人的な小さな不満をコードで解決
    • 「自分用に十分」な解決策を追求
    • 結果的に他人にも役立つツールが生まれることも
  • Style 5: The Language Explorer
    • 新しい言語やパラダイムを常に試す
    • 同じ課題を 異なる言語 で実装
    • 珍しい言語や実験的な技術への好奇心
    • コードを 知的探求 の対象と捉える

すべてのスタイルに共通するパターン

  • 「無駄なもの」を作る許可
    • ビジネス的な正当性は不要
    • 好奇心だけが十分な動機
    • 失敗や未完成も価値ある経験
    • ROI(投資対効果)は無関係
  • エネルギーを追う
    • 興味が薄れたらプロジェクトを切り替え
    • 放置されたリポジトリも探索の証
    • 退屈は興味のデータ であり、敗北ではない
  • プロセスの記録・共有
    • 結果だけでなく 過程を公開
    • 教えることで理解が深まる
    • 同じ志向の人とのつながり
    • 意思決定のナレーション
  • 学びのプロセスを受け入れる
    • 新領域では 初心者の心 を持つ
    • 「知らない」ことに居心地の良さ
    • 完成よりも過程重視
    • 進歩>完璧

個人のプログラミング遊び場の作り方

  • 環境構築
    • 専用の「experiments」フォルダやリポジトリ
    • 本番環境の制約なし、 最小限のセットアップ
    • プロジェクト初期化スクリプト
    • バージョン管理は任意
  • おすすめアプローチ
    • 週1回の 小実験 (2~4時間で新しいことを探索)
    • 自作チャレンジ (普段使っているツールのミニ版を作る)
    • かゆいところに手が届くプロジェクト (自分の小さな悩みを解決)
    • 教えながら作るプロジェクト (解説しながら何かを作る)
    • クロスランゲージチャレンジ (同じ課題を異なる言語で)
  • マインドセットの転換
    • 「やらなきゃ」より「もし~だったら?」
    • 完璧より進歩
    • リリースより学び
    • 生産性より好奇心

実例紹介:世界のRecreational Programmerたち

  • Zikani Nyirenda – The Practical Experimenter
    • ブラウザ自動化やファイル整理、Gitユーティリティなどの便利ツールをランダムに作成
    • Go、Rust、Python、Vue、Reactと多言語で実験
    • 「今日解決できる小さな問題は?」の精神
    • github.com/zikani03
  • Jeremiah Chienda – The Full-Stack Experimenter
    • アーキテクチャやフレームワークの多様な探求
    • 実際の課題解決を通じて新技術を学ぶ
    • フルスタックでRecreational Programmingを実践
    • github.com/liwoo
  • Tsoding Daily – The Live Explorer
    • 毎日4時間以上、ゼロからランダムなプロジェクトを配信
    • テキストエディタや自作言語、レイトレーサー等を開発
    • 失敗やデバッグも含めて全過程を公開
    • 「やってみたらどうなる?」の姿勢
  • ThePrimeagen – The High-Energy Problem Solver
    • CLIツールやNeovimプラグインで自身のワークフローを最適化
    • 開発ツールやパフォーマンスへの熱意
    • 他開発者のコード批評やリアクション
    • 最適化やツール開発をエクストリームスポーツ化
  • Casey Muratori – The Systems Deep Diver
    • Handmade Hero:ゲームをゼロから配信開発
    • すべてのコードと設計判断を詳細解説
    • ライブラリ未使用、原理から全て構築
    • フレームワークなしでも現代的なソフトウェアが作れることを実証
  • Ben Eater – The Educational Builder
    • ブレッドボード上でコンピュータを自作し、各部品を解説
    • CPUやメモリ、ネットワークの仕組みを動画シリーズ化
    • 数ヶ月かけて5ドルで買えるものを自作
    • ハードウェアの基礎を分かりやすく魅力的に解説
  • Dan Luu – The Deep Technical Investigator
    • パフォーマンスの謎を掘り下げる詳細なブログ執筆
    • キーボードやターミナル、言語など全てをベンチマーク
    • 「なぜXは遅いのか?」という疑問から数千字のリサーチへ
    • Recreationalな調査が業界全体の問題発見につながる

実践チャレンジ

  • 使っているツールの「最悪バージョン」を作ってみる
  • 気になっていた言語で2時間だけ遊んでみる
  • 小さな問題を解決する様子を記録・公開
  • 面白そうなプロジェクトをforkして改造
  • ライブコーディングや配信に挑戦
  • 唯一のルール:楽しくなくなったらやめること

最後に

  • 目標はこれらのプログラマーになることではない
  • 「なぜプログラミングを始めたのか」を思い出し、好奇心をキャリアと共に持ち続けることが大切

Hackerたちの意見

Tsodingに shout out!彼は俺のお気に入りの趣味プログラマーなんだ。[1] - https://www.youtube.com/@TsodingDaily

└

俺もBisqwitを応援してるよ。

└

もう一人探してるアジア系の人を見たんだけど、彼はOSMの生データから地図を作ったプロジェクトをやってたと思う。Zedみたいな「ニッチ」な言語を使って、GLと直接やり取りしてたんだ。すごく優れたプログラマーの一人だよ。彼の動画は英語で、地図はブルックリンかNYのどこかなんだ。

└

Tsodingの配信はマジで最高。Bisqwitと同じくらい好き。

└

ミスタ・アゾシン!

スクロールの扱いがイマイチだったな。ナビゲーションが制約されてる感じがした。もしかして、キーボードでナビゲートするべきだったのかな?あんまり明確じゃないね。

└

矢印キーの他に、hjkl(vimスタイル)もナビゲーションに使えるらしいよ。

└

ナビゲーションは簡単だったけど、どこにいるのか、あとどれくらい進む必要があるのか全く分からなかったのが嫌だった。まるで世界で一番直感的じゃないHyperCardスタックみたいだった。

└

これ、ライブオーディエンスに向けてプレゼンするために作られた感じだね。

└

前後のボタンが本当に必要だった。長いディバウンスでスクロールホイールを使うのは面倒だったよ。

この定義は、1981年にコンピュータを始めた時の自分を完璧に表してる。ラジオシャックから4Kの8ビットコンピュータを持ち帰ったんだけど、ほとんどお金がなくて、テレビに繋いだんだ。コンピュータに触ったことなんてなかったし、全くの初心者で、箱に入ってたマニュアルだけが頼りだった(意外と良かったけど)。今まで会った誰もが家にコンピュータを持ってなかったし、仕事でも使ってなかったから、コンピュータでお金を稼ぐなんて考えたこともなかった。ただゲームが楽しそうだと思って、プログラミングを学ぶのも面白そうだと思ったんだ。白黒のホビー雑誌から長いリストを打ち込んで、タイプミスを見つけるのが学びの良い方法だった。アセンブラを独学するのは難しかったけど、ドキュメントがなかったからね。全然わからなかったから、電話帳でモトローラを調べて、マニュアルをどこで手に入れられるか電話で聞いたんだ。電話に出た営業の人が同情してくれたのか、CPUのマニュアルを無料で送ってくれた。今でも紫のリファレンスカードを持ってて、一般的なオペコードは全部覚えてるよ(https://colorcomputerarchive.com/repo/Documents/Datasheets/M...)。初めてお金を稼いだのは、18ヶ月後に便利なディスクユーティリティプログラムを書いた時だった。金曜の夜中ずっとそれを仕上げて、土曜の朝に地元のユーザーグループで5ドルでフロッピーにコピーして売ったんだ。140ドル稼いで、初めての28人の顧客を得た。それでソフトウェアを作って売ることにハマった。約40年、3つのスタートアップ、10以上の製品、何百人もの良い人たちを雇って、数百万の顧客と2回のPC Magazineの年間製品賞を受賞したけど、何も後悔してない。楽しむために始めたことが、こんな素晴らしい旅につながった。学びも多かったし、楽しいこともたくさんあった。超おすすめだよ。

└

これは素晴らしい人生の話だね。俺も好奇心旺盛な子供として似たような始まりだったけど、PC Magazineの年間製品賞はなかった!ここには、同じように好奇心から始めて、コンピュータを見たこともない友達がいなかった人たちがたくさんいると思う。今の時代にそれに相当するものはあるのかな?クールな技術が出てくると、数週間以内にスタートアップが何かを売り出すよね。「変わった」子供は今何をしてるんだろう?

Hacker Newsで議論の続きを見る