Latest News
spacer View All spacer
 
November 7, 2009
 
Iwata: 35% Japanese Connectivity Ratio For Wii, 20% For DS
 
iPhone Dev Storm8 Sued Over User Data Harvesting Allegations [5]
 
Game Boy, The Ball Admitted To National Toy Hall Of Fame
spacer
Latest Features
spacer View All spacer
 
November 7, 2009
 
arrow On Bringing Modern Warfare 2 To Life [3]
 
arrow Games Demystified: Dissidia Final Fantasy [1]
 
arrow Building Social Success: Zynga's Perspective [3]
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
November 7, 2009
 
Sucker Punch Productions
Network Programmer
 
Sucker Punch Productions
Character Artist
 
Sucker Punch Productions
3D Environment Artist
 
Sucker Punch Productions
Texture Artist
 
Monolith Productions
Sr. Software Engineer, Engine - Monolith Productions - #113767
 
Crystal Dynamics
Sr. Level Designer
 
Sony Online Entertainment
Brand Manager
 
Activision - Bay Area
Sound Designer
spacer
Blogs

  Game Programmer Books: General Programming
by Neil Gower on 07/08/09 03:10:00 pm   Expert Blogs
5 comments
Share RSS
 
 
  Posted 07/08/09 03:10:00 pm
 

There are perfectly good programmers who haven't picked up a book since they graduated, unless it was to prop up a monitor or build a shelter from Nerf darts. There are a lot of great online programming resources, but personally, I couldn't survive without my books. When I encounter a new topic, the first thing I do is track down a good book about it. Mmmm... tasty hardcover brain food.

Programming is a topic that gets a huge section at the big bookstores. Buyer beware however, not all of those books are worth your time or money (mini-rant: do nearly all computer books really have to cost over $50?). To helpGeneral programming books you avoid the duds, I'm posting short blurbs about some of the better books that have collected on my shelves over the years. Some are specific to games, other are broader programming books I've found to be relevant to game development.

To kick things off, here's a short list of solid general programming books:

Code Complete
By Steve McConnell

Code Complete is an essential book for programmers who have learned how to program, but don't have as much experience with the complete software life cycle of full-scale projects. It's filled with lots of good practices for everything from planning, to design, coding style, performance, debugging, and maintenance. The author also includes plenty of references to other good programming books to bulk up your brain.

Even if you don't agree with or adopt all of McConnell's advice, these practices show up in other people's code, so it's good stuff to know.

In short: The professional programmer's tour guide.

Design Patterns
By Gamma, Helm, Johnson, and Vlissides

This one is a classic for object oriented programming (OOP). It's not for beginners, but if you've already got the basics of OOP, Design Patterns will save you from reinventing the wheel.

DP is presented as a catalogue of proven OO design solutions. Some seem obvious at first glance, but if you really dig into them they reveal a lot of depth in the details. Even if you rarely do any heavy duty design work, being familiar with the design patterns in this book will help you find your way around other people's code more easily.

In short: Read it, or else.
   (...or else skim it, it's good as reference too)

Refactoring: Improving the Design of Existing Code
By Martin Fowler

Refactoring is a great book that describes how to properly refactor code. Sketchy programmers  have been known to use refactoring as an intimidating word to smokescreen coding by trial-and-error and "rewriting your code to look like mine". Don't let this put you off, real refactoring is a good thing, and Fowler wrote the book on how to do it right.

Proper refactoring is about safe transformations you can apply to code to improve its quality. It's a great strategy for those situations when you've inherited a horrible code base (or let's face it, maybe you helped build it), but can't afford to throw it out and start again. Refactoring is not just for salvaging bad code though, it can also be applied to good code to make it better. This book is similar to Design Patterns, in that it provides a catalogue of refactorings for you to use. Good for reading, great for reference.

In short: Friends don't let friends talk about "refactoring" without reading this book first.

That's it for the general purpose programming books. Got one to add to the list? Please share below!
 
 
Comments

Jeff Beaudoin
8 Jul 2009 at 5:49 pm PST
profile image
Effective C++
http://www.amazon.com/Effective-Specific-Addison-Wesley-Professional-Computing/d
p/0321334876/ref=sr_1_1?ie=UTF8&s=books&qid=1247100522&sr=8-1

and most of the Game Programming Gems books are really good.

Klaus Drobec
9 Jul 2009 at 5:05 am PST
profile image
Algorithms in Pascal / C / C++ / Java
by Robert Sedgewick
3rd edition (is current, I think)

I am well aware that this is one of THE classics that any CS student should have bought, read and committed to memory by their second year. However I find that more and more CS courses have a rather flimsy algorithm curriculum and/or use sub-standard teaching materials.

Even if you worked through every single data structure in there during college I strongly suggest to keep it around. There comes a time in every programmer's life when one has to look up the details of how a trie really works. Also, the various language editions actually diverge quite a bit with regard to implementation details.

Neil Gower
9 Jul 2009 at 10:56 am PST
profile image
@Jeff: You beat me to it! I'll definitely include your suggestions in future posts about C++ and game-specific books.

@Klaus: Thanks, Sedgewick's algorithms books are new to me. I learned from Intro to Algorithms by Cormen et al, which was a definite keeper from school days. Looks like Sedgewick has a 4th edition in the works. Maybe when it comes out, a big algorithms book round-up will be in order. :-)

Evan Bell
17 Jul 2009 at 5:49 pm PST
profile image
I recommend Lakos's Large Scale C++ Software Design.

Martin Danger
11 Aug 2009 at 12:21 am PST
profile image
Modern C++ Design is a bit bizarre and difficult at first, but if you struggle through it you will become quite an exceptional C++ developer. I also learned a lot going through Introduction to Algorithms and implementing most of the algorithms. And while this is a game programming book, Programming Game AI By Example taught me as much about software engineering as it did about AI (which it taught very well).


none
 
Comment:
 


Submit Comment