As a parent, language acquisition is one of the most amazing things to observe. Now that my daughter is three years old, the weekly, or biweekly, excitement of hearing her say a new word is gone. It’s now an every day, if not every hour, occurrence.
Talking and reading to your child is important in their formative years because learning languages becomes more difficult as we grow older. This is but one reason teaching kids to code at an early age can be important. Much like my three year-old reading at this age, teaching kids to code at a young age may be more about exposing them to the world than actually expecting them to develop a new app for your iPhone. Now is a great time, particularly if younger, for them to begin learning logic–i.e., the basic structure of all coding languages.
I have not yet introduced my daughter to any of these sites. Despite my love for STEM learning and belief that introducing children to STEM ideas early is important, I’m going to stick to Legos, SnapCircuits, Magformers, and various other toys for at least another year or so.
But, if you have a 6-years old, or older, child, I think now could be a good time to introduce him or her and see if they become interested.
The remainder of this article will introduce several websites designed to help teach kids to code and provide links to companion resources.
Scratch has been mentioned on this site before and will continue to be as a fun tool for teaching kids to code. It is an excellent example of a visual programming tool and is one of the easiest interfaces to jump into and start learning coding structure. Learners have plenty of user-submitted programs to play with, and when ready, to open up and explore “under the hood”.
Scratch can be a great introduction to coding because it does not require learners to know any syntax. It enables users to build their logic skills. Using a drag-and-drop interface, you can move around commands and build your program. It introduce simple concepts such as if-statements that are important building blocks for larger, more sophisticated coding projects.
The understandable complaint about Scratch is that simplicity; the fact that one does not need to know, nor will they learn, how to code using Scratch. But, as an introductory tool, especially for a new or young coder, I find it to work well. Given it’s lack of advanced tools, a fun challenge for a more experienced coder may be to replicate sophisticated projects using just the commands available through Scratch!
Just like Scratch, Tynker relies on movable objects that represent commands. Users are able to manipulate the objects by dragging and dropping or by clicking and changing numbers. Unlike Scratch, and more like the Code Academy and Code Combat mentioned below, Tynker has games where users are asked to create the proper sequence of blocks to complete a task. For example, one of the easier tasks is to create a block sequence so that a candy-craving monster to walk, jump over a thimble, and then continue to walk until he eats a gumdrop.
Tynker, though, also allows you to create your own projects. The interface is similar to Scratch. I do think Scratch’s layout lends itself to being more easily picked up. However, the difference in learning curve should not be that much different. Tynker’s combination of free-play and designed tasks provides a one-two combination that should keep young coders interested.
Coding Websites with Step-by-Step Tutorials
Many websites offer step-by-step tutorials for learning to code. These websites provide interactive platforms along with pre-defined tasks that allow users to step through the learning process for a specific language. Overall, these sites are beneficial, but some critics are concerned with the spoon-fed nature; that people will not learn the thought process required to code projects. Moreover, these sites generally do not teach, or even really touch on, the process for or even need to compile your code. Or the environment in which you need to use to even do the compiling.
My thoughts are that the critics are right. Learners need to know these things. And perhaps those who use these sites will need a few steps back to figure out how to actually code on their own project outside of the environments provided on step-by-step coding sites. However, the benefits are that users can immediately jump in and being learning. The scaffolded approach allows gradual learning. The task-based setup gives positive reinforcement. In particular, I feel these can be important for beginning coders, especially young learners.
Code Academy is one of the most well-known step-by-step coding guides for teaching adults or kids to code. It was the site I first turned to when I wanted to begin to relearn long forgotten skills and learn new ones. I personally found the site mostly enjoyable to use, although some tasks were not documented well enough for me–who I would consider an average user–to complete. Luckily, Google to the rescue!
Overall, I would recommend Code Academy for older coding beginners. But, a more gamified experience may appeal to younger, beginning coders.
Code Combat, at its heart, is designed in the same manner as Code Academy: the same task-based setup with immediate feedback. Where Code Combat differs, and in a way that may appeal more to young learners, is in the experience-based level process and the ability to acquire items, or loot in gamers’ parlance.
Each level, or coding task, offers participants the opportunity to not only learn a new part of a programming language but also to gain experience from completing the task, as well as bonus experience for meeting certain challenges associated with the coding. For example, an early coding exercise asks you to direct your hero across the board to avoid certain traps. The bonus challenge is to complete the exercise with less than 9 statements. Doing so rewards you extra experience and points, which you could use to purchase items to improve your character.
Bascially, Code Combat is Code Academy + RPG (role playing game).
In my 20-30 minutes of gameplay (see, I even think of it as gameplay, not learning to code), the only negative experience I had was that it was not always obvious when my hero would stop moving. For example, many of the beginner tasks have you navigate your hero across a map. The hero, though, stops at certain points, from which you have to continue directing him/her. Of course, if you don’t realize the hero will stop, you end up sending him/her in the wrong direction (or, in my case, into a spiked wall!). Mildly frustrating but Code Combat makes it easy to start the level anew.
Note: Code Combat operates under a freemium model. This means that while much of the site can be enjoyed for free, users can only unlock some levels by spending money. Also, heroes can be upgraded much more quickly if money is spent. Money is not required to enjoy the experience nor for your child to be introduced to coding concepts.
Helpful Books for Teaching Kids to Code
Jason Briggs energizes the boring topic of learning Python by injecting sample programs with delightful elements: ravens, spies, monsters, and more. The book guides new coders through Python basics and each chapter includes a summary and a challenging puzzle to encourage readers to dig deeper while reinforcing what they have already learned. As one of the only Python coding books targeted towards juvenile audiences, Python for Kids appears to be a great choice for young beginners.
Recommendation: Focused only on one language, but Python is prevalent and useful. We say this one is a buy!
More Recommendations: We have not read through all of No Starch Press’s books, but overall we have been more than satisfied with those we have. Take a moment to review their full listing.
Coding for Kids for Dummies targets elementary and middle school students. Like Python for Kids, it breaks down learning into bite-sized chunks. Step-by-step guides allow easy progression through the programs.
Recommendation: The book is well designed and does a good job guiding readers through each program. However, the summaries available for the book (including the Amazon one linked) do not sufficiently point out that the book instructs students using a proprietary software for which readers will have limited access (without spending more money). While effective and many people have enjoyed the book, we suggest looking elsewhere.
Just like Coding for Kids for Dummies, Coding Games in Scratch centers on a specific coding environment. This book’s advantage is that Scratch is entirely free. The target age is 8-12 years old and is considered an advanced beginner book. The book clearly lays out fundamental concepts and, with 8 total games to learn, it provides plenty of learning fun.
Recommendation: You can find several places to learn more about Scratch, including their website which has a series of video tutorials. There is just something, though about a tangible object to read while both sitting at the computer or away from it. We highly recommend!
Ok, so we’re cheating with this one. Robot Turtles is not a book, but is instead an awesome game developed by Think Fun after an awesomely successful Kickstarter. Suggested ages are 4 years old and up. The game attempts to–and we feel succeeds–teach programming fundamentals through a card-based game. The game play is not too dissimilar from Code Combat (mentioned earlier in this article) in that learners use their cards, instead of dragging and dropping program blocks, to steer turtles to a gem on the game board.
Recommendation:Yes! To elaborate, Robot Turtles embodies our belief that games and toys can be instrumental tools for introducing and teaching kids STEM ideas. Moreover, Robot Turtles does it in a screen-free environment, which can be difficult given that coding is, by nature, a largely screen-heavy activity.