I am a Geek Immigrant. Think of me as just off the boat at Technological Ellis Island. I’m that annoying sort of immigrant; the one who pauses in the middle of the sidewalk, staring up at the computer skyscrapers while I talk to myself, oh I just don’t even have any clue where to go.
I gave birth to two Geek Natives. They’re the sort who navigate the technological streets briskly. They can pick up a new device and understand it within minutes. They learn computer programs quickly, leaving me behind still staring at the instructions. They love the technology that confuses me. I have an MFA in writing; no background in computer science. And I’ll admit this here: I not only have no idea how to program the DVR, but I don’t even know how to turn on the machine.
See, the most annoying sort of immigrant.
But I’m also a teacher, and I’ve learned over the years that being a teacher means sometimes teaching topics where you have no expertise. The only requirement to being a teacher is being able to learn it before your students and turn around and relay the information to them. Therefore, I may not be the best programming teacher, but what I lack in natural computer science acumen, I make up for in commitment.
Being a Geek Immigrant mother to two Geek Native children, I set off to learn coding so I could turn around and help my kids learn coding. And I learned some valuable things along the way. Enough to construct this guide in case you are like me and coming to Geekhood in middle age. It will help you learn coding as an adult so that you can turn around and teach coding to kids. It’s for every teacher, every Coderdojo organizer, every parent, every person who wants-to-learn-coding-for-whatever-reason-but-knows-nothing-about-computers.
In other words, it’s for people like me, and maybe people like you if you’re anything like me.
Because yes, this MFA-wielding, non-DVR-touching person is learning computer programming using the resources below.
Learn at Their Level
One of my biggest hurdles was starting with sites meant for adults, which were written with an assumption that users entered with a modicum of computer science knowledge. I would like to reiterate that I have no computer knowledge. None. Zip.
So instead of getting books written for an adult, I admitted I was a neophyte just like my kids and went for books aimed at their level (which also turned out to be my level). The same went for websites. Sure, I could try my hand at the classes in Coursera, or I could admit that I’m really a better fit for playing on Scratch with the twins.
There is no shame at being the oldest one learning.
Start with Books
Books allow you to control the speed of the information, and they’re a great starting point for a new learner. When I told the nice people at No Starch Press about my predicament, they sent along a few review copies of books to try learning code as if I were a kid.
I started with Python for Kids, which GeekDad has reviewed in the past. Author Jason Briggs gives simple instructions to understand the basics of this versatile programming language. I have to admit that while my computer knowledge is still pathetically limited, I started to feel fairly powerful a few chapters into the book. Everything works as promised, and with each tiny lesson, I feel as if I am finally understanding the basics of computer programming.
They also sent along Realm of Racket that we’re tackling next, and a book on Scratch that my son has promised to teach me since he’s already proficient in the site. We have our winter break already planned.
You can also jump into the story Lauren Ipsum to introduce your child (and yourself) to the programming mindset. Think of it as the Phantom Tollbooth for the computer set. No, you won’t walk away from the story knowing a programming language, but you will be able to refer back to the story later on as you learn and say, “Oh! Now I get it.”
Learn from Online Programs
There are so many wonderful online and tablet-based programs designed for helping people with no experience learn code.
- Code Year: pick a goal, set a day of the week to work, and promise yourself that you’ll complete the project.
- Code.org: an organization aimed at getting people learning code. You can work on Scratch, a Code Academy project, or watch Khan Academy.
- Kids Ruby: learn Ruby online.
- Scratch: create projects or try out another kid’s project online.
- Stencyl: similar to Scratch; another site for making games.
- Hackety Hack: learn Ruby for beginners.
- Daisy the Dinosaur: an app aimed for young kids that uses a drag-and-drop interface.
- Move the Turtle: similar to Daisy above, it also gets young kids into the mindset of coding.
- Kodable: another app for teaching that coding mindset.
- Light-Bot: an app for iPad and Android.
- Hopscotch: a slightly more advance version of what you can do with Daisy the Dinosaur.
- App Inventor: another offering from MIT that is better suited for those who have been coding for a bit. You can create Android apps with the site.
- Alice: again, a good site to explore once you’ve graduated from Scratch.
When in Doubt, Ask
Programmers are some of the friendliest people you’ll encounter on the Web. I’ve found that every time I’ve gotten stuck, I can throw up a question on Twitter and someone will pop out of the woodwork to answer it. Jump into forums and ask away.
What resources have you used to teach kids (or Geek Immigrants like me) how to learn computer programming?