Learn to Program With Hackety Hack!
- Andy Harris Author
- 2013 17 Apr
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.
Note: The term Hack is used in the title of this environment, 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; 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 always the best method for learning this skill. I’ll review many other fascinating tools for teaching programming in later columns. Some, such as 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 such as 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 if it was 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 the makings of 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 U.S. Department 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!
Andy Harris is a homeschool dad, father of four great kids, and husband to the greatest homeschool teacher ever. He has taught all ages of students, from kindergarten to university level. Andy is the author of a number of well-known books, including HTML/XHTML/CSS: All in One for Dummies, Game Programming--The L Line, PHP6/MySQL Programming for the Absolute Beginner, and Beginning Flash Game Programming for Dummies. For more information about his books, to see where he is speaking next, or to just say hi, please stop by his website: www.aharrisbooks.net.
Copyright 2012, used with permission. All rights reserved by author. Originally appeared in the April 2012 issue of The Old Schoolhouse® Magazine, the family education magazine. Read the magazine free at www.TOSMagazine.com or read it on the go and download the free apps at www.TOSApps.com to read the magazine on your mobile devices.
Publication date: April 17, 2013