Our Properties: Gamasutra GameCareerGuide IndieGames Indie Royale GDC IGF Game Developer Magazine GAO
My Message close
Latest News
spacer View All spacer
 
February 9, 2012
 
Analyst questions validity of unusual January NPD results [1]
 
DICE 2012: Blizzard's Pearce on World Of Warcraft's launch hangover
 
DICE 2012: Insomniac's Price on Quality Of Life, ditching the 'Loser' badge
spacer
Latest Features
spacer View All spacer
 
February 9, 2012
 
arrow Principles of an Indie Game Bottom Feeder [14]
 
arrow Postmortem: CyberConnect 2's Solatorobo: Red the Hunter [1]
 
arrow Jerked Around by the Magic Circle - Clearing the Air Ten Years Later [37]
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
February 9, 2012
 
Kabam
Lead Software Engineer - Flash
 
Kabam
Lead Software Engineer-Ruby
 
Kabam
Software Engineer - PHP - Mobile
 
NetherRealm Studios
Senior Software Engineer, Network - WB Games/NetherRealm Studios - 126710BR
 
Warner Bros Games
Staff Software Engineer, Game Systems - WB Games/Monolith Productions - 125467
 
TimeGate Studios
Recruitment Coordinator
spacer
Blogs

  Game Programmer Books: General Programming
by Neil Gower on 07/08/09 03:10:00 pm   Expert Blogs
7 comments Share on Twitter Share on Facebook 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
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
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
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
profile image
I recommend Lakos's Large Scale C++ Software Design.

Martin Danger
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).

senthil murugan
profile image
@martin: s i agree with you...

André Koscianski
profile image
Programming & Data Structures are sine qua non requirements for any game programmer, followed by Math.
But books are like people, some are boring for some readers and brilliant for others: so do not stop at the first (second? third?...) book and keep reading.

Finally, allow me a tip for beginners ;-) Here´s a book that might be helpful Game Programming with Irrlicht, http://www.amazon.com/Game-Programming-Irrlicht-Andr%C3%A9-Koscianski/dp/1460905
148.


none
 
Comment:
 




 
UBM Techweb
Game Network
Game Developers Conference | GDC Europe | GDC Online | GDC China | Gamasutra | Game Developer Magazine | Game Advertising Online
Game Career Guide | Independent Games Festival | Indie Royale | IndieGames

Other UBM TechWeb Networks
Business Technology | Business Technology Events | Telecommunications & Communications Providers

Privacy Policy | Terms of Service | Contact Us | Copyright © UBM TechWeb, All Rights Reserved.