Get Started With Software Development
Computer programming is a creative, dynamic, fun, and extremely rewarding skill. Careers related to software development continually top lists like Best Job, Greatest Demand, and Highest Average Salary. It is easy and cheap to get you and your kids started by reading a few excellent books on the subject. Through these books, you can effectively teach programming to kids, even if you are learning as well.
The Python programming language is the perfect starting language for kids because of its simplicity and power. Python is used across all sectors of business and technology and is a real language, respected and employed by professionals. But at the same time, Python is a fantastic teaching language, and easy for kids as young as six years old to learn. Python is free, open source, and runs on all manner of computers, including Windows, Macs and Linux machines.
Two Book That Teach Programming by Writing Games
This book is so attractive because it teaches kids programming by having them write small games. In the first chapter, 11 pages into the book, you are taught to write a simple number guessing game. The writing style is also simple and attractive (much like the Python language) and full of graphics, cartoons, diagrams, word boxes, and other elements to break up and reinforce the material. The book is a great blend between teaching, doing, and having fun.
Other games taught in the book include a skiing game similar to SkiFree, a Pong type game, hang man, a Lunar Landing type game, and a virtual pet type game. Learning to program these game involves learning about data types, data structures, animation, algorithms, timing, sound, input for the mouse and keyboard, and even artificial intelligence. These are deep, real skills that can carry across to any other programming language.
Invent Your Own Computer Games with Python by Al Sweigart
Another excellent book that teaches python programming to kids by using games. This book's strengths are around the many different games and the author's deep commitment to the material. Would you believe the author has released the book to be read online for free? Reading the book online lets you copy and paste code and search the text much easier.
The games taught are similar in simplicity to Hello World! But there are more of them, teaching text manipulation with a rudimentary 'joke generator' game and a text adventure game. Tic-tac-toe, reversi (with AI so you can play against the computer), and a sonar/hunting game are also taught. The most complicated game and the only game with real graphics instead of text-based pictures is taught at the end of the book and is still a basic dodging type game.
Hello World! gets to color graphics, animations, and sounds much earlier that the Invent Your Own Computer Games with Python book, and lets face it, that's what kids expect these days from their games. Nobody is going to be very satisfied with ugly text games for very long.
I consider Hello World! to be the superior learning tool because it has a more attractive appearance with more diagrams and illustrations. However, Invent Your Own Computer Games with Python is also a well written book and the fact that you can read it free online makes it a superior teaching tool, especially if you are teaching a class room of kids.
Although this book isn't based around writing games, I consider it the definitive, best teaching book for those not necessarily driven by game programming. O'Reilly's Head First series is excellent in general and this book is just as good as the others. Full of graphics, teaching reinforcement games like crosswords and word searches, questions, puzzles, call outs, photographs, and diagrams this book has tremendous production and teaching value.
Like the other books mentioned, the book assumes you are a complete beginner and walks you through everything you need to get started. Head First places a greater emphasis on solving real problems you might run into at a job. Because Head First doesn't need to talk about game elements like animation and sound, there is room for chapters on mobile and web development. Although these subjects are just scratched, it's a great introduction to some of today's hottest technologies. I would recommend Head First Python more to the older or less
Any of these books are excellent resources to teaching kids programming. Checking out Invent Your Own Computer Games with Python and see if that teaching style appeals to you. If it does, consider picking up Hello World! If you are more interested in learning Python yourself or the kids you are teaching have less interest in games, Head First Python is an excellent place to start.