Build Your Own X:ゼロから全てを作る技術チュートリアル宝庫
今日、少し衝撃を受ける GitHub リポジトリを見つけた —— build-your-own-x。
正直なところ、475k+ stars もあるプロジェクトを今日まで知らなかったのは、少し後知恵だった。でも考えてみれば、「保存はしたけど実践はしてない」タイプのリソースは、早く知るより適切なタイミングで知る方が大事かもしれない。
これは何か
これは厳選された技術チュートリアルの合集で、核心理念はファインマンの言葉から来ている:「作れないものは理解していない」。
リポジトリにはコードがない。あるのはリンクだけ —— だが、それぞれのリンクは「ゼロから何かを作る」詳細チュートリアルへと繋がっている。概念の解説ではなく、コードを書きながら実装する手順書だ。
カバーする技術分野
ディレクトリをざっと見ただけでも、カバー範囲はかなり広い:
| カテゴリ | チュートリアルの例 |
|---|---|
| 3Dレンダラー | レイトレーシング、ソフトウェアレンダラー、ボクセルエンジン |
| AI/ML | LLM、拡散モデル、ニューラルネットワークのゼロから実装 |
| データベース | 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 (パブリックドメイン) |
| Stars | 475,587 |
| 運営 | CodeCrafters, Inc. |
もし「ゼロから車輪を作る」経験がある人、またはチュートリアルを選んで始める予定の人がいたら、学習ノートを記録してみてほしい。