Summary and Info
As the title says, it is a beginner's book to the topic, though I am unaware of any other books that deal with Pygame as much as this one, beginner or otherwise. The book deals more with the language and libraries themselves instead of "game development" per se. By that I mean there is no chapter on developing ideas or group structures in a company, etc. As a guide to picking up Pygame, though, this book was great. Each chapter uses it's own examples, but I feel that that helps to better cover the topics being discussed, versus a book that creates a game from the ground up throughout the entire book, where the example code may feel unrelated or contrived. As other reviewers have noted, the book focuses more on the example than on the theory, often showing working code and explaining each piece.
The book starts out with an short introduction to Python. The author assumes a general programming background. The tutorials are lacking if you've never used Python before, but some side-reading should give you enough information about the language to continue with the rest of the book. To those who already know Python, the first two chapters serve as a good refresher. The 2D section was great. Everything was in there you'd need to begin coding your own small games. There's an interesting section on AI. The section on 3D design I found myself skipping over, mainly because that wasn't what I was looking to use for my own project. Glancing through it, though, it seemed like a good place to get your feet wet with PyOpenGL (the 3D rendering engine).
There were only a few problems I noted: Occasionally the sample code provided on the website did not function properly, and needed a bit of fiddling with. The code in the book worked fine, however. Events could have been covered at greater length, as they are extremely important in game design. Also, something that I found great but others might scoff at was the author's use of his own gameobjects library. It allowed you to skip the mathematics and just use the functions and get through, but without really knowing how the functions work. Personally I think that's a great approach, because there's no real-world situation in a large game project where you're going to know how all the code works everywhere in the program.