If you were to be stuck on a desert island (in a sea of cubicles) with 5 CS/Engineering/Programming references - what would they be?

Code Complete by Steve McConnell? Design Patterns by the gang of four? The venerable K&R?

What are your favorites, and which do you find yourself coming back to most often?

No there is not a thread already discussing it, because I am not looking for one vital book to master xyz, I'm looking for interesting answers.

I would have Feynmann Lectures on Computing for example, because I think it is an interesting read.

+1  A: 

Code Complete

It gives me what I need and it keeps giving me... and I don't seem to get over IT.


First, I want the language reference for whatever language I'm using, if one exists. For C, it's K&R. For C++, it's the C++ Programming Language.

Next, I want Code Complete by Steve McConnell. I never write code without it visible to me.

My third choice would probably be the GoF book.

Fourth and fifth would probably be Code Reading and Code Quality or Pragmatic Programmers and Professional Software Development (Steve McConnell). I'm not sure which pair I would bring.

Thomas Owens
+4  A: 

The Art of Computer Programming by Don Knuth. Of course I'd probably need to be on a desert island to find time to absorb them all.


If I was actually stuck on a desert island and had to choose 5 CS books, I'd pick the books that I would get the most fun out of. I like McConnells writing and so I'd probably choose Code Complete. I'd also take a couple of Ruby/Rails manuals, although I'd try to focus on stuff that I would learn from and would be useful when I was rescued again, not neccessarily the newest and greatest.

I would take Introduction to Algorithms because I never felt I grasped the material completely. Maybe K&R, though I've never read it. Probably Applying UML and Patterns because it's a great, easy read and it's taught me a lot.

+2  A: 

As being stuck on a desert island doesn't sound like much fun, I'd like to take The Best of Verity Stob.

+1  A: 

If we're talking books I want to spend time with, The Structure and Interpretation of Computer Programs is high on my list. I just need to block out a few months of my personal learning time for it.

Matt Price
+3  A: 

well if i am on desert island - Knuth!

+6  A: 

There is already a popular thread discussing this:

Christian Hagelid

I, for one, would bring Introduction to Algorithms. It may not be light reading, but it would keep me busy for hours and hours and hours.

I would also bring The Science of Programming, just in case CLRS got boring.

+2  A: 

Design Patterns

SQL For Smarties

Modern C++ Design (Alexandrescu)

+1  A: 

Any Direct X book, so I could learn how to program myself a game to keep me occupied while withering away on a desert island.

+2  A: 

This one is pretty easy.

The Pragmatic Programmer Hunt and Thomas

It's not heavy on the examples and details like Code Complete but it focuses more on how think as a programmer.

My second choice would be Effective C++ 3rd Edition by Meyer.

I realize most people don't work in C and C++ now, but again Meyer really stresses how to be a good programmer in a language that gives you guns with no trigger guards.

Dan Blair
+1  A: 

Stu's comment about SQL for Smarties reminded me how much I loved that book. I have a copy from around 1999 (it's grown lots since then), but it's still fantastic to read. It is second to none in helping you get into the set-oriented mindset required for effective SQL programming. In the typical C#/Java world that many of us live in, thinking in sets is just not what we do. This book is a great way to learn to solve problems in a set-centric way that would otherwise be extremely difficult and inefficient.

Chris Farmer