Books
If I am not programming in my spare time I am usually reading.
This page, in association with
Amazon.com, contains a list of books that
I strongly reccommend.
C++
The C++ Programming Language
Written by the creator of C++, this book describes the C++ language in detail and
also provides insights into how to effectively use various aspects of the language.
This is not an introduction to C++, beginners should look else where. I initially
purchased this book for use as a reference however at the start of my final year
project, which was written entirely in C++, I read this book from cover to cover.
This was time well spent, it clarified my understanding of the language and was
a significant step in the development of my C++ skills.
Effective C++
Having read "The C++ Programming Language" I found that some of the material
covered in this book was common sense. That said, reading this book certainly
provided me with new insights into the language. At a mere 230 pages or so I would
classify this book as essential reading for anyone serious about C++.
More Effective C++
More advanced than "Effective C++" in my opinion. Once again I would
classify this book as essential reading for anyone serious about C++.
Computer Graphics
OpenGL Programming Guide
This was the first computer graphics book I read. I found this book to be a great introduction
to both OpenGL and computer graphics in general. Having used Direct3D and the associated
documentation I feel that this book, in combination with OpenGL, is the best way to
learn about computer graphics.
Real-Time Rendering
Covers advanced computer graphics concepts without getting
bogged down by detail. I read this book after reading "OpenGL Programming Guide". At that point
a lot of the concepts in this book went over my head, however I found that as my computer
graphics skills improved I would recall information acquired from this book. This book
contains a great set of intersection test algorithms.
Advanced Animation and Rendering Techniques
Cover various animation and rendering techniques in detail. This book is a bit dated now but
I feel that it is still relevant. It certianly helped me to better understand the fundamental concepts
of computer graphics. I do not recommend reading this book without a basic understanding of
computer graphics.
Game Programming
Windows Game Programming For Dummies
This book is fantastic. It quickly teaches you about Windows programming and the fundamentals
of game programming. In my opinion this book is better than the author's more recent book
"Tricks of the Windows Game Programming Gurus" which waffles on a bit.
This book allowed me to create a very basic game very quickly. If you are just getting started
this is the book for you, assuming you know a bit of C.
Game Architecture and Design
Admittedly I have not read the middle part of this book which covers team building and management, I
have done enough of that at university.
The first part, which covers game design, is great. The author conveys a genuine understanding
of how to design good games. The final part covers game architecture.
Game Programming Gems
A very practical book about advanced game programming techniques. I have not read this book
cover to cover but I regularly refer to the chapters within this book. The best part about
this book, in my opinion, is that it actually shows you the implementation details of
various techniques.
Miscellaneous
Programming Perl
I use Perl to create various programming tools, configuration management tools for example. This book,
which is widely regarded as THE Perl book, has helped me on many occasions.
Sams Teach Yourself 3D Studio Max 3 in 24 Hours
Some time ago I was looking for a book that would help me to quickly get up and running in
3D Studio Max so as I could create models for use in my projects. The fact that this book
has allowed me, someone with zero visual arts talent, to create basic models is amazing. A
great book for programmers looking to use 3D Studio Max.
Software Engineering
Code Complete
Teaches you how to program in general. This book covers programming concepts that are not specific
to a particular language. Essential reading for anyone serious about programming, simple as that.
The Pragmatic Programmer
Covers material similar to what is covered in "Code Complete". In my opinion this book is
more advanced than "Code Complete". I really enjoyed reading this book, I would not classify it as
essential reading, especially if you have read "Code Complete", but certainly strongly reccommended.
Testing Computer Software
Recommended to me by someone at Microsoft. Provides an insight into how computer software products,
specifically off the shelf applications, are
tested in industry. I consider this book essential reading for any programmer who works
with testers.
Design Patterns
Teaches you about design patterns. A design pattern is basically a reusable design. In my opinion
design pattern knowledge is very useful and valuable.