実は読み終わって大分時間がたっていたりします。一か月前ぐらいには読み終えていたと思います。twitterで「CPUの創りかた」を読み始めるとか宣言していた時期ですね。ブログのネタはいくつかあるのですが、なかなか書く時間がないという。まー、「取らない」の間違えで、言い訳ですね。別に言い訳なんてしなくてもいいんですけども。本題さて「プログラムはなぜ動くのか」ですが、結論からいうと、この本を読んだだけではプログラムがなぜ動くのかはわからないと思います。CAPTCHA※ちなみに僕が読んだのは第1版です。「〇〇〇はなぜ×××か」シリーズにしたくて、このようなタイトルになっただと思います。この本はプログラムが動くうえで必要な機器・機構とその仕組みの説明が割と平易な文章で紹介されています。CPU、メモリ、OSなど。これらの仕組みを1つ1つ理解して、なるほどだから動かくのか、と読者の努力次第で到達できるのとは思います。どちらかというと「どのようにプログラムは動くのか」という名前のほうがしっくりくる気がします。なかには浮動小数点数(コンピュータで少数を取り扱う仕組み)や圧縮ファイルに関するものなど、直接的に「プログラムがなぜ動くのか」に関係のない章もあります。悪い本かというとそうではないと思います。浮動小数点数の仕組みなどは、不勉強な僕にとってはとても有益でしたし、コンピュータ関連を生業にする人はどれも知ってて損はない(知っているべき)知識が平易な言葉で説明してあります。多少プログラミングをしたことがある方を想定にしている気がします。IT用語が説明なしでバシバシ使われているという意味で。いう意味では、この本は駆け出しのプログラマが、いわゆるソフトウェアの「低レベルなレイヤー(コンピュータの物理的な側面に比較的近い概念たち)」の知識を拡充するためのきっかけになる本だと思す。駆け出しであっても全くの初心者が1人で読むのは少しつらいと思うので、一人で読む場合は、研修が終わってからか現場に出て数か月たった後に読むとちょうど良い内容になっていると思います。各章はCPU、メモリなどわかりやすくテーマが決まっており、テーマをより深く理解するための、はじめの入り口になっているという感じの本です。良くも悪くも広く浅くソフトウェアの「低レイヤー」の内容をそこそこ網羅した本だと思います。ある程度経験のあるプログラマであれば、既知の内容が多いと思います。僕は2進数の章とかは、ほとんど読み飛ばしに近かったと思います。一応、プログラマにとっては復習や知識の確認にはなると思います。各章のタイトルを見てある程度関連する技術や概念、名詞が思い浮かぶ人は読まなくていいと思います。各章のはじめにクイズ(?)があるので、それだけささっとやってみて腕試ししてみるのもいいかもしれません。各章は分離されており、その章ではじめて出現する用語などは都度解説があったような気がします(なんとなく、各省の原稿をバラバラに時間をおいて執筆しただけのような印象もあります。そんなことないとおもうけども)。そのため、技術書にしては珍しく、気になる章だけ読むという読み方が許される本です。僕が購入したきっかけは、疎かにしていた浮動小数点数の理解とOSがどのようにプログラムを実行するかを理解(確認)するために購入しました。浮動小数点数についてはとてもよかったです。これをきっかけにより踏み込んだ知識も仕入れることができるようになったと思います。OSに関しては、もう少し踏み込んだ内容がほしかったなーといったところですが、ある程度は参考になりました。カーネル」を読むまで取っておこうと思います。参考のため各章のタイトルだけを引用させていただきます。自分でデータを圧縮してみようプログラムはどんな環境で動くのかソース・ファイルから実行可能ファイルができるまでOSとアプリケーションの関係アセンブリ言語からプログラムの本当の姿を知るハードウェアを制御する方法コンピュータに「考え」させるためにはレッツ・トライC言語!引用元https://www.amazon.co.jp/dp/toc/4822281019/ref=dp_toc?_encoding=UTF8&n=465392https://www.amazon.co.jp/dp/toc/4822283151/ref=dp_toc?_encoding=UTF8&n=465392結論プログラムを書き始めて2~3か月の駆け出しのプログラマにとってはとても良い本。月別アーカイブ参加グループプログラミングはてなブログをはじめよう!tyahhaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。