宮水の日記

宮水の日記

主に書評や資格取得について記事を書いています。

「コンピュータはなぜ動くのか」を読みました

コンピュータはなぜ動くのかを読みました。

なぜ読んだのか

初心にかえってコンピュータの基礎を学びたかったため。

この本で学べること

  • コンピュータ技術の知識の範囲、絶対的な基礎
  • コンピュータの本質

本の概要

第1章 コンピュータの3大原則とは
  • コードとは、コンピュータで取り扱うために数値化された情報のこと。
  • コンピュータの3大原則

⒈ コンピュータは入力、演算、出力を行う装置である
 どんなに複雑な機能であっても、入力、演算、出力を一つの単位としてそれらを数多く組み合わせて実現されている。
⒉ プログラムは、命令とデータの集合体である
⒊ コンピュータの都合は人間の感覚と異なる場合がある
 コンピュータは色や文字など、なんでも数値で表す。だから半角文字もリンゴは4文字になる。

第2章 コンピュータを作ってみよう
  • 紙の上でマイクロコンピュータの製作を疑似体験してみる、という内容。
  • 設計図の配線をなぞることで、CPUとメモリーとI/Oの関係がちょっとわかった。
  • 実際に手を動かした方が楽しそうだったので、フリマアプリでArduino(アルドゥイーノ)を買ってみた。
第3章 1度は体験して欲しいハンド・アセンブル
第4章 川の流れのようにプログラムは流れる
  • プログラムの流れは順次進行・条件分岐・繰り返しの3つ。
  • この章では、フローチャートの書き方について学ぶ。
  • プログラムの流れには、「割り込み処理」と「イベント・ドリブン」という特殊な流れもある。
  • イベント・ドリブンは状態遷移図などで表したりする。
第5章 アルゴリズムと仲良くなる7つのポイント
第6章 データ構造と仲良くなる7つのポイント
  • 一般的なパソコンでは、メモリーの内部が8ビット=1バイトごとのデータ格納領域に区切られていて、それぞれの領域を区別するための番号が付けられている。この番号のことをアドレスという。
  • 変数を宣言すると、メモリー領域を確保してくれる。
  • データ構造の基本は配列。定番のデータ構造には、スタック、キュー、リスト、2分木などがある。
  • 構造体とは、複数のデータを一つにまとめて名前を付けたもの。
第7章 オブジェクト指向プログラミングを語れるようになろう
第8章 作ればわかるデータベース
  • 酒屋さんのデータベースを設計する
  • 主キーと外部キーについて
  • 検索速度を向上させるインデックスについて
第9章 簡単な実験7つでTCP/IPネットワークを理解する
第10章 データを暗号化してみよう
第11章 そもそもXMLって何だっけ
第12章 SEはコンピュータ・システム構築の現場監督
  • SEとは、コンピュータ・システム全体に関わるエンジニアであり、プログラミングだけに関わるプログラマとは違う。システムとは、「複数の要素が関係しあい、まとまって機能する系統」のこと。
  • 顧客は、コンピュータの技術を望んでいるのではありません。コンピュータによるITソリューションを期待している。顧客の要求通りに役に立ち、安定して稼働するコンピュータ・システムであることが大切!

感想

ハードウェアからソフトウェアまで包括的にコンピュータの基礎知識が解説されていました。小さなコンピュータの世界から、大きなシステムの世界へ章を追うごとに進んでいくので、とても分かり易かったです。基本情報技術者試験を受ける人にとっては、これを読む前と読んだ後では問題の理解度が全然違うと思います。

2章と3章は私にはちょっと難しい内容になっていましたが、少しだけプログラムが動く仕組みがわかった気がします。アセンブラを書いてみたり、ちゃんと理解すれば、プログラミング言語のより踏み込んだ技術書が読めるようになりそうです。より詳しい内容は、「プログラムはなぜ動くのか」を読んでみたいと思います!

ここまでお読みいただきありがとうございました!