僕は学内の計算機科学クラスタでは底辺層ですし、とりあえず、計算機科学については東京大学の理学部情報科学科の卒業生の方?が良かった教科書を挙げていたと思うのでそちらを参考にしてください。教科書だって?あんな分厚いの読みたくないよと思われるかもしれませんが、情報科学者や一流エンジニアの卵が読む本なので「絶対に分からせてやる」感が強く、そんじょそこらのネット記事や薄っぺらい雑誌特集記事よりよほど適切に理解できることがあります。
あと、もし僕と同じ大学の方でしたら、大学側でWileyやSpringerという出版社の教科書を無料でダウンロードできる契約を一部結んでいるので、それも探してみてください。
ただし同時に、「どうしてこんな簡単なことや瑣末なリストの説明にわざわざ分かりにくい比喩を使って紙面を費やすのか」と思う場面もしばしばです。そのような場合に役立った書籍をいくつか下に挙げます:
『まつもとゆきひろコードの世界』…プログラミング言語で出てくる抽象的な文法や構造を、言語設計者自らが説明しています。Rubyは国産言語なので、英語よりも遥かに日本語母語話者が学習に有利な珍しい言語です。
Content-Addressable Memory Introduction ...
https://www.pagiamtzis.com/cam/camintro/ ソフトウェアだとどんなに神業で実装しても遅いルックアップ処理が、ハードウェアだと定数時間で実装できるという話が載っています。このTCAMの話自体が大事というわけではなくて、「結局アルゴリズムというのは別にプログラミング言語上の書き方とか内部メモリの使い方とかにかぎらず、あらゆる材料(ハードウェアもソフトウェアも含む)で作られた計算資源を使って早くしてよいのだ」という事実に気付くことが重要です。そこに気づけると、分散型アーキテクチャや並列計算、ビットシフト演算やGPU、マルチコアプロセッサやストレージのヒエラルキーなどが見通し良く理解できると思います。
ちょっと疲れてていくつもは挙げれないですね…とりあえず上の2つを見るだけでも、案外見通しよくなるとは思います。
View more