網羅的で読みやすい必読本。「教養としてのコンピュータサイエンス講義」カーニハン
すばらしく良い本なのは間違いない。
プリンストン大学の講義なので網羅的だ。この網羅的は、ハードウェアからコンピュータ関連の知財、更にはコンピュータ教育や個人情報保護はどうあるべきかまでというドメインが広くて全部カバーしてるという網羅性と、「ソフトウェアはもともと数学と考えられてたので特許が適用されなかった」みたいな、それぞれの知識内の範囲がすごく広いことの両方を指す。つまり、広くて深い。
事例が新しいし、内容が親しみやすいから若い優秀な人が書いた本かと思ったら、著者はC言語のカーニハン先生!!名前とWikipediaを見直してしまった。
なにしろこんな大御所が、ここまで細かく網羅的な、押し付けがましくなく書いてある入門書を出してるのはすごい。本のタイトルにカーニハンが腕組みしてるわけでもない。
コンピュータ教育についての「重要性は上がってるし、興味持ったらすぐ学べるようにしておく入り口やサポートを増やすのはとても大事だけど、全員が習うようにはならない/なるべきでない」という言葉も重い。
講師としても優秀な人なのだろう、内容の練られ方がハンパないし、大御所であるにもかかわらず自分の意見と事実、世間一般的な理解などを明快に抑制的に書いてありすばらしい。
どんなビジネスをするにしてもコンピュータサイエンスの重要性が上がっていて、ハーバード大では「ビジネスプロフェッショナルのためのコンピュータサイエンス」という学科もある。内容はこの本と同様だが、この本の方が経緯や思想、狙いについて書いてありオススメ。
膨大な内容を整理する明快な体系化
1.デジタルによる情報の表現
2.数値を計算することであらゆる事を可能にするコンピュータ
3.コンピュータ同士を繋ぐネットワーク
4.ユビキタス
の大きく4つのくくりに分けて、根本的なところから内容を解説してくれるのもありがたい。どんな人でも「これは知らなかった」「こことここが繋がってくるのか!」という驚きを得られるだろう。
携帯電話の待受が日数単位で通話が時間単位なのはなぜか
ソースコードが著作権で守られるのはなぜか
NP完全と、暗号生成と解読の差
などなど、一人で全部答えられる人は少ないんじゃないだろうか
かつ最新に近い情報、2019年の事例まで入っていて、同じ話ならなるべく近くて有名な例を出してくる。
その一方でMacOSの「完全にゴミ箱をなくす」メニューがなくなったのはEL CAPITANから などの古めの注記も満載。
深い概念についてもしっかり説明していて、対数と線形と指数などの概念をクイックソートのアルゴリズムに絡めて説明し、その後も同様の概念が出てくるときに注記してくれるのもありがたい。
記述もわかりやすくて、クイックソートのアルゴリズム説明はゼロから読んでも理解できたし、速度の違いを手元のPCで試し、その説明をするなどもすばらしい。その際に前のパートで概念的に説明したキャッシュの話が出てくるなど、合理的にわかりやすくするためのきちんとした努力が払われている。
訳も素晴らしい。日本ではドットインストール、のように注釈を足してくれてる。
あたりまえだけど、大著とはいえ一冊で全部がわかるような本ではない。
もともと僕に数学のスキルがわからなくて理解できてない「NP完全かどうか」は、本書の技術を読んでも理解はできない。
でも、「わかってるのはここ、わからないのはここ」の見当をつける役には立つし、辞書的に使うこともできるので、コンピュータやネットワークに関わる仕事、それを話題にする人は全員におすすめ。
そのなかで解説の坂村健、「30年前の自分の仕事は今でも通用する」みたいな話が中心なのはかなり残念である...本編は「これもできるようになった、今はこうなってる」ばかりで、大御所ぽさがまったくない本なのに。