I Want To Teach My Kid How to Program

  • Java and C# are similar languages that have a heavy emphasis on Object Oriented Programming. While this is great for professinal software engineers, it’s an additional level of complexity that beginners shouldn’t have to deal with.
  • C and C++ are also widely used by software engineers but also has a steep learning curve. The amount of low-level programming it gives programmers access to is great for writing efficinet code, but not so great as a starting language.
  • Perl is a scripting language like Python and Ruby, however its syntax has many shortcuts aimed at expert programmers who want to make their code terse. As such, Perl code can quickly become incomprehensible to beginners looking at code examples.
  • PHP is designed for making web applications, which adds several prerequisites that your kid would have to learn (such as HTML). Also, there are some arguable points against the language’s design. (However, for web applications it does have a gentle learning curve.)
  • Visual Basic is made for quickly producing GUI applications for Windows. You cannot make applications for Linux or Mac with it. It is also more suited for business applications than games. Note that “Visual Basic” is not the same thing as “Basic” (though the languages are similar.)
  • Basic is dead. There are many different variants of Basic (such as QBasic, DarkBasic, BlitzBasic, SmallBasic, Basic-256, etc.) but each of these has poor documentation or a small community, which makes it harder to find resources to learn about them. And unlike Python, Basic is only a learning language, not a language that is actually used by software developers.
  • Pascal is even more dead than Basic.
  • HTML and Ajax are not programming languages, and anyone saying “HTML programming” or “programming in HTML” is confused. HTML is the text format that is used to design web pages. Ajax is a type of JavaScript programming to make web sites update the contents of their pages without refreshing the page. Neither of these teaches programming to a beginner.
  • TI-calculator programming is extremely limited. Skip it.
  • Game creation kits or game mods bypass much of the knowledge needed to learn in order to build games, but the range of games you can make with these kits is often limited. Also, skills developed in one game creation system usually aren’t transferable to other systems, or even to programming in general.
  • Logo & Turtle were historically used to get kids into programming by drawing interesting pictures with the computer, but are out of date now. Scratch is the next generation form of Turtle and Logo.
  • Lego Mindstorms provides an interesting way to learn programming by making robots, however these kits are often expensive. However, Lego Mindstorms is not a bad introduction.

Downloading and Installing Python (and Pygame)

You can download Python from the download page on http://python.org. Or just click here to download Python 3.1 for Windows directly. After the download completes, you can double click the file to start the installer. The default settings are fine, so just keep clicking Next until the installation finishes.

Be sure to download a Python 3 version (such as 3.1) rather than a 2 version (such as 2.5, 2.6, or 2.7).

Python by itself only lets you make games that accept and display text. The Pygame library adds the ability to program games with graphics, sound, and animation. To install the Pygame library, download the appropriate package from http://pygame.org/download.shtml, or click here to download the Pygame library for Windows and Python 3.1 directly.

A Free Programming Book

If you are going down the path of game programming with Python, this blog features the free book “Invent Your Own Computer Games with Python” at http://inventwithpython.com. Unlike other books that just give a laundry list of programming concepts, “Invent with Python” gives the source code for several game projects and teaches the concepts from these games. It is a book designed for self-study.

To find the source code for more games, you can check out the Pygame website’s list of games at http://pygame.org/tags/ or the Code Comments series on this blog.


Page 2 of 3 | Previous page | Next page