目的
- コンピュータのブラックボックスをなるべくなくす
- 上記を達成するため、CPUやOSの自作、C言語でのコンパイラ作成を試みる
- 低レイヤの知識を得ることにより、新しいプログラミング言語を学ぶする際に簡単に習得できるようになる(かもしれない)。転職が有利になる(かもしれない)
背景
- 学歴や職歴は工学系情報系と一切関係ない筆者が、普段何気なく使っているコンピュータのブラックボックスを解き明かしたくなったので、アウトプット用として書いている
- 筆者のPC使用レベルは、ITと関係のない仕事でExcelの簡単な関数を必要に応じて調べな使えるくらい
- 誰かに教える立場になったとき、何が分からなかったのか記しておくことにより知識の呪いを防げるかも?
ロードマップ目次
Phase0:全体把握
Phase1:電気基礎
Phase2:論理回路
Phase3:C言語入門
Phase4:CPU自作
Phase5:OS自作
Phase6:コンパイラ自作
興味が出たトピックを深掘り
Phase0:全体把握
- 書籍:
- コンピュータはなぜ動くのか
- 目標:
- ざっくりと全体感を把握する
- 進捗
- ⓪ロードマップ作成までの経緯 2026/1〜
- ①チャットGPTに聞いてみる 2026/2〜2026/3
- ②「コンピュータはなぜ動くのか」を読む 2026/3/29〜
Phase1:電気基礎
- 書籍:
- ゼロから学ぶ電子回路
- 目標:
- 電圧・電流・抵抗の理解
- 回路の基本を理解
- 進捗:
- ①「ゼロから学ぶ電子回路」を読む2026/4/14〜23
- ② 中学理科・高校物理の復習2026/4/27〜
Phase2:論理回路
- 書籍:
- ゼロから学ぶデジタル論理回路
- 目標:
- AND/OR/NOTの理解
- 加算器の理解
- フリップフロップ…?🤔
- それがレジスタになるの?🤔
Phase3:C言語入門
- 書籍:
- 苦しんで覚えるC言語
- コンピュータはなぜ動くのか(復習)
- プログラムはなぜ動くのか
- 目標:
- C言語を通してプログラミングを学習
- 進捗:
- ①苦C 2026/4/1〜
Phase4:CPU自作
- 書籍:
- コンピュータシステムの理論と実装
- CPUの創り方
- 自作エミュレータで学ぶx86アーキテクチャ
- 目標:
- 上記書籍の達成を試みて、コンピュータの基本設計(※)を学ぶ
※アーキテクチャっていうらしい。
- 上記書籍の達成を試みて、コンピュータの基本設計(※)を学ぶ
Phase5:OS自作
- 書籍:
- 試して理解 Linuxのしくみ
- 30日でできる! OS自作入門
- UNIXという考え方
- 目標:
- 上記書籍の達成を試みて、OSの基礎を学ぶ
Phase6:コンパイラ自作
- 書籍:
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- 目標:
- 上記書籍の達成を試みて、コンパイラ(※)を学ぶ
- C言語のコーディング力向上
※よく聞くC言語やJava等のプログラミング言語を、コンピュータ側が理解できる機械語へ翻訳するやつのこと。
興味が出たトピックを深掘り
- ネットワーク:
- インターネットが繋がる0.2秒に、何が起きているのか?(ゆるコンピュータ科学ラジオより)
- 基礎からわかるTCP/IP ネットワークコンピューティング入門
- ネットワークはなぜつながるのか
- マスタリングTCP/IP 入門編
- セキュリティ:
- ホワイトハッカー入門
- プロフェッショナルSSL/TLS
- アルゴリズム:
- 問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本
- プログラミングコンテスト攻略のためのアルゴリズムとデータ構造