Have I got a joke for you!
A SQL Query walks into a restaurant. It walks up to two tables and says, "May I join you?"
For those of you who did not run out and share this joke immediately on social media, read on.
"SQL" stands for Structured Query Language. It's the computer language that programmers use to retrieve and organize databases.
True story: When I worked for a school district, I shared this joke with my IT Department repeatedly for years (admittedly, to less and less laughs each time). I also use it as my opener at every educational technology conference I've ever presented to, and it totally kills. (Taps microphone: "Is this thing on?") After possibly the 50th time of delivering this gem, my then-Chief Technology Officer said to me, "You have no idea what that joke means, do you?"
"Of course I do!" I protested, indignation evident. (That was kind of a lie.)
But it did prompt me, over the course of a weekend, to take a SQL class online. This class opened my little world up to the utter beauty of coding. After that class, I became an expert in programming and am now making millions on the side creating apps.
Haha, not really.
That said, I really did take the class, and I really did learn how to use SQL, and I really did eventually learn what that joke meant. While it did not launch me into a lucrative career in computer science, it gave me something almost as important: I got a glimpse into the structure of programming languages and truly understood, as a mom and an educator, why it is such a crucial skill for kids to have.
December 9-15 is Computer Science Education Week, and also when this year's Hour of Code event will take place. Hour of Code is an initiative that provides everything a child needs to do a self-guided coding lesson for one hour. The Hour of Code site offers tutorials that make coding more accessible and understandable for all. Since then, it's taken off around in schools around the world.
In honor of this week, I wanted to write an article for parents to dispel the idea that coding is only for engineering majors, or only for older kids. Indeed, coding can help our kids develop important life skills like perseverance, grit, creativity, and critical thinking.
However, as is evidenced by my anecdote above, I recognize that I am not the foremost authority on the matter. So I decided to do what I do when I have any computer problem: I called tech support.
Graham McNicoll is the Chief Technology Officer at Education.com and has been with us for over 10 years. He’s also the genius behind our Coding with Roly games. Graham told me he's always been obsessed with understanding how things work, and began writing code in 2nd grade. Like other super-brilliant tech people I know, he got his start programming simple (and later, much more complex) games on the equipment he had available, equipment that our kids would laugh about today. He even went so far as to program text-based games on his TI calculator.
Coding Fosters Growth Mindset
I am a huge proponent of providing continual opportunities for kids to fail, go back and reflect, modify, and try again. Kids have a natural disposition to want to find out how the world works, and things like programming offer up a real-world way to explore the world and test theories. When I asked Graham about coding and thought processes, this is what he said:
"To me, programming is largely about creative problem-solving. Coding helped me learn that even the hardest problems can be solved, if you're able to think logically and decompose them into smaller, solvable pieces. I've learned to keep the mindset that when I dig into a problem or subject [and discover] that it's almost always not as hard as it appears. That the best way to get somewhere is to start. It really doesn't matter if you're starting in exactly the right place -- the key is to start."
Programming also helped Graham get over a feeling of impostor syndrome. "Everyone suffers from impostor syndrome to some degree," he told me. "We are not doing anyone any favors by making it seem hard, or something which only smart people do. It's really not that hard, though it took me many years to dive in and start figuring out how things work.”
Coding Teaches Creative Problem-Solving
College and the workforce seem light-years away to those of us with young kids, and we can only guess at what the future holds for schools with the advancement of technology. That said, it's a pretty sure bet that students with the ability to think through problems and devise creative solutions to those problems will have better career opportunities than those who don't.
So how, as parents, can we foster this type of thinking?
"Ultimately teaching children how to learn, how to solve problems, and how to have perseverance, will be the most important skill for an uncertain and ever changing future," Graham told me. "Programming is one way to do this. I would suggest it's a good way too. Just like learning what multiplication is, is far more important than memorizing your times tables, programming is learning how to do creative problem solving in a discrete environment with known rules."
Even though I am a champion of programming in schools, through this interview I discovered I was still predisposed to thinking that coding reinforces skills like logical reasoning, precision, and mathematical thinking. But Graham reminded me that coding is so much more.
"One should think of it as a creative act. Just like creating art, you start with raw materials, some constraints, and you end up with something new. If we can realize that programming lives very much in the intersection of math, logic and art, we can appeal to far more kids than if we think of it as a technical discipline."
I think this is an even better moment for a mic drop than my SQL joke. But you are all still welcome to use it if you ever need to impress anyone. I won’t tell.