What Youth Sports Can Teach Us About Teaching Coding
![What Youth Sports Can Teach Us About Teaching Coding](/content/images/size/w1200/2024/06/Screenshot-2024-06-20-at-10.27.16-AM.png)
Learning to code is often seen as a SERIOUS and IMPORTANT activity, because we’re “training the next generation of engineers” for “success in the modern economy”.
What if we could find some other reasons for teaching programming? Do you sign up your kids for the 4th grade basketball team so that they can be the next Jayson Tatum or Caitlin Clark? Probably not.
My nephew does soccer and taekwondo so that he can:
- Exercise while having fun
- Make friends
- Build a sense of grit through practice
While it’s more likely that in 15 years my nephew gets a job in a field related to programming than win the 2038 FIFA World Cup, economics aren’t why I’m eager to help my brother teach his kids to code.
I encourage my brother to get his kids coding so that they can:
- Exercise (their minds) while having fun
- Make friends
- Build a sense of grit through practice
Professional programmers (myself included) are often eager to teach kids to code through a first-principles, let’s-make-you-a-computer-science-major-at-age-seven approach. That approach does drastically improve a student’s odds of making it big as a software engineer later in life — but it isn’t very appealing to most kids.
So, is programming just unappealing to the majority of kids? No.
The problem is that the “make you a CS major” approach is simply too intense, too serious, too much too soon. Learning the basics of programming should be universally appealing because at it's core, programming is about:
- Expressing yourself
- Persevering through challenges to reach a goal
- Making cool stuff that you can share with your friends
So, how can we teach programming in a less intense and less serious way while still letting kids gain skills that will be applicable if they later want to be a professional?
Well, that’s the $64,000 question, but maybe youth sports can point us in the right direction.
How does an 8 year old’s first basketball practice succeed? (The NBA actually provides some great suggestions here)
Successful youth sports coaches:
- Focus on process, not outcomes. Encourage a good shooting motion, but an 8 year old might not have a 90% free throw percentage.
- Give kids age appropriate equipment. Smaller balls and shorter hoops lead to higher success rates but still help kids build skills for later.
- Provide ample encouragement in the face of failure. Youth coaches don’t scream at a kid for missing a step back two pointer (cough... Luka Dončić) or dribbling the ball off their foot.
More importantly, good coaches treat kids like (miniature) adults. They take kids seriously! Games are still played to win. Basketballs sold for youth leagues don’t have pictures of zebras and smiley faces on them, they’re just smaller so that they can fit in a kid’s hand. The youth court looks like a professional court. The 6th grade basketball championship isn’t played in a bouncy house.
How can we apply these ideas to teaching programming? We can give students smaller programming languages and tools that fit in their hands (heads). But if you squint, it still looks like they’re writing real code.
We can encourage kids to make cool stuff without confetti animations on every successful code run. We can teach them that debugging requires some grit, but that frustration is a natural part of doing anything important. We can encourage them to collaborate with their peers, and to be a good teammate.
The exact implementation of better coding curriculum for kids is an open research question, but if we can’t emulate the basic principles used by youth sports, we won’t get very far.
At Pickcode, we don’t have all the answers. But I do believe that our code editor is the programming equivalent of the small basketball — it’s a small tool that fits in a kid’s brain but still looks like the real thing. While that’s only a small piece of the overall puzzle for parents and teachers, it’s foundational.
Over the next year, we’ll have a lot to show off as we make more progress towards building a better way to teach and learn programming.
If you have any questions, feedback, or ideas for us as we develop our product, please reach out to charlie@pickcode.io!