Foreword - Ruby Wizardry: An Introduction to Programming for Kids (2014)

Ruby Wizardry: An Introduction to Programming for Kids (2014)


A long time ago, I was a little kid growing up on a farm in rural Pennsylvania. My hometown is small enough that my parents’ farm was just half a mile down the road from my maternal grandparents’ house, my mother’s childhood home.

One day, when I was seven years old, I was visiting my grandparents. It just so happened that one of my uncles also dropped by on that particular day. He wanted to give my grandparents a present: their first computer, a Mac Plus.

You see, my uncle was heavily involved in all kinds of computing shenanigans. And computers were still a new thing in those days, so not many people had them. My grandparents, caring about their son and his interests, decided it would be a good idea to check out this whole “computer” thing.

Excited by all the hubbub, my uncle called me over to the computer and explained what it was. He told me that you could do all kinds of things with computers, but that he thought I might like this one. On the screen appeared these immortal words:

Welcome to ADVENTURE!

Original development by Willie Crowther

Major features added by Don Woods

Conversion to BDS C by J. R. Jaeger

Unix standardization by Jerry D. Pohl

Conversion to PHP by Matt G. S. Cox

Adapted for by Rick Adams

To play the game, type short phrases into the command line below.

If you type the word "look," the game gives you a description of

your surroundings. Typing "inventory" tells you what you're

carrying. "Get" "drop" and "throw" helps you interact with

objects. Part of the game is trying out different commands and

seeing what happens. Type "help" at any time for game


Would you like more instructions? no

You are standing at the end of a road before a small brick

building. Around you is a forest. A small stream flows out

of the building and down a gully.

What's next?

Then, just a blinking cursor. By typing in simple instructions, I was able to explore a wonderful world, with an endless cave, a sneaky pirate, and a maze of twisty little passages, all alike. I was absolutely enthralled. My uncle told me, offhandedly, that some people called programmers had to actually teach the computer know how to play the game. I was hooked. I started asking to “go see Grandma” so much that my parents started saying, “You don’t want to see Grandma, you want to play with Grandma’s computer.”

“No, I want to see Grandma and play with her computer,” I replied.

Today, computers are very different. That Mac Plus had an 8 MHz processor, which could handle 1.4 million instructions per second. It also had 1MB of RAM. An iPhone 5s, today, has a 1.3 GHz processor, which can handle 18200 million instructions per second, and has 1GB of RAM. Games today don’t present you with some text; they present you with full 3D graphics.

But I still firmly believe that a computer can change a child’s life.

Ruby Wizardry is a book that captures that wonder I had as a child, sitting at this thing they called a “keyboard” for the first time. Ruby is a much nicer programming language than the GW-BASIC I cut my teeth on, but the core idea is the same. Give a child a way to bring their imagination to life, and amazing things will happen.

I hope Ruby Wizardry brings you the same joy that computers have always brought me.

Steve Klabnik