How to inspire the next generation of developers
Tags: programming, teaching, beginners
Published: 2019-06-30 11:41:54

---
title: How to inspire the next generation of developers
published: true
description: 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.
tags: #programming #teaching #beginners
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ir58xkt1fbwk51wk1fz8.jpg
---

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](https://thepracticaldev.s3.amazonaws.com/i/3tfy4mr7f9ycf7tj2qne.png)

[SonicPi](https://sonic-pi.net/) 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](https://sonic-pi.net/tutorial.html#section-1).

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:

{% youtube G1m0aX9Lpts %}

### CodeCombat

![CodeCombat](https://thepracticaldev.s3.amazonaws.com/i/6v1bxu2kyyzwbv5pp0i3.png)

[CodeCombat](https://codecombat.com/) 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

![Scratch](https://thepracticaldev.s3.amazonaws.com/i/h9viwv8ixexlcofgldam.png)

With [Scratch](https://scratch.mit.edu/) 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](https://sonic-pi.net/) and [Scratch](https://scratch.mit.edu/). 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](https://www.codeforfun.com/volunteering) and [TEALS](https://code.org/volunteer/guide).
- Contribute to an event or organize an event yourself.

If you know any other good resources, please share them in a comment!