Last week my company hosted an event called Techvriendjes
or TechBuddies
, which aims to introduce kids of age 10-14 to the basics of programming in a fun and exciting way.
I helped out in one of the sessions which teaches the basics of Python. It was awesome to see how quickly all kids got used to syntax. And even more so how excited they got when they finally figured out how to solve a problem they had been struggling with. They had fun and I'm sure some of them will continue having fun with programming.
Tools
We hosted three different workshops, in each workshop the kids used a different application to program something. I'll go through them to explain what they do and what makes them awesome.
SonicPi
SonicPi is a really cool program that allows anyone to create their own music using code. The syntax is based on Ruby. You can play single notes and scales easily, and you can use a wide range of samples. There's a lot of documentation to get you started which you can find here.
I was really inspired by a talk given by the creator of SonicPi, Sam Aaron. He really drove home the point that software is used for boring businessy things so much of the time. This video of him performing is a great demonstration of how powerful the tool is:
CodeCombat
CodeCombat is a browser game that can teach a whole range of programming languages, including HTML, CSS, Javascript and Python. In the game, you need to defeat levels by making your hero walk, attack, open doors, etcetera. Your code instructs your hero to complete actions in a certain order.
Just like SonicPi, the code you need to write to pass levels is completely valid code (but in this case Python/Javascript). It doesn't take too long before more advanced syntax is covered already. The levels create a really nice feeling of progression. It's like a fun tutorial that you just want to keep doing.
Scratch
With Scratch you can create cool animations and games easily. Scratch, in contrast to SonicPi and CodeCombat, doesn't teach syntax directly. Instead you can drag and drop control elements that behave like loops, conditionals, and many others. You'll still get used to the basics of programming, but without the risk of mistyping, which was a common cause of frustration for the other two tools. And don't get me started on Python indentation.
The visual nature of Scratch can make it easier to understand how elements interact. Kids especially can really unleash their creativity using this.
Why this matters
Although these programs may be aimed at kids, they're also a very fun and effective way of learning syntax for adults. My product owner learnt the basics of HTML, CSS and Python by doing a lot of CodeCombat challenges. You're never too old to play games, and you're never too old to learn new things.
Programming skills might become more and more important in the future. It is estimated that at any point in the last couple of years, about 50% of developers had less than 5 years of experience. That's caused by a huge inflow of new developers worldwide. Automation can play a huge role in basically all jobs, which makes programming an incredibly important skill.
Tools like SonicPi and CodeCombat reduce the barrier of entry to programming, which unfortunately is still quite big. Getting started can feel like a grind, there is so much to know. Just having some structure and boundaries might help a lot. To me, a 100-level game seems a lot less daunting than a 100-part tutorial.
We've got a really big opportunity here to inspire kids and maybe even help them find their passion. Kids who would otherwise never even try, because they would feel they didn't fit the stereotype of a programmer.
How you can get started
There are multiple ways you can help inspire the next generation of programmers:
- Contribute to open-source projects like SonicPi and Scratch. These projects often really appreciate you donating your time or money.
- Teach kids in a classroom setting or at a camp. Some interesting examples (I haven't verified these initiatives): Code for fun and TEALS.
- Contribute to an event or organize an event yourself.
If you know any other good resources, please share them in a comment!
Top comments (2)
Love this! What a great initiative. I especially think SonicPi is a really cool idea for teaching kids. I have taught the Hour of Code for code.org before, and have had a great experience with that too!
Great, inspiring! Thanks for this Raoul.