logo
Search:

Login:


Forgot Details? Sign-up

Learn to program with Hackety Hack

There are many great things you can do with computers: play music, view web sites, 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 US. 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 only taught 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

This month I look at one such environment, called “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 (http://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, and 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 ten-year-old, and within a half an 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 which are common to all programming language, 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.)

 

NOTE: The term “Hack” is used in the title of this language, but there is absolutely no emphasis on the kinds of notorious programming sometimes called “hacking” in popular press. Among programming circles, the term “hacking” actually has positive connotation, and illegal or unethical programming is called “cracking.” The tutorials stay far away from the types of skills that would be used by an illicit programmer.

Should we do this? With whom?

Not every child will want to learn how to program. (I picked the one in my family who I thought would enjoy this.) I’m not sure programming should be taught to everyone, and Hackety Hack is not the best way for everyone. I’ll review many other fascinating tools for teaching programming in later columns. Some, (like Scratch,) are even more visual than Hackety Hack, and some are more closely tied to a traditional language (Greenfoot and Alice both help to teach Java programming.)

 

Hackety hack certainly deserves some attention. It’s powerful, fun, and free. It can be especially fun if a parent and kid want to learn something together. If you are a programmer, you’ll find this a much better teaching environment than professional tools like C++ (We give kids tricycles before we expect them to drive pickup trucks.) I found the system to be reasonably stable, but we did have an occasional crash. That would bother me from a commercial program, but I don’t mind so much when the program is free.

 

The real question is whether this is a worthwhile thing to do in the first place. If traditional schools are not teaching computer programming, why should we include it in a homeschool program? That’s a great question. First, computing is a very practical form of mathematics. In the lesson with my son, we extended the basic lesson to turn a square into a cool flower shape. As we did the project together, we had to think through what makes a square, how angles are measured, how many corners are in a square, how many degrees each angle should be, and how to determine the number of sides and angles for other shapes. The math geek in me loved that he noticed how a shape with a large number of sides and small angles begins to look like a circle. This is a concept normally taught in Calculus, yet my son and I discovered it together while munching on sweet rolls and wearing slippers. Programming is a great way to reinforce math and science. Secondly, programming is an outstanding skill to have. Most of the top jobs in the US Dept of Labor statistics involve some form of computer programming. Third, programming can be pretty fun. It’s a geeky kind of fun, to be sure, but it is a viable hobby.

 

If you have a kid who loves to build things, and who is interested in computing, consider challenging her to step away from the gaming console for a while and actually learn the skills to write a game or other application. With the right skills, and with an application like Hackety Hack, the computer can be a great educational tool and perhaps the greatest building toy ever made.

 

As always, stop by my site to see a video and some of the programs my son and I wrote. If you make something cool post it on the forum! Can’t wait to see what you learn together!

 

Blessings!

-Andy