The word on the street is that nerds have become cool again, and one thing synonymous with hardcore nerdom is computer programming. Once, programming was seen as the province of only the most dedicated people — those willing to learn a new language and write line upon line of tedious code. Twenty years ago, when those few of us who had PCs were running DOS (the ancient times before Windows or Mac OS!), the 3-2-1 Contact print magazine included reader-submitted programs written in BASIC that patient subscribers could enter and run on their own computers. Well, programming still requires patience and careful attention to detail if programs are going to run, but there are more resources available than ever for people (including kids) interested in learning the fundamentals of programming. With basic HTML infusing even the most entry-level blogging and commenting experiences, a desire to learn important programming syntax and concepts is slowly working its way into the layperson’s consciousness and becoming less of an anomaly.
BASIC still has lessons to offer the new programmer, but it has been displaced by a number of newer languages. One example is Ruby, an open-source option developed by Yukihiro Matsumoto, who wanted to create a powerful language that put the human programmer’s needs before the computer’s in a pleasant user interface (2003: Artima Developer). I’m not a programmer — just an interested bystander — but from what I can tell when looking up entry-level languages, the two that seemed to come up the most in discussions about starting languages were Ruby and Python. And for which language did the blogosphere keep dropping how-to resources into my lap? Ruby. Of these resources, the one I liked the best was Hackety Hack, a freeware application, including self-paced programming tutorials, for Windows, Mac, and Linux systems.
Once installed, Hackety Hack’s tour walks the user through its friendly interface. Working in a split screen with instructions on the left and the compiler (a program that runs the specific coding language you’re writing) window on the right, it’s easy to go through the exercises and double-check your work when you inevitably miskey your code. I don't know if it's a Ruby, Shoes, or Hackety Hack feature, but the different parts of Ruby speech (can you tell I used to be an English teacher?) are automatically color-coded in the programming window, which is really helpful for seeing the structure and syntax of the code you're entering. There’s a strong (if a tad disorganized) online community of users available for posting questions and sharing links, and your profile allows you to publish programs you’ve written.
The application downloads with only four lessons, which is unfortunate because after completing them, I still felt like I’d barely scratched the surface and wasn’t too confident in my own mastery of the concepts provided; however, this could very well be due to my own lack of facility. When I posted a question asking about more material, I got two responses within 24 hours, one with a link to resources on other sites. These resources were ones I’d already found in my preliminary research on Ruby, but it was nice to know that the forums I’d browsed were on the level.
- Price Structure: Free
- Easy, non-intimidating user interface
- Included lessons do an excellent job of walking a newbie through the exercises
- Good sandbox (testing ground) for user-created programs
- Responsive community board
- Ends after four lessons
Additional Resources for Learning Programming
- Learn to Program. Chris Pine. Highly recommended in a number of forums; commentors say that this is a great guide for someone without any programming experience to learn real fundamentals (online tutorial on the left).
- Try Ruby!. Andrew McElroy and David Miani. A 15-minute in-browser tutorial to get started with wherever there’s a web connection.
What is your favorite entry-level programming language? Have you done programming projects with your youth? Any great resources to share? Tell us about it in the comments!