Published

Must Read Books

Over the years I’ve read hundreds of technical books. Some of them had some great new ideas, others were great introductions to specific topics, and others had a knack for explaining some complex topic in a very easy to understand way. But in the end, which books had the most impact on me? If I had to go back and pick only a handful of books, which ones would I pick? This is that list.

If there’s a book here on a topic you’re interested in and you haven’t read it, don’t think about it twice, buy it right away and bump it up to the top of your reading queue. You won’t regret it.

On the flip side, feel free to recommend to me any books you feel very strongly that should be here. I make no guarantees, but if it’s a total knock-out, maybe it’ll make it to this list in a couple of weeks.

Project management

Simply put, if you’re a lead or manager for any project, you must read this book. Not doing that is simply irresponsible. This book is packed with no-nonsense advice on how to run a project. If almost 700 pages is a bit too much, you can start with the Software Project Survival Guide also by McConnell. It covers the same ground but concentrates on the “whats” as opposed the “whys”.

A new look at what it means to be really efficient and why that’s not the same thing as being really effective. Along the same lines of this book is the classic Peopleware, by Tom Demarco and Timothy Lister.
[Read the full review]

Even if you’re not doing Extreme Programming, you should at least know what it is and why some people are so excited about it. Considering how unpredictable game development is and how much design, technology, and publisher preferences change from day to day in game development, any book that encourages us to “embrace change” is heading in the right direction.

C++/STL

After you’ve put in a year or two of C++ under your belt, this book will singlehandedly catapult your C++ learning curve ahead by a couple of years. Once you’ve memorized it you can move along to More Effective C++ (also by Scott Meyers, of course). Incidentally, Scott Meyers is probably one of the best technical writers I’ve ever had the pleasure of reading, so you’ll have a great time along the way as well.

Scott Meyers applied the same formula once again and came up with this book. Just like Effective C++, it highlights the major pitfalls, common idioms, and recommended techniques when working with STL. Again, this is not to learn the STL, but to take your skills to the next level.

It’s starting to get a bit outdated, but it’s one of the few books that deals with the real-world issues of C++ development. Is your program starting to take too long to compile? Are you finding it hard to separate the different sections of your code base? Then you need to read this book. Warning: This is one heavy, slow-going book with lots and lots of content. Don’t hesitate to put it down for a while and then come back to it. [Related article]

Software design

This book was an eye-opener for me when I first read it. It put a name to and helped consolidate and formalize many ideas that I already had in my head, as well as plant lots of new ones. This could easily be the book that has most influenced me in the last 10 years. It is also one of the ones that I regularly skim through and I always learn something new I had missed before.

Game development

Take equal parts of the best technical articles from Game Developer Magazine, the most interesting GDC presentations, and the cleverest tricks you read online, and you have an idea of what this book is all about. This is a collection of small articles written by professional game developers. It covers a large variety of topics, but you’re guaranteed to find something directly relevant to whatever you’re working on at the moment.

Computer architecture

If you’re a typical, well-read game developer, I suspect you will have nodded your way down this list. You will have read, or at least heard of just about every book here. Until this one. This is not a typical recommendation in a game development book list. Why is it here? Perhaps is my computer engineering background, but I found this book simply fascinating when I first read it in college, and I’ve referred to it often since then. If you want to get a good grasp on both the fundamentals and the details of CPUs, cache systems, or disk IO, this is the best book on the subject. Next time a console manufacturer says their system has an 8-way set associative L1 data cache with write-back, and no-write allocate, you’ll know exactly what they mean.

History

OK, I admit it, I’m a converted hacker. Even though I’m now a big proponent of software engineering methods and a well-defined development process, I fell squarely in the third generation of hackers (the 80s) described in the book. This book just holds a very special spot in my heart as my dog-eared paperback copy can attest. Not only does Steven Levy manage to present a very complete history of software and game development following some exceptional individuals, but he manages to make it into an extremely gripping and entertaining book. No self-respecting geek should miss this one!

This book is the spiritual successor of Levy’s book. It picks up in the mid-eighties, just where Hackers left off, and it describes a new generation of hackers, this time concentrating on a smaller subset of people (John Carmack and John Romero, the founders of id). Be warned, this book is even harder to put down than Hackers and it’ll have you questioning your life choices for weeks afterwards.