In 7th grade, I programmed a computer for the first time.
I was able, on an Apple IIe, to get my name to scroll repeatedly down the screen in multiple colors.
I did that. I coded that. In Basic.
And then, I stopped.
Over the years, I dabbled in coding and programming. Typing some lines of code into our Commodore 64, my dad and I took turns typing and reading the lines of code to each other for more efficient entry.
And with every new Web 2.0 tool that came along, there was always a reason to open the hood and tweak a little. Change the width of a picture, change the link, change the background color hexcode?
Over the years, I’ve become really good at tweaking.
But because I’ve never really learned how to code, I’ve never quite had that same experience I had in the computer lab of my junior high.
Coding requires a skill set and thinking process that is quite different from most other tasks. It is a unique blend of computational thinking, logic, problem-solving, experimentation, persistence, technical savvy, collaboration, and artistic flair.
Here are a few reasons why your children should be coding.
I am increasingly convinced that one of the most valuable, yet under-learned skills for this century is perseverance. Because our kids are so often handed things (stuff, information, etc.) without having to work too hard for it, they are not generally willing to persist at something until it works. In short, they give up too easily.
Programming often doesn’t go “right” the first time. It requires some stick-to-it-ive spirit. Sometimes, it is scouring online forums and guides and help screens for the frequently asked question. Rolling up your digital sleeves…and digging.
So many of today’s educational games and toys don’t really allow for innovation and experimentation. They have a pretty defined path or objective, and some predictable outcomes.
Coding, on the other hand, demands trial-and-error. It is often creating something from scratch, having it blow up a number of times, then tweaking the daylights out of it until it works the way you imagined it in your head.
Honestly, I have very little understanding about algorithms, heuristics, and a bunch of other computer science terms I can barely spell. But I use “if-then” statements all the time. That’s the language of code.
The same processes that are learned in coding are the ones used in, say, cooking. It’s taking a step-by-step approach where you “take a bunch of random ingredients and start layering them together in certain quantities, for certain amounts of time, until they produce the outcome you had in mind.” (Mother Jones)
Coding teaches iteration (repeating a process until you reach the desired outcome) and parallel processing (running two or more processes at the same time and capitalizing on downtime). Ever do these things in your daily life?
At the very least, we are massive consumers of all sorts of technology. 2015 was marked as the year of the Internet of Things. We not only have devices in our back pockets, but we wear them on our wrists, store food in them, and drive them.
As a colleague of mine–an amazing computer science teacher–reminded me that “you can drive a car successfully without understanding how it works. But you are a much better driver if you have a larger understanding of the systems in your car.”
She’s right, too. Remember the first time you drove a car with ABS brakes? How long did it take to stop pumping the brakes and let the computer make the thousand decisions each second to keep you from skidding.
I know dozens of people that can use their smartphone successfully. But many of those same people don’t understand how wireless and GPS and bluetooth work, and are baffled when things don’t connect, upload, or work the way they should.
It’s a far cry from not knowing how to program your VCR, eh?
Now, considering the increase in our digital world and the number of people needed to program all those devices and technologies, here’s a stat you wouldn’t expect.
The U.S. is currently graduating roughly the same number of computer science grads as it did in the late 1980s.
When I was programming my name in different colors. Woohoo.
Yet, the Bureau of Labor Statistics predicts a massive increase in job openings in the STEM field by 2022, with half a million new jobs in computer science alone. And fully two-thirds of those won’t even be in the IT industry.
“One of my favorite new areas of study,” my computer science colleague tells me, “is bioinformatics.”
In my home state of Wisconsin, there are currently 10,106 computing job openings. Last year, the state produced 706 comp sci graduates. (See your own state here.)
Fortunately, you can turn your kids loose on getting started with coding, even if you haven’t ever programmed a line yourself. Here are three that work well as starting points for upper elementary and middle school kids.
Scratch — Created at MIT, Scratch is a visual way to learning programming without the “gibberish” of coding that scares so many away. As easy as stacking legos, kids can create animations and games while learning looping, if-then language, and other code basics. Free to use, students create an account and can share their creations.
AppInventor — Also an MIT creation, this drag-and-drop tool lets kids learn how to create apps for their Android phones and devices. Great tutorials for learning, too.
Alice — A downloaded program that offers a drag-and-drop tool for learning programming basics. This one is great for storytelling.
There’s plenty of similar tools that are accessible for kids and walk through the basics of coding.
But my favorite is, hands-down, Code.org.
Hadi Partovi and his Code.org team launched the Hour of Code a few years ago. The challenge was to have kids (and adults) spend one hour learning how to code. To make this easy, they created a series of tutorials and unique games that appeal to all. You could create your own Flappy Bird game or program with Elsa and Anna in Frozen.
This year, it’s Minecraft and Star Wars.
Kids can start with a variety of these basic building blocks activities, but the cool part of Code.org is the ability to “graduate” up to more serious coding. Students can access some of the tools mentioned in the list above, KhanAcademy and CodeAcademy courses, and other resources to learn JavaScript, Python, and more.
There is even a section of activities for learning coding basics without technology, like pen and paper, or a deck of cards.
Best of all, it’s free. Backed by some of the biggest names and organizations in the tech world, Code.org offers robust activities and tutorials, a huge video library and curriculum, teacher resources and professional development, and complete online courses…all for free. Yup.
Code.org heavily promotes its Hour of Code during the late fall each year. But the resources are available year-round.
Ask your children if their teachers are doing the Hour of Code in school, or feel free to share this with their teachers. (You might want to brace yourself for them coming home the next day saying “Can I go on the computer and do some coding?” Gonna happen.)
What I love about coding, for my own boys, is the shift that it causes. Instead of always being a passive consumer of technology, they can become active creators of what’s on their screens.
I don’t know if they’ll go into a computer science related field, and that doesn’t really matter to me. But I want them to think like a coder, wherever they go.
What about you? Have your kids tried their hand at coding yet? Add your comments below!