I Want To Teach My Kid How to Program

Computer programming is a practical skill that can be applied to many professions and hobbies besides software development. However, it can be intimidating to break into. This guide will help parents point their kids in the right direction to get started in programming. (And it is also useful for anyone to get into programming.)

The Gist

  • Kids as young as 9 (or even younger) can learn programming, it doesn’t require math skills beyond basic arithmetic.
  • Making video games is the best way to learn programming and stay interested.
  • Python is one of the best programming languages to learn for a first language.
  • If your kid finds typing frustrating, then Scratch might be a better language to learn.
  • “Invent Your Own Computer Games with Python” is a free book that teaches programming to complete beginners in Python.
  • py2exe can help your kid share their programs with their friends.
  • When making your own games, computer version of board games or simple games of chance are a good starting point.

There is no “best” age to start programming; any age is fine. I’d recommend around 10 or 12 would be a good starting point, though I began teaching myself programming around 9. Perhaps before 8 would be “too young”. Despite what you may think, programming does not require math skills beyond basic arithmetic. If your child is comfortable with addition, subtraction, and multiplication (maybe even division), then they will be fine. Programming is more about general problem solving and “recipe following” skills than mathematics.

Learning to program, like learning anything, is not about having a high IQ so much as being enthusiastic enough to practice and wanting to learn more. I think the best route to learning programming is by making video games.

Deciding on a Programming Language

Next, you should decide on a programming language to learn. The ones I recommend (which are all available on Windows, Mac, and Linux) are:

  • Python has a gentle learning curve, powerful capabilities, and lots of documentation. I recommend Python as a starting language the most.
  • Scratch was developed by MIT to teach kids programming with a graphical, snap-together Lego-like environment. They publish statistics of their audience by age (http://stats.scratch.mit.edu/community/usersbyage.html), which seems to peak around 13. Scratch is especially good if your kid doesn’t have typing skills.
  • Ruby is similar in many respects to Python, however seems to have smaller community and documentation. I recommend Python over Ruby. However, if you want to learn Ruby, Chris Pine’s “Learn to Program” is well-reviewed.

Programming languages I recommend you not start out with:

Page 1 of 3 | Next page