『コンピューターはなぜ動くのか』を読んだ
動機・期待していた内容
掲題の通り、矢沢 久雄著『コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~』を拝読しました。
ちょっと前に『[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】』を読んだり、UdemyでRustの勉強をしたりした際に、より低レイヤーの知識を獲得しないとちゃんと理解できないなと痛感したためでした。一方で、私は普段の仕事ではTypeScriptやPythonなどを書いているものの、デプロイ先はサーバーレス環境だったりするので、CPUやメモリを意識することはほとんどなかったため、まずは入門書的なもので全体感をつかみたいなというのが本書を手に取った動機であり、期待していた内容です。
目次
第1章 コンピュータの3大原則とは
第2章 コンピュータを作ってみよう
第3章 一度は体験してほしいアセンブラ
第4章 川の流れのようにプログラムは流れる
第5章 アルゴリズムと仲良くなる7つのポイント
第6章 データ構造と仲良くなる7つのポイント
第7章 オブジェクト指向プログラミングを語れるようになろう
第8章 作ればわかるデータベース
第9章 ネットワークコマンドでネットワークの仕組みを確認する
第10章 データを暗号化してみよう
第11章 そもそもXMLって何だっけ
第12章 SEはコンピュータ・システム開発の現場監督
巻末付録 コンピュータの回路
印象に残ったところ
第2章
巻末についている回路図を使用して、鉛筆で回路をなぞりながら、CPU(レジスタ、クロックジェネレーター)とメモリ、I/Oを繋いでいくことで、配線を疑似体験することができます。
データ線、アドレス線、制御線と段階を追って配線をしていくことで、どのようにCPUが動作しているかをよく理解することができました。
第3章
単純な数値の足し算を題材にして、CASL Ⅱというシミュレーターを使用して、アセンブラを描いてみるという内容でした。
私はMACを使用しているので記載通りに動作確認をできなかったのですが、図と記述を注意深くみることでよく理解することができました。
他の章
仕事でも触っている部分でしたので比較的スラスラと読むことができました。
最後に
本書では、低レイヤーから始まり、アルゴリズムやデータ構造、OOP、DB、ネットワークなど多岐にわたる分野についてわかりやすくまとまっています。
刊行年が古いのもあり、一部古い内容もありますが、基本的には現代でも通用する基礎としての内容になっていると思います。
私のような歴浅のソフトウェアエンジニアにとっては色々な知識を俯瞰できる良書であると感じました。
Discussion