コンピュータアーキテクチャ
大学の情報工学科に入学時に教科書として指定されたいわゆるパタへネを推します。
CPUの構造と基本は現代ではかなり複雑になりましたがこの本に書かれている基本を知っているかどうかで込み入った問題にぶち当たった場合の解像度が違います。
データベース
由緒正しいDBの読本というとオンラインで読めるRedbookとなりそうですがここは敢えて
いわゆるイノシシ本を推します。名前からしてアプリケーションの話のように見えますし、分散システムに関する話が多いのですが最終章まで通して読むと「アプリケーションとデータベースの境界とは本来存在せず、入力されたデータを『いつ』『いかに』『安全に』加工・保存・出力するかがアプリケーションであり、その目的に対する最善手をフラットに考えるとある意味でアプリケーション全体が既にひとつのデータベースであってその仕事の一部を既存DBに分担しているに過ぎない」という少し過激な思想を啓発しています。大変な労力をかけてサーベイされた良著ですのでぜひ一冊お持ちください。
OS
プログラマたるもの一度くらいはスクラッチでOSを作ってみないとなということで
を推します。通称みかん本です。
アルゴリズムとデータ構造
大学の教科書でいくつもあるのですがあまりわかりやすいとは言い難く、実践的に学べる競技プログラミング方向の入門書がわかりやすくておすすめです。
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
いわゆる階段本です。競技色があるのが抵抗あるなって人はラムダノートの
が良いんじゃないかと思います。
セキュリティ
残念ながら専門外なのでパスします。
ネットワーク
最近のトピックは追えていませんが、古典的な知識からの積み上げが大事な分野であって知り合いの専門家はだいたいこの本を通読しています。
あと個人的にはあまり好まないですが人によってはタネンバウム先生の
を挙げる人も居ます。どちらも入門的な内容を丁寧に説明しているのでお好きな方を読んだら良いかと思います。ラムダノートのピアリング戦記も面白かったんですけどこれが日々の業務に役立つ人は稀でしょう…。
より実践的な内容で高みに立ちたいのであればCiscoの資格試験としてCCNA, CCNP, CCIEといったレベルのそれぞれの試験対策本がいっぱい出ていますので「試験対策勉強の方が身が入る」というタイプの人はそちらのルートから学ぶ手もあります。
プログラミング
メインで使うプログラミング言語が決まっているのであればその中での良著を探したほうが良いですが、言語を限定せずにプログラミングタスク全般に対して実用的な文化を学びたいのであれば
Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス
が良いと思います。ソフトウェアを書いて保守して運用するという流れに欠かせない万事の知見がつまっており、読み返す程に学びがあります。英語の本を恐れないのであれば
A Philosophy of Software Design
が僕のお気に入りです。過去にこのmondでも何度かおすすめして来ていますが、和訳される予定はしばらくなさそうなので渋々英語で読んでいます。
仮想化技術
残念ながら専門外なのでパスします。