Things I Have Learned While Teaching Your Kids to Code
I’ve been teaching people to code for seven years. The majority of the time they are total beginners, have never written a line of code (consciously). It’s one of my favorite things to do. The biggest disservice the developer community set loose upon the world is the idea that coding is hard and enigmatic.
Sure, there are tasks that require a ton of math, like working at a hedge fund or making it through a Google interview, but basic software development is easy, and, dare I say, fun! It’s such a privilege to be able to lead people to that first “ah ha!” moment.
There are some distinct differences I have observed while teaching kids that are stark contrasts to how adults behave. I’ve been thinking about these a lot lately so I thought I’d share.
They Are Fearless
Adults in general are a little apprehensive when it comes to learning things that are new. When an adult that hasn’t written code before sits down for the first time they generally are summoning a lot of courage. First, they are admitting they don’t know something, this is very hard for adults. We’re supposed to know everything, and not knowing is a weakness. Second, they often think they are about to revisit algebra. It’s not until the first “Hello World” that they realize this is something they can do.
Kids are just the opposite. When I tell people we teach them C++ they are shocked and usually think this is a bad idea. How are kids able to write C++ when your average adult can’t? Kids are not afraid, they are not intimidated. You could say that kids might not know what C++ is, and that’s fair. I think if I showed up and said “Hey everyone, today we’re going to build a rocket and fly it to Jupiter” they’d be like, “chill, let’s do it”.
They Don’t Get Mad
The first place we lose new adult coders is the first time they get stuck.
I learned about the concept of eustress from the amazing Jane MacGonigal when I saw her speak. This is the kind of stress you experience in video games, when you are going through a hard level and are really frustrated. This stress feels better than regular stress because we know it’s possible to solve the challenge in front of us. It’s a game, it’s built to be beaten.
This is how kids approach coding. It’s not “Can I do this?” it’s “I can do this, once I get past this hurdle”.
They are Not The Problem
In customer support there is an acronym called PEBKAC. It’s a bit tongue-n-cheek but it stands for “Problem Exists Between Keyboard and Chair”. It’s how you would idenify issues where there is clear user error. Sometimes with people that don’t understand how computers work, or don’t realize their printer is unplugged. Something really obvious.
I have found that adult learners default to thinking something that is not working is their fault. They can be quite self deprecating, saying things like “Oh, I’m sure I messed something up here.” Sometimes they have, but sometimes they haven’t. The point is they automatically think it is them.
Kids are on the other side of this spectrum. Like, “this is broken” is where they go. I don’t know that this is better or worse as a reaction than being more technically self aware; actually, I think this is the worse reaction. Computers tend to be right more often than humans, so they are often wrong. However, it’s a sure way to make sure everyone near you drops everything to help you get through the problem. It is a more effective way to get a solution than anything else.
I had no idea how wonderful it was to be in a room with kids creating. There is nothing like it. There is just a general buzz as kids learn and get excited about the things they are learning. A lot of my job is administrative, so when I have the opportunity to host a class I get all the energy I need to go full throttle on spreadsheets for at least a month.
If you want to experience this for yourself bring your kids to Stack Exchange for a #JewelbotsBuild this weekend. It’s going to be a lot of fun.