今日、少し衝撃を受ける GitHub リポジトリを見つけた —— build-your-own-x

正直なところ、475k+ stars もあるプロジェクトを今日まで知らなかったのは、少し後知恵だった。でも考えてみれば、「保存はしたけど実践はしてない」タイプのリソースは、早く知るより適切なタイミングで知る方が大事かもしれない。

これは何か

これは厳選された技術チュートリアルの合集で、核心理念はファインマンの言葉から来ている:「作れないものは理解していない」。

リポジトリにはコードがない。あるのはリンクだけ —— だが、それぞれのリンクは「ゼロから何かを作る」詳細チュートリアルへと繋がっている。概念の解説ではなく、コードを書きながら実装する手順書だ。

カバーする技術分野

ディレクトリをざっと見ただけでも、カバー範囲はかなり広い:

カテゴリチュートリアルの例
3Dレンダラーレイトレーシング、ソフトウェアレンダラー、ボクセルエンジン
AI/MLLLM、拡散モデル、ニューラルネットワークのゼロから実装
データベースRedis、SQLite、B+Treeストレージエンジン
開発ツールGit、Docker、Shell、正規表現エンジン
システム低層OS、コンパイラ、VM、メモリアロケータ
ネットワークBitTorrentクライアント、Webサーバー、TCP/IPプロトコルスタック
フロントエンドフレームワークReact、Redux、Virtual DOMの簡易版実装
ゲームテトリス、Flappy Bird、RPG、物理エンジン
ブロックチェーン暗号通貨、PoW/PoSコンセンサスメカニズム

各カテゴリには複数の言語版チュートリアルがある(C/C++/Rust/Go/Python/JSなど)。自分の技術スタックに合わせて選べる。

なぜこのプロジェクトに価値があるか

1. 「知っている」と「できる」の間の溝を埋める

いくらアーキテクチャ図を見たりソースを読んだりしても、実際に作ってみるのには勝てない。これらのチュートリアルは、本当の意味で低層メカニズムを理解するよう強制してくれる。

2. コントロール可能な学習粒度

原理をさっと知りたい?200行コードの簡易版を選べばいい。深く理解したい?完全なシリーズチュートリアルを選べばいい。「おもちゃ実装」から「プロダクション級コード」までカバーしている。

3. 言語に依存しない学習パス

同じ概念(例:データベースのB+Tree実装)を、Cで書いてメモリレイアウトを理解し、Rustで書いて所有権を理解し、Pythonで書いて論理を検証する。同じ技術を、複数の視点から学べる。

私の活用計画

フロントエンド開発者として、やってみたいチュートリアルをいくつかマークした:

  • React簡易版実装(約160行JS)—— Fiber以前の調整メカニズムを本当に理解する
  • Virtual DOMをゼロから書く—— diffアルゴリズムの実際の動作を把握する
  • Promiseの手動実装—— イベントループとマイクロタスクを徹底的に理解する

もう少し先の目標として:

  • データベースストレージエンジン—— B+Treeとトランザクションの実装を理解する
  • シンプルなプログラミング言語—— 字句解析からバイトコードインタプリタまで

対象となる人

  • 面接準備:技術の低層実装を深く理解し、面接で話せるネタを持つ
  • 技術の壁期:具体的なプロジェクトで学習を駆動し、「チュートリアル疲れ」を摆脱する
  • 転職/分野展開:新領域(例:システムプログラミング、AI)に触れたいが、何から始めればいいかわからない
  • 純粋な好奇心:「これは実際どう動いてるんだろう」を知りたいだけ

一つの注意点

このプロジェクトの最大の問題は:簡単にブックマークの肥やしになりがち、ということ。

私の提案:最も興味のあるものを一つ選び、この週から始める。多くを貪らない、一つを完成させることの方が、100個を保存するより役に立つ。


属性内容
リポジトリhttps://github.com/codecrafters-io/build-your-own-x
ライセンスCC0 (パブリックドメイン)
Stars475,587
運営CodeCrafters, Inc.

もし「ゼロから車輪を作る」経験がある人、またはチュートリアルを選んで始める予定の人がいたら、学習ノートを記録してみてほしい。