みんなのコンピュータサイエンス
「コンピュータに対するコンパクトな知識地図」
ohbarye.icon 個々を詳解しているわけではないので用語を知るにとどまる
9章にあった「優れたプログラマであれば知っているべきコンピュータサイエンスに関する最小限の知識」というのが全て
理解のためには別途掘り下げる必要がある
3章 戦略
5章 アルゴリズム
6章 データベース
ohbarye.icon RDBMSについては読み飛ばした
SQL vs. NoSQL
リレーショナルデータベースはデータ中心
データがどのように必要とされるかに関わらず、データ構造を最大限に活用し、重複を取り除く
非リレーショナルデータベースはアプリケーション中心
必要に応じてアクセスと活用を手助けする
NoSQLデータベースを使うことで、大規模、揮発性、非構造のデータを素早く、効率的に保存することが可能
固定スキーマとスキーママイグレーションを気にすることなく開発できる
ただしプログラマの責任が増す
分散データベース
7章 コンピュータ
プレイステーションのCDをPCで実行できないのは、CPUアーキテクチャが違うから
書かれている命令を解釈できない
あるメモリアドレスにアクセスされた直後、高確率で同じアドレスへのアクセスが発生する
あるメモリアドレスにアクセスされた直後、高確率で隣接するアドレスへのアクセスが発生する
CPU組み込みの補助メモリ
レジスタよりちょっと遅いぐらい
50KB以上にするにはコストがかかる
L1よりやや低速だが容量を確保できる
200KB
L1~L3キャッシュは重要なのでCPUのシリコン空間の大部分を占める
コンピュータが常にRAMからデータを取り込んでいる状態 プログラムが処理するデータとプログラムがRAMに収まらずRAMが不足すると、コンピュータは常にディスクとRAM間でデータを転送することになるので性能が著しく低下する
9章
ohbarye.icon オブジェクト指向を取り上げていなかったのは意外