There are many great things you can do with computers: play music, view websites, do research, interact with people, and much more. Of course, computing gets more interesting when it is about creating things: writing your own songs, building virtual worlds, modifying images, and so on. Whenever possible, I like computing to be about making stuff. I love toys that let you build things. I often wonder if computers could be considered a building toy for the brain.

The ultimate expression of making things with a computer is programming. Back in ancient times—in the early 1980s—virtually all computer owners were programmers, and we expected that eventually all students would learn to write computer programs as a matter of course. That never really happened in the U.S. In fact, the current perception seems to be that programming is too difficult a skill to teach to most people. Computer programming is not taught in most public school programs at all, and when it is, it is taught only to the older students.

This is unfortunate. Today’s computers are more powerful than ever, and there are more choices for programming environments than we’ve had in history. Some of these environments are so easy that they allow a talented youngster to explore programming even without adult help, but bringing an adult along is part of the fun.

Hacking Away with Hackety Hack!

Hackety Hack! is a programming environment designed for beginning programmers. While it is a full-blown programming language, the emphasis is on having fun and writing interesting code. The website (hackety.com) contains versions of Hackety Hack! available free for all major operating systems: Windows, Mac, and Linux. The site also has additional tutorials and sample programs, as well as a community area that lets you add your own code.

When you install Hackety Hack! and run it, you’re immediately immersed in an environment that feels more like a gaming environment than a programming tool. Click on the “Lessons” tab, and you’ll immediately be taken to an interactive tutorial that walks you through the editor but then takes you through building your own programs. I tried it with my 10-year-old, and within a half-hour, he was writing a program. Without any input from me, he learned to write programs that draw shapes on the screen! I had to make him give up the computer so I could finish writing this column.

Hackety Hack! uses Ruby, which is a real programming language often used in web development and gaming. Ruby is an extremely friendly language, and the parts of it that are exposed by the Hackety Hack! environment are especially friendly. The program comes with four tutorials. The first just explains the environment: the various buttons, tabs, and doo-hickeys on the screen. The next tutorial explains what programming is and illustrates by gently teaching how to build a program that draws squares. The third tutorial explains some features of the Ruby language that are common to all programming languages, and the fourth walks you through the process of building a graphic interface for interactive programs using the intuitive “Shoes” library.

If you follow all the tutorials, you’ll be able to build a reasonably complex interactive computer program. Along the way, you’ll learn the basic concepts of programming taught in most computer science classes: variables, loops, conditions, input/output, debugging, and basic algorithms. Unlike a traditional programming class, the tutorials pretty much hold your hand throughout the entire process, helping you learn to think like a programmer.

The tutorials are solid enough that a careful reader will be able to learn essential programming with this tool even if she has no programming experience. Adult help is useful, but mainly for typing and proofreading. The adult helper does not need to already understand programming. In fact, experienced programmers will be alternately impressed and bewildered by Ruby’s syntax.