Monday, March 17, 2008

Book Recommendations, General Programming

In my previous post I recommended some books on C++. I've also found some general programming books particularly useful and this post covers a few of my top picks. These books are all applicable to programming in any discipline, not just to games.

The Pragmatic Programmer

The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas is all about the craft of programming and is full of advice about how effective and productive programmers approach the task of developing software. There's lots of invaluable tips here on how to be a more effective and productive developer.



Design Patterns

Design Patterns by 'The Gang of Four' introduced the idea of design patterns to a wide audience of developers and provides the definitive definitions of many of the most common design patterns. While some valid criticisims have been made of the idea of design patterns over the years, and the singleton design pattern presented in the book has been singled out for particular (and justified) criticism, it is still important to be aware of the major patterns and this book is still the best reference for them in my opinion.



Working Effectively With Legacy Code

Working Effectively With Legacy Code by Michael Feathers is full of valuable advice on an activity that most professional developers (including game developers) will spend a lot of time doing during their careers. While many developers would like nothing more than to start from scratch when starting a new project, that's not a very effective or realistic strategy in practice and working effectively with existing code bases is an important part of professional development.

In the games industry, developers will face many of the common challenges of working with legacy code - poor or non-existent documentation, code that has evolved over time with a lack of strong design direction, code that while fit for it's orginal purpose has over time been pushed to breaking point as it has had to meet new and unanticipated requirements and many other causes of developer headaches. Reading this book will put you in a better position when having to deal with these issues and more.

0 Comments:

Post a Comment

<< Home