Good Computer Science Books

The holidays are coming up and that means more time for reading. Some folks prefer romance novels, some a good old detective story. Others prefer an exciting spy thriller. As for myself, once I am done with the manuals that came with the gadgets my kids got, I tend to curl up with a good computer science text. Sometimes I will settle for a language reference for a new programming language that I have never (and probably will never use) used, but my idea of literary nirvana is a book on algorithms, or higher order programming.

I am currently wading through:
Higher-Order Perl: Transforming Programs with Programs
Algorithms in C++, 3rd Edition
The Haskell School of Expression: Learning Functional Programming through Multimedia

What good and useful texts of this category do other Programming/Computer Science/Software Engineer type dopers out there recommend?

Code Complete - I only have the first edition, but its pretty cool, especially the part on how to organise your functions and comments.

Modern C++ - I was blown away by this book - I never did much templates, don’t know what they are good for and the techniques used in the book are an eye-opener for me. Basically, it explains how to implement generic programming patterns, such as policies, singletons, commands and etc. using C++ templates.

Game Coding Complete - Not strictly a computer science book, but the author did gives a good overview of games programming, along with some interesting anecdotes on games programming, such as this gem: A game, upon exiting, will always given an complier-based error message. The programmers try many ways to solve the errors, but could not. So with the deadline looming, they try one desperate measure - they hack the program and change the error message to “Thank you for playing the game!”. Also covers smart pointers, 3d programming basics, source control and project management.

You mean this one? Because, yeah, it is on my wish list.

I’ve thumbed through Code Complete but haven’t pulled the trigger yet on it. I’ll have to see if I get any Border’s gift cards this year.

I hadn’t thought to pick up the Game coding book yet. I’ll check it out sometime. Thanks.

I’m currently reading “Types and Programming Languages”. I took a class in functional programming this semester and became obsessed with it, so I wanted to learn more about programming language theory.

The standard algorithm book is “Introduction to algorithms” by Cormen et al. although it’s very theoretical and not very practical.

Of course, then there’s cult CS books, like Braitenburg’s Vehicles and Godel, Escher and Bach.

Just to pop back to mention that Effective C++ and More Effective C++ greatly broadens my understanding of OOP and C++ in general.

Here are some free Java web-books… so you can curl up with your laptop, I guess.

Data Structures and Algorithms in Java

Thinking in Java

Godel, Escher, Bach by Hofstadter is an absolute necessity. I named my hard drive after the author, actually.

If it’s algorithms you’re into, then another necessity is Programming Pearls by Bentley. The code in the book is absolutely gorgeous.

Design Patterns - an oldie but goodie. You’ve probably read it. Heck, I’m due for a re-read.