ISBN 9784296001231
コンピュータはなぜ動くのか 第2版 知っておきたいハードウエア&ソフトウエアの基礎知識
概要
ハードウエアからネットワーク・セキュリティまでコンピュータの全体像を一冊で把握する
想定読者
プログラマやSEを目指す入門者、基礎を体系的に押さえ直したい文系エンジニア、高水準言語しか触れてきていない中級者
こんな人には向いていない
- すでにアセンブラやOS原理を実務で扱ってきた経験者には既知事項が大半を占める
- 特定の言語や技術スタック(React/Kubernetes等)の実践スキル習得を急ぎたい人には守備範囲が広すぎる
- 数式・理論中心の計算機科学教科書を期待する場合は記述の深さが不足する
読了後にできるようになること
- プロセサ・メモリ・入出力の基本構造と、それらがどう連携して命令を実行するかを説明できる
- アセンブラ(CASL2)を通じて高水準言語の裏で起きていることをレジスタ・アドレスの粒度で理解できる
- スタック・キュー・リスト・二分木といったデータ構造をアルゴリズムの選択と結びつけて考えられる
- MySQLを用いたデータベース設計の基本(テーブル作成・クエリ・正規化)を実行できる
- TCP/IPとDNSの仕組みをネットワークコマンドで確認しながら理解できる
- 公開鍵暗号方式の原理と、なぜデータ通信に必要かを説明できる
本書のキー概念(章解説)
- 第 1 章 コンピュータの3大原則とは — 入力・処理・出力の原則を短時間で押さえられる導入。後続章の土台になるため飛ばさない
- 第 2 章 コンピュータを作ってみよう — 回路図を手で追うことでハードウエアの実感が得られる章。抽象論に終わりがちな入門書との差別化ポイント
- 第 3 章 一度は体験してほしいアセンブラ — CASL2でCPUとメモリのやり取りを追体験できる。高水準言語のみのキャリアには特に有益
- 第 4 章 川の流れのようにプログラムは流れる
- 第 5 章 アルゴリズムと仲良くなる7つのポイント
- 第 6 章 データ構造と仲良くなる7つのポイント
- 第 7 章 オブジェクト指向プログラミングを語れるようになろう
- 第 8 章 作ればわかるデータベース — MySQLで実際にテーブルを作る構成。概念理解と手を動かす経験を同時に得られる
- 第 9 章 ネットワークコマンドでネットワークの仕組みを確認する — ifconfig・ping・tracerouteを使う実習形式。ネットワーク苦手意識を持つ読者に評価されている章
- 第 10 章 データを暗号化してみよう
- 第 11 章 そもそもXMLって何だっけ
- 第 12 章 SEはコンピュータ・システム開発の現場監督
ハイライト
- ハードウエアの基本的な仕組み(プロセサ、メモリー、入出力)から、ソフトウエアの実際(プログラム、アルゴリズム、データ構造、データベース、ネットワーク)とシステム構築までをカバー。(本書の網羅範囲が最も端的に示されている箇所。一冊で全体像を得られるかを判断する基準になる)
- 「コンピュータを作ってみよう」では「COMET2/CASL2」に対応。プログラム部分はPythonでの記述に一部変更。データベースではMySQLに変更。暗号化では共通鍵暗号方式から公開鍵暗号方式に変更。(第2版での改訂ポイント。2022年時点の標準環境に合わせて更新されており、旧版ユーザーが買い直す根拠になる)
外部からの言及
- PythonやRuby等の高水準言語を学んだ後に読むと、それまで抽象的だったアルゴリズムやデータ構造のイメージがつかめてきたという声が複数見られる。低レイヤを触ってこなかった中級者の補完教材として機能している(qiita)
- アセンブラ章では、簡潔に見える高水準言語の処理が内部ではいかに多くの操作を伴うかが可視化されると評価されている。JavaやC言語の理解を深める副次的な効果を挙げる読者が目立つ(qiita)
- XMLやアーキテクチャ関連の章については理解が難しかったと率直に述べる読者もいる。全章を均等に消化することは難易度が高く、再読や他書との組み合わせを推奨する声がある(qiita)
編集メモ
Qiita検索で確認できた言及記事は5件、累計likes合計は約10件前後。高いバイラル指標はないが、入門層からの読書記録・振り返り記事が複数年にわたって継続的に投稿されており、ロングセラーとしての定番需要は確認できる
読む前に押さえておきたいこと
- 四則演算・16進数・2進数の基本変換ができること(付録の回路図を読む前提になる)
- Pythonまたは任意の言語でifやforを使った簡単なプログラムを書いたことがある程度の経験
学習のコツ
- 第1章でコンピュータの3大原則を把握したら、第3章(アセンブラ)と第9章(ネットワーク)を早めに読むと、自分が現在扱っている言語やインフラとの接続感が得やすい
- 第2章の回路図は読み飛ばしたくなりやすいが、紙に配線を追う作業をするとハードウエアの実感が大きく変わる。難しければ一読後に再挑戦でも十分
- 章末に具体的なコマンドや演習が用意されている章(3・8・9・10章)は、PCで実際に手を動かしながら読むと定着率が上がる
- XML(第11章)は他章と比べて前提知識の要求が高い。Web開発の経験がない段階では飛ばして最後に戻る判断でよい
出版社による内容紹介
『コンピュータはなぜ動くのか』19年ぶり、待望の改訂第2版! 「これからの10年も通用する基本」を身につけよう! ハードウエア、ソフトウエア、データベース、ネットワーク、セキュリティというコンピュータを使いこなすうえで必要な知識をこの1冊で解説します。 ハードウエアの基本的な仕組み(プロセサ、メモリー、入出力)から、ソフトウエアの実際(プログラム、アルゴリズム、データ構造、データベース、ネットワーク)とシステム構築までをカバー。これからプログラマやSEを目指す入門者から、基本をひと通り学びたい文系エンジニア、さらには、もう一度学び直したいベテランエンジニアまで、コンピュータを動かして成果を得ることの楽しさと仕組みを知りたい人に役立つ内容です。 【改訂のポイント】 今後10年通用するよう内容を全面的に更新。具体的には以下の通りです。 ・「コンピュータを作ってみよう」では「COMET2/CASL2」に対応。 ・プログラム部分はPythonでの記述に一部変更。 ・データベースではMySQLに変更。 ・暗号化では共通鍵暗号方式から公開鍵暗号方式に変更。 第1章 コンピュータの3大原則とは 第2章 コンピュータを作ってみよう 第3章 一度は体験してほしいアセンブラ 第4章 川の流れのようにプログラムは流れる 第5章 アルゴリズムと仲良くなる7つのポイント 第6章 データ構造と仲良くなる7つのポイント 第7章 オブジェクト指向プログラミングを語れるようになろう 第8章 作ればわかるデータベース 第9章 ネットワークコマンドでネットワークの仕組みを確認する 第10章 データを暗号化してみよう 第11章 そもそもXMLって何だっけ 第12章 SEはコンピュータ・システム開発の現場監督 巻末付録 コンピュータの回路図
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。