Teaching Kids to Code
Our kids our growing up in an age where there are seemingly unlimited resources to learn new skills such as computer programming. I grew up in a much age where every personal computer came outfitted with the BASIC programming language. BASIC was not a very powerful language, but it was so effective in capturing a generation of programmers because it was easy to learn and because it a core feature on every computer. Innovators such as Facebook’s Mark Zuckerberg and Markus Persson, the creator of Minecraft, first learned to program in BASIC.
Now our kids are at an age where I think coding is an important part of their education. It is a skill that I think can be incredibly useful in almost any industry or profession. However, it can be overwhelming finding a good starting place, and too many options makes focused learning difficult. Here are the resources that I have found most effective for my kids.
Code Monster
This is my favorite coding site that I am using with our 8 and 10 year old boys. Many good coding sites use a similar format with two boxes – one shows the code while the other shows what the code does. I recommend sitting with your kid as they go through the exercises because it helps to talk them through some of the steps that can be a little confusing. This site is a very good intro to coding and uses the JaveScript language.
Khan Academy
Khan Academy is a great teaching resource for so many academic subjects, and coding is no exception. This is the site that my 12 year old daughter is using and it goes way beyond the initial introduction of Code Monster. They provide “talk-throughs” (videos that can be paused so that the student can play with the code themselves) for multiple different programming languages.
Scratch
We discovered Scratch a while back and it was a very engaging way for me to show my kids some basic programming concepts. Scratch was developed by MIT students and is designed for kids ages 8 to 16. Scratch uses visual code blocks that snap together and has a huge online community where users can view others projects and see how they were put together. We had a great teaching experience right at the beginning – my son was eager to create a game and I was able to talk to him about how a concept needs to be drawn out on paper before we can dive into a coding project. In five minutes he ran back into the room with a picture and all the details mapped out and within a couple days we published our first project – Rocket Man Cat Catcher. Click on the green flag in the box below to see it in action – use the cursor keys to control the man with rockets on his feet. The drawback to Scratch as a teaching tool is that it is very easy for kids to get distracted. There are so many cool projects and games published on the site that it is tempting for kids to get sucked into playing games and not make progress on their own projects. One great resource that can help provide more structure and guide kids through a few beginner projects is CS First developed by Google.
Python.org
Okay, this is not where we are yet, but this is where I want to get my kids to in their coding journey. Python is a useful and powerful language that I have found myself using for engineering projects at work, and it is a language supported by an abundance of user communities and resources. The previous sites I mentioned are fantastic tools for engaging kids quickly in computer science, but it is important to increase the limits once they have bought in and have established the basic tools needed to move forward.
My hope is that once they step foot into the world of more advanced programming, they will naturally become self-learners and will pick up other languages to meet their changing needs. I also fully expect them to surpass me one day. After all isn’t that what we expect from each new generation of coders? The tricky part is getting them engaged during the beginning of their journey.
Want to keep up with the latest projects and resources from Teach Kids Engineering? You can follow us on Facebook and Youtube