【書評】『プログラムはなぜ動くのか』は難しい?初心者がつまずく理由とは
はじめに
こんにちは、たけとりと申します。
私は今年2025年から、Webエンジニアに転職した新人エンジニアです。
プログラミングスクールを卒業し、Ruby Silverの資格も取得した私ですが、実際にエンジニアとして働き始めると、知識不足をひたすら痛感しました…。
特に、実感したのは「基礎が足りていない」ということです。
- プログラムってどうやって動いているのか?
- コードの中身の仕組みは?
こういった基本が分かっていないままで、プログラミングをしている毎日に危機感を覚えました。
そこで、私が手に取ったのが『プログラムはなぜ動くのか 第3版』です。
結論から言うと、この本は「仕組みを理解することの大切さ」に気づかせてくれる名著でした。
私と同じ疑問を持つ駆け出しエンジニアや、IT業界を目指す学生にこそ手に取ってほしいです!
ただし、人によっては「難しい」と感じる部分もあるので、この記事では本書の魅力と、どんな人におすすめかを解説していきます。
『プログラムはなぜ動くのか 第3版』ってどんな本?
本書は、もともと日経ソフトウェア誌の連載をまとめた書籍で、2001年に初版が発売され、2007年に第2版、そして2021年に最新の第3版が発売されたベストセラーです。
本書は、プログラミングを学ぶうえで欠かせない“根っこの部分”に焦点を当てた解説書です。
単なるコーディングのハウツーではなく、「そもそもプログラムはどうやって実行されるの?」といった根本的な仕組みを丁寧に解説しています。
書誌概要
| 書名 | プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識 |
| 著者 | 矢沢 久雄 |
| 発行年 | 2021年 |
| 出版社 | 日経BP |
| ページ数 | 308ページ |
章立て
本書は、次のような章立てで構成されています。各章は独立したテーマで展開されており、途中から読み進めることもできます。
- プログラマにとって CPU とはなにか
- データを2進数でイメージしよう
- コンピュータが小数点数の計算を間違える理由
- 四角いメモリーを丸く使う
- メモリーとディスクの親密な関係
- 自分でデータを圧縮してみよう
- プログラムはどんな環境で動くのか
- ソース・ファイルから実行可能ファイルができるまで
- OS とアプリケーションの関係
- アセンブリ言語からプログラムの本当の姿を知る
- ハードウエアを制御する方法
- コンピュータに「学習」をさせるには
おすすめポイント
ハードウェアとソフトウェアの「つながり」が理解できる!
エンジニアとして働き始めたばかりの方は、「とりあえず動くコードは書けるけど、なんで動いているのかはよくわからない……」というもどかしさを感じていないでしょうか。
私自身、まさにそうでした。
それなりのコードを書くことはできても、それがどのようにコンピュータ内部で解釈・実行されているかは理解できておらず、まるでブラックボックスのように感じていました。
しかしこの本を読んで、「CPUって実際なにしてるの?」「メモリとプログラムってどう関係してるの?」などの疑問が次々とクリアになりました。
読み進めるうちに、今まで「なんとなく」理解していた部分が、「そういうことだったのか!」という納得に変わっていきました。
ハードウェアとソフトウェアの関係を本質的に理解したい初心者にとって、最初の一歩として最適な一冊と言えると思います。
IPA試験の対策にもなる!
本書は、基本情報技術者試験や応用情報技術者試験の対策本としても非常に役立ちます。
試験範囲であるハードウェア・ソフトウェアといった基礎知識が、実際のプログラムの動作と結びつけて解説されているので、知識の丸暗記ではなく、本質の理解につながります。
さらに、各章の冒頭には「ウォーミングアップ」というクイズがあり、自分の理解度を確認しながら読み進められるのも嬉しいポイントです。
たとえば、以下に第1章11頁からクイズを引用します。
基本的な問いですが、意外とスッと答えられないものもあるのではないでしょうか?
- プログラムとは、何ですか?
- プログラムの中には、何が含まれていますか?
- マシン語とは、何ですか?
- 実行時のプログラムは、どこに格納されていますか?
- メモリーのアドレスとは、何ですか?
- コンピュータの構成要素の中で、プログラムを解釈・実行する装置は何ですか?
本書の難易度は?初心者がつまずきやすいポイント
本書について調べると、「名著だけど難しい」というレビューをよく見かけます。
そこでここでは、実際に読んだ私の体験をもとに、以下をお伝えします。
- どんな人にとって難しいのか
- どこでつまずきやすいのか
結論としては、本書は「完全初心者にはやや難しく、基礎学習経験者向け」です。
私はプログラミングスクールを卒業し、Ruby Silverも取得した状態で本書を読みました。
その前提でも、最初からスラスラ理解できたわけではありません。
ただ、私は基本情報技術者試験を勉強中だったので、覚えた知識と結びつけながら本書を読むことで、「試験で覚えた用語の意味がやっと腑に落ちた」と感じました。
そのため、次のような方であれば、本書の内容は十分理解できると思います。
- ITパスポート/基本情報技術者試験の勉強をしたことがある
- プログラミング学習を経験したことがある
一方、完全にIT未経験の初心者の方にとっては、本書は難しく感じられると思います。
本書は入門書ではありますが、以下の用語は説明なしに登場してきます。
- サーバー
- メモリ
- 変数
- 関数
そのため、これらの言葉に馴染みがない場合、話についていけなくなる可能性は高いです。
もし、「サーバーやメモリって何?」という状態であれば、まずは図解・イラスト多めの入門書で全体像を掴んでから、本書に戻るのがおすすめです。
たとえば、「図解まるわかり」のような書籍で大枠を理解してから読むと、本書の理解度は大きく変わるはずです。
オススメしたい人、オススメできない人
こんな人にオススメ!
逆にオススメできない人
まとめ:プログラムを「動かす仕組み」に目を向けよう
『プログラムはなぜ動くのか 第3版』は、ただコードを書くだけでなく、「そのコードがどうやって動くのか」を理解したい人にとって、まさに最適な1冊です。
本書を通して、「プログラミング=魔法」ではなく、ロジックと物理の積み重ねであることを再認識しました。
もしあなたが「もっと本質を理解したい」「エンジニアとして底力をつけたい」と思っているなら、ぜひ一度読んでみてください。
関連記事
本書に続いて、同じくエンジニア向けに基礎知識を解説する『なぜ』シリーズ(例:『コンピュータはなぜ動くのか』『ネットワークはなぜつながるのか』『オブジェクト指向でなぜつくるのか』)が刊行されています。
本ブログでも関連書籍のレビューを投稿していますので、興味のある方はぜひご覧ください!
