Books
By Rik Heywood
5 December, 2001
I read a lot of books, but my wife always complains that they are boring technical books. Well, I will admit that I mostly read technical books, but mostly I find them very interesting. Obviously you get the odd book that makes reading a whole page without falling asleep a real challenge, but I have not included any of those ones here.
Software Development
Writing Solid Code by Steve Maguire I learned one hell of a lot when I first read this book. I still go back and re-read it occasionally and I still think I learn a new lesson every time. It focuses of C development, but almost everything said in this book would apply equally to any programming language. If you ask yourself "How could I have prevented this bug?" and "How could I have automatically detected this bug?" each time you find a bug in your code, this book will give you a good head start in the process and save you a few years learning the hard way.
Code Complete by Steve C. McConnell This book is a never ending goldmine of advice and hard earned wisdom on software development. If you write software for a living, then this is really an essential read. I particularly like the "Coding Horrors" that give examples of what not to do. The book is full of examples (of both good and bad practices) and is backed up with data from what seems like hundreds of studies and papers.
Rapid Development by Steve C. McConnell A completely exhaustive look at approaches to software development with entertaining (made up) case studies. The book is split into two main sections. The first section covers the many approaches to software development, from choosing a lifecycle model, scheduling and estimation and even how to recover when things go wrong. The second part of the book contains a set of "best practices", such as using a miniature milestones. Each of these best practices sections goes into detail about the approach and suggests which type of projects it would be suitable for and your chances of getting it to work.
Software Project Survival Guide by Steve McConnell I did not enjoy this book as much as Steve McConnell's other efforts, but is probably because it takes a more corporate view to software development. It still contains a number of useful sections keeping your project on track. There is a really good test at the start of the book, with questions like "Does the project team have all the technical expertise needed to complete the project?" After completing the test you can look up the score to find out how much trouble you are in already.
Games and Graphics
3D Game Engine Design by David Eberly This book doesn't waste any time explaining what pixels and polygons are. By page 11 you are onto Quaternion's, and the first 7 pages are an introduction. Even then, it does not go into detail explaining what they are, but instead gets straight to the point explaining the algebra and then falls into the standard pattern used in the book of a completely exhaustive set of solutions (normally with sample code in the book and on the CD). In the case of rotations you have Angle-Axis to Rotation Matrix, Rotation Matrix to Angle-Axis, Quaternion to Angle-Axis, Angle-Axis to Quaternion, Quaternion to Rotation Matrix, Rotation Matrix to Quaternion and a long section on factoring rotation matrices from Euler angles (RxRyRz, RxRzRy, RyRxRz, RyRzRx, RzRxRy and RzRyRx). It is the completeness of this book that is so amazing, and the depth it goes into. If you deal with the low level stuff in games, then you really should own a copy of this book. A better approach would be to license Cipher though :-)
Game Programming Gems and Game Programming Gems II A series of shortish articles covering all corners of game development, from the very obvious and simple, to the very advanced and specialist. If programming games is your idea of fun, or you want to get into the industry, then you could do a lot worse than to read these two books and try a few of the ideas out.
Other books well worth a read...
Mathematical Elements for Computer Graphics
Programming
Other
The Design of Everyday Things by Donald A. Norman My copy of this is actually called The Psychology of Everyday Things. I guess it has been updated since I brought it. This is one book that really makes you realise just how badly designed almost everything is. For weeks afterwards I would be complaining about doors with handles that were all wrong and TV remotes that looked like they had been randomly generated by a computer program (Sony remotes always fall into this category). On a more positive note, I also notice when someone has really thought about how people are going to use their product and designed it to be used, not looked at.
Fermat's Last Theorem & The Code Book by Simon Singh Both of these book are well worth the effort. Fermat's Last Theorem covers the history of attempts to solve this simple looking problem up to the point when Andrew Wiles finally put all the pieces together and came up with a proof. I am not sure that anyone else in the world is smart enough to understand his proof though. It is quite rare to find someone that can make a subject as baffling and disconnected from reality as the quest to solve Fermat's Last Theorem, interesting and absorbing, but Simon Singh seems to have pulled it off. The Code Book is in a similar style, but covers the history of the battle between people trying to encrypt information and other people trying to break that encryption. The sections on the Nazis Enigma machine, and Alan Turing success in defeating it are particulalily good.
|