The Bookshelf

On this page I’d like to talk briefly about some of my favorite books. Note that this list may change over time as new titles are purchased.

Table of Contents


The Top Shelf

The Top Shelf section contains my favorite books that are always within hand’s reach.

3D Computer Graphics by Alan Watt

3D Computer Graphics

Third Edition by Alan Watt (1993)
If there ever was a book that I could refer to as the ultimate reference on 3D graphics, it’s 3D Computer Graphics by Alan Watt. This pivotal title explains 3D graphics in a textbook manner that covers everything from vectors to ray tracing to particle systems in a platform independent manner. I highly recommend this title.

Mathematics for 3D Game Programming & Computer Graphics by Eric Lengyel

Mathematics for 3D Game Programming & Computer Graphics

Second Edition by Eric Lengyel (2004)
Eric Lengyel’s book is all about math and provides many examples of equations and how to apply them practically by providing OpenGL examples. Personally, I think this book explores the subjects that 3D Computer Graphics briefly touched upon.

OpenGL SuperBible by Richard S. Wright, Jr. and Benjamin Lipchak

OpenGL SuperBible

Third Edition by Richard S. Wright, Jr. and Benjamin Lipchak (2004)
In my very humble opinion, Sams publishing doesn’t publish many books that I consider worth buying, with the sole exception of the OpenGL SuperBible. This tome was the prime method of learning OpenGL when the programmable pipeline was not yet around and touches on shaders only briefly. This book got beaten around, marked with coffee stains and flipped through countless times. I still reference this book quite often since it contains many good things, but I’m afraid that this one is going to have to retire to the bookcase pretty soon.

The C Programming Language by Brian Kernigham and Dennis Ritchie

The C Programming Language

Second Edition by Brian Kernigham and Dennis Ritchie (1988)
Even though it’s horribly outdated due to the updated and unmentioned C standard in 1999, the white book is the preferred way of learning the C programming language due to it’s fantastic readability. If you don’t own it, buy it since this book deserves to be on every C (and C++) programmer’s shelf.

Introduction to 3D Game Programming with DirectX 10

Introduction to 3D Game Programming with DirectX 10

By Frank D. Luna (2008)
I’ve mentioned this book before, and my opinion of it still hasn’t changed. While the book is small in size and high in price ($49.95), I believe this book to be the Direct3D 10 reference and recommend it to anyone who wishes to enter the world of Direct3D programming. I sincerely hope that Mr. Luna is working on a Direct3D 11 version of this book since I’d buy it in a heartbeat.

An Introduction to Ray Tracing by Andrew S. Glassner

Introduction to Ray Tracing

By Andrew S. Glassner et al (1989)
Even if you’re only slightly interested in ray tracing and wish to learn more, this book is a must have. I’d say this book is worth having for its first chapter alone which contains the best overview of ray tracing that I’ve ever read. This books covers every aspect of a basic ray tracer and then continues to provide sample code on how to implement your own. Even though this book can be quite pricey, you can usually find a good deal on a used copy of it on Amazon.


One Tier Down

While not my favorites, this section features excellent books that are also always within hand’s reach.

Refactoring

By Martin Fowler et al (1999)
If you’re a serious programmer, you know how important readable code is for maintenance purposes. Refactoring covers the methods that can be applied to your existing code to make it more maintainable. While you’ve probably used many of these methods without knowing that they were part of something called refactoring, Refactoring gives them a concrete name so you can easily convey to other programmers what you’re talking about.

Design Patterns

By Erich Gamma, Richard helm, Ralph Johnson and John Vlissides (1995)
Much like refactoring, Design Patterns provides you with methods of structuring your code that you’ve probably used before but gives them a concrete name. Design Patterns makes you think about your Object Oriented software in a whole new light by standardizing ways of implementing classes, etc. The only reason that this book is not on the top shelf is because I believe that design patters should be taken with a grain of salt since you shouldn’t box yourself in with too many abstract ideas.

Code Complete

Second Edition By Steve McConnell (2004)
Code Complete is one of those books that when you start reading them, you can’t put down. This book is chuck-full of good advise and practical tips on how to construct your software logically and how to achieve maintainable code. It covers 30,000 foot ideas like software construction and minute details such as variable naming conventions and is well worth its price.

Windows Via C/C++ and Programming Applications for Microsoft Windows

Fourth and Fifth Editions by Jefferey Richter
If you’re a Windows programmer and you use the Win32 API, these books are must-haves. I mention both the 4th and 5th editions since they both mention some things that the other left out. For instance, the 4th edition covers windowing and the 5th edition doesn’t. However, the 5th edition contains so many updates that it is indispensable.


Honorable Mentions

This section contains a few good books that you can find in my bookcase, but aren’t really my favorites.

The Mythical Man-Month

Anniversary Edition by Frederick P. Brooks, Jr.
“Blasphemy!” you may scream when you notice that this book isn’t one of my favorites as it is certainly a seminal book that has earned its place in history. Yes, not my favorite since it’s not a book that I need all the time and I feel as if it’s outdated. The Mythical Man-Month was originally written in 1975 and describes some of Brooks’ experiences while working at IBM as a project manager. Each chapter of the book describes another concept of his, the titular one being the man-month and the most known. While this book is a great read, many of the examples mentioned are a bit outdated and the methods mentioned can be replaced with automated tools or different concepts such as Agile programming. Nevertheless, this is a great book and you can easily read around or re-imagine some of the outdated sections with their modern-day counterparts.

The C++ Programming Language

Special Edition by Bjarne Stroustrup
The first thing I have to say is that this book is an excellent reference and there is none like it; if you’re a C++ programmer, this is the encyclopedia of your dreams. However, it is difficult to read due to Stroustrup’s writing style that borderlines cryptic. This book should be used as a reference only, nothing more than that; as a reference there is no substitute.

Permalink The Bookshelf

Leave a Comment