90 of 91 people found the following review helpful
on May 16, 2010
This book is totally appropriate for someone who has never programmed before. Everything is explained, right from the ground up, in a lively, interesting style which doesn't dumb things down.
In terms of the language Python, not all aspects of the language are described - only the parts that are absolutely necessary to know to create games. A reader who wants to learn more about programming should definitely start off with this book first, and then supplementing that with other books specifically about Python (or other programming ideas) if they find they have an interest in that direction.
The first ten chapters do a brilliant job of leading the reader through the creation of many small games in the text console, which cumulatively cover all the basics of programming: variables, datatypes, expressions, strings and their methods, booleans and if statements, loops, functions, variable scope, lists, dictionaries, string formatting, ASCII. You will use these to create text games such as hangman and choose your own adventure.
Chapter 11 explains Cartesian co-ordinates and some arithmetic that will be used later on.
Chapter 12 to 15 then create one new game per chapter, using the techniques learned so far, adding a great description of how to create simple but effective artificial intelligence.
Chapters 16 to 18 then break out of the text console, using the pygame library to display a window with coloured rectangles, polygons, circles and bitmaps. It then covers methods of animating these images, reading the keyboard, basic 2D collision detection, reading the mouse, bitmaps and scaled sprites, and creating music.
The final chapter caps the whole thing off with a final big game that incorporates all the techniques discussed, with music and the works.
Overall, I can wholeheartedly recommend this book for it's target market: Kids who want to learn to program, specifically so they can create their own games. Adults who have never programmed before will also find it very useful, although there may be a couple of chapters they can skim over.
Inspirational and brilliant.
65 of 66 people found the following review helpful
on May 20, 2010
This is a wonderful book. I am a college professor who occasionally teaches courses for liberal arts students who are looking to fulfill a requirement of a quantitative course. I offered a game programming course in the Python programming language using Sweigart's book. The students loved this book. It starts at the very beginning and leads them, game by fascinating game, to become highly capable programmers.
The book is not just for college students. My thirteen-year-old son has been greatly enjoying the book. His biggest ambition for the coming summer is to publish a computer game. I feel deeply grateful to the author of this book for the inspiration he has given to my son and my students.
If you would like to have a great time while learning Python programming, you owe it to yourself to get a copy of this book.
78 of 81 people found the following review helpful
on July 12, 2009
I bought this book but I'm returning it. Its not because of the content of the book (I think the book is good) but rather because I feel the publisher is being unethical.
I came to this conclusion when I contacted the author about this version of the book. What happened was that I saw this book on the author's site as a free pdf download ([...]). I also saw that it was going to be released in Dec 2009 by another puclisher ([...]). So I wanted to clarify what was going on. Here was the response that I received from the author (i.e. Al Sweigart):
The one on Amazon is not printed by me. I'm not sure what other
changes they made, or if they just printed it from the book off the
The "official" book from No Starch Press will have the four PyGame
chapters, a professional editing job, and a nice index and all the
other things a real book has.
Don't bother buying the book off Amazon. It's just someone's attempt
to make money off of other people's work. Unfortunately, I released
the book under a license that did not specify non-commercial use only,
so he's completely allowed to do it. It kind of makes me wince though,
because I'm always making changes to the book online and I don't want
someone to pay for an out of date version.
So legally - this publisher (SoHo Books)has every right to print this book and sell it as their own. But from an ethical point of view I think this publisher is not being correct because:
1. They make it seem as if the author is publishing this book (you would assume that the author gets a little bit of something for his effort)
2. As a purchaser of the book - I don't get any updates. Why would I bother buying this book from this publisher if I can download an updated free version from the author's site?
43 of 48 people found the following review helpful
on May 6, 2010
This is the old, typo-ridden edition of the book. The newer one is available on Amazon for less money (and for free online at the author's site). There's no reason why anybody would buy this.
23 of 25 people found the following review helpful
on May 12, 2010
I decided to learn Python as I had heard it was a good all round Programming language for a newbie. I am working my way through this book and have found it's simplicity and clarity ideal for me. It introduces the concepts in a gentle, interesting and concise way. It makes learning gradual and fun. It certainly isn't boring and as a complete beginner to programming I would definitely recommend this book.
12 of 12 people found the following review helpful
on August 23, 2010
This is a great introductory book for new or beginning programmers. It has been instrumental
in teaching a 13 year old the basics of programming.
1) Clear and detailed explanations of concepts and of the different data structures.
2) Fun to read for younger readers. The examples and games are interesting.
3) There is a clear progression with every chapter.
1) The lack of an index is a little inconveneient.
2) It would be great if after every chapter there is some suggested programming assignments.
With solutions on the website. This would've been a tremondous help for parents. I frequently had to resort
to inventing little games/programs as exercises for every chapter.
Overall it's an excellent book and highly recommended.
12 of 13 people found the following review helpful
on June 18, 2012
In terms of the intention of the book ... to introduce computer programming to young programmers through games, this book is excellent. I am a seasoned programmer, and I am using this book to teach my son, 11 years old, the basics of programming.
What the book does well: Each program is a complete program that the student can type in, compile, and get to work. A lot of books just give excepts for the exact concept being taught. Second, writing games is fun, and although the book does not provide exercises, my son is so interested in the program that he expands on the example program himself.
What others have pointed out: 1) no exercises -- yes it would be better if there were excercises. 2) No OOP -- no first programming class teaches OOP, because the student has to master the basics of variables, functions, program flow and structure, and using existing classes before they can be taught how to create a class themselves.
What I have an issue with: 1) pylint is not introduced. Since python is an interpreted language, pylint is a vital tool. 2) Proper commenting is not discussed. 3) The example programs don't include docstrings, so if pylint is used warnings are generated. And if the student adds comments, then the line counts are messed up in the explanation. Plus, the student should from their very first program use docstrings for commenting. 4) In some chapters, the flow-chart is introduced after the source code. It should be introduced before the source code. 5) The flow-charts don't follow standard format. If statements are supposed to be diamonds, not rectangles. 6) Basic testing is not discussed. That could be the exercises "add error control to the program".
But even with the above mentioned flaws, this book is top notch for its purpose.
15 of 17 people found the following review helpful
on August 16, 2010
Hey, kids, have you ever wanted to make your own VIDEO GAMES!?
Invent Your Own Computer Games with Python reminds me of a book I got from the library once when I was a very young boy. It was about making video games in BASIC, and I had some fun with it. Sweigart has taken the same approach (and probably the book he mentioned as being inspiration for his book was the same book I read as a child), and has given us an updated book for an updated programming language using updated computers.
The language, no longer BASIC, is Python, one of the more simple programming languages for newbies to learn.
While the first few examples are all text-based, the latter few delve into Python's ability to draw 2D images to your screen. I would imagine somebody with a computer and a penchant for learning Python through the medium of video games would have no problem devouring this book, which is freely available from Sweigart's website devoted to it ([...]).
While I, a seasoned programmer who knows enough Python to know he likes Perl better, found the book a little too simplistic for myself. Constantly, I was optimizing his code examples in my head (which I'm sure Sweigart also was tempted to do when he wrote them out). I realized, of course, that Sweigart was going for readability, and not for line of code reduction or fewer iterations. Optimization may be too advanced a topic to teach a kid wanting to make VIDEO GAMES.
The book is written towards a younger audience, but is completely readable, and understandable, by an older audience: you computer illiterate parents whose children fix your computers for you ALL THE TIME. This book could give you a little bit higher of an advantage when it comes to out-tech-ing your kid.
While the book was a wonderful introduction to programming and video games, I find that the amount of helpful make your own games resources are either outdated, or more a "make OUR own games." What I'd like to see, maybe is a Third Edition with optional exercises: "Congratulations: You're able to type in code exactly as it appears in a book. Now, do you understand it? Change the game so it does this instead!" Something like that.
I'd also like a Volume Two, in which Sweigart delves into the world of 3D games and network games. So, Al, if you're reading this, I fully expect such a book before too long. Okay?
Putting my personal feelings of Python aside, I found this book to be a valuable resource when it comes to teaching people (especially young people) how to program, which I feel empowers them to do what they want with their computer devices, have fun, and maybe even become the next big game development studio out there.
11 of 12 people found the following review helpful
on October 30, 2010
I just received this book last week, and I am having so much fun with it...So much fun, that this is the first time I have felt compelled to write a review for a book purchased from Amazon.
I am 59 years old, with no programming experience, and I am the furthest thing from being a computer geek that you could imagine. I have always wanted to learn a little about programming. I have leafed through some other books, but they all seemed either very intimidating or very dry/boring, or both. This book is just perfect to get someone like me started. What a fun way to learn...whether you are a kid or a big kid-at-heart.
The extras and helpful tools on the author's website are a great bonus.
I find that having the book in hand to make notes in, makes for a better learning experience. But if you are only going to download the free version, then please consider making a donation on the author's website...I think the author really deserves it.
7 of 7 people found the following review helpful
on February 14, 2011
I cannot review this book under the most ideal circumstances as I have prior hobby programming experience, and recently some experience making games. However, I'm self taught and I highly value good resources to teach myself from. If I had access to a book like this when I was a little younger I think it could have easily been the introductory experience I was looking for. The book takes you through each program in a extremely clear manor, stopping to explain the more complicated parts.
From a programming reference perspective, the specifics of the language are largely glossed over. This surprisingly, is a good thing. If the book is about learning to program using games as a vehicle, then the main goal of the user is to make a working game. It is not to study the exact syntax of python, or compare with other languages. Each chapter wraps some programming concepts up in a familiar game, with plenty of pictures and sidebars for explanation. One feature that I found particularly useful was the hand drawn flowcharts for each program. These are the mental models of execution that are so often missing in educational materials. Learning to think systematically is the root skill in programming, so it follows sensibly that each game should be accompanied by such a chart, documenting the system.
The only downside of the book is the games themselves. They're text based, and not necessarily the most fun games out there currently. It is hard to compete with modern video games in terms of graphical flash appeal, especially when considering the raw advertising budget available to major publishers. This issue is not really a solvable one, as it'd be impossible to maintain simplicity and low price of admission while leveraging huge graphics. I hope though that people who are interested in learning to program are in the mindset of creating content, rather than remaining consumers.
It's been said many times (including by the author) that Python is the new BASIC. It's reasonably simple, freely available and widely used. If you're on a mac, it comes pre-installed. Avoiding the dreadfully serious approach that traditional schools follow (C++ and enterprise development), python lets you simply play and explore. Having an interactive command interpreter as a core part of the language lets you do just this. Python is well suited for the kind of personal discoveries that are necessarily in order to make lasting gains in the world of computer education. If I had a geeky twelve year old niece or nephew, I'd definitely drop this book on them.