Over the past few years, I've read quite a few books on computers that I felt would be worth mentioning on my site in case anyone out there was interested in reading anything on these topics.
(I'm still working on this one)
The history of this book and of the material that it covers is amazing.
This book covers processor features including: Instruction set architectures, caches, pipelining, out of order execution, branch prediction, memory consistency models, networking, vector processors and multi-media extensions, general-purpose gpus, warehouse-scale computers, and newer dedicated computational devices like Tensor Processing Units.
The focus of the book is type systems, but it has a very patient introduction to the models used to study them. If you've always wanted to learn what lambda calculus is, this is probably the best place to start.
This book starts with a model language for simple arithmetic and boolean expressions, goes through the untyped lambda calculus, typed lambda calculus and System F, and then builds up a purely functional model of object oriented programming.
This book is a classic. Even though it was written quite a few years ago, it is still a great first book to read if you are interested in learning about compilers.
It covers all of the major topics of compiler construction: lexical analysis/parsing, type systems, intermediate code, optimization, and target code generation.
Covers the operating system features from the userspace perspective, focusing on: files, processes, signals, inter-process communication, threads, sockets, etc..
The title of this book only mentions "Linux", but where this book really shines is with its advice for writing portable code. The author was very rigorous in finding and pointing out the differences between what is specified in SUS(v3/4) and what is unique to certain *nix operating systems.
The book also does a good job at making it clear which standard C99 funtions make use of which system calls.
If you want to take this book on, it helps to have familiarity with at least one of the languages in question.
Highly-distilled information on the javascript programming language.
Covers the use of Regular Expressions for practical text processing tasks.
I actually did print out all of the technical documentation when I first started working with Salesforce.com, and it takes up a good amount of space on my bookshelf. While I wouldn't go through so much paper nowadays when going through technical documentation, I did read them all, and I have good memories of having them all spread out on my office desk as I was working and first learning the platform.
I actually studied Mathematics in university rather than Computer Science, so this was one of the first books here that I read.
This book is a quick read, and has a lot of good advice. It doesn't overly push any particular design decisions, but rather points out a lot of things to look for in how to get multiple systems interacting well.
A good introduction to working with relational databases.