1 min read

矢沢久雄著、「プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識」を読んだ感想

Table of Contents

現在は(WEB)エンジニアとして就業しているが、いわゆる基礎の部分の知識が完全に抜け落ちていることがずっとコンプレックスになっていた。

正確には高専時代に学んだはずだが、当時プログラミングには全く興味がなかったこと、また、最初のキャリアがエンジニアじゃなかったことなどが複合的に重なって、完全に記憶から消え去ってしまっている。

なので今年はそれを補完できるように知識を付けていくことを目標にしていて、その第一弾として、「プログラムはなぜ動くのか 第 2 版 知っておきたいプログラムの基礎知識」を読んだので、備忘録として残しておく。

読んだ本

読んだ本はこちら。矢沢久雄著、「プログラムはなぜ動くのか 第 2 版 知っておきたいプログラムの基礎知識」だ。

たまに Twitter とかブログ記事で見かけるので存在自体は知っていて、気にはなっている本だった。値段がなぁ…というのがネックで買ってなかったが、たまたま Kindle でセールだったので購入。半額の 1,296 円で購入できたのでお得だった(と言い聞かせる)。

どういう本だったか

大雑把に言うと 「高級言語で書いたプログラムをコンパイルして、(アセンブラと紐づけながら)それが実行されるときにどう CPU が動いて、どうやって演算して、メモリの確保・開放はどういう風にされているのか。また、その時に OS はどういう役割を担っているのか」 みたいなところの大枠を理解するのに役立つ本だった。

レベル的には、CS の始めの一歩で学ぶ程度(実際「すげー!」と思う部分はなく、記憶を手繰っていく感じだった)。もっと奥の動きを知るには当然この本では全然足りなくて、もっと分厚い鈍器みたいな本が必要。鈍器みたいな本は今後の僕の読書リストに入っているので、奥深い部分についてはその時に学習する予定だ。

それでもまぁ、色んな知識を忘却の彼方に追いやってしまった僕にとっては、ちょうどいいレベルで頭の準備運動になった。

ただ一方で残念な点もあった。

1 つは少し情報が古臭くなっていること。第 2 版ということだが、それでも発刊は 2007 年なので 10 年以上前の本になる。なので、OS は 32bit が通常で〜とか、メモリは最低 512MB は〜みたいな部分があった。まぁ本書の本質とは全く関係ない部分ではあるので、気になる程度だが。

もう 1 つは Windows ベースの話が少し多かったこと。EXE ファイルやら DLL ファイルやら、多分僕らみたいな分野のエンジニアにはあまり必要ないかなという部分に比較的紙面が割かれていた。Windows 向けのコードを書くみたいな機会は今後もない予定なので、ここはもっと汎用的に非 GUI で Linux 上で動かす前提の方がありがたかったな、と感じた。

ともあれ、エンジニアとしては本書レベルの知識は絶対に必要だと思うし、僕みたいに忘れてるとか、そもそも学んでなかったみたいな人は、基礎固めの入門書として読んでみることをオススメする。

なお、さーっと流し読みしてしまったところ(特に本書の後半部分)もあるので、時間を見つけて実際にコーディングしつつ、必要なところは体系的にまとめるつもりだ。