Cheat Sheet

Helping Kids with Coding For Dummies Cheat Sheet

From Helping Kids with Coding For Dummies

By Camille McCue, Sarah Guthals

Coding is fast becoming a skill that every child needs to be educated for in the 21st Century. But coding is taught at only a small fraction of schools, and often only at the high school level. Helping kids learn how to code also means you’re assisting them in developing a skill that is highly marketable and sets them apart from peers at school and later, in their careers. The topics in this cheat sheet can assist you on getting started when your kid expresses an interest in learning how to code.

Programming Languages by Ages

When we were growing up, there weren’t as many applications and languages targeting novices. Logo and Basic were the main choices! Luckily, in the past decade, programmers and educators from around the world have developed so many languages and environments for coders of all ages and levels of expertise! This is a short list of programming languages, applications, and environments by age.

Ages 4–7

The general goal for coding with children as young as age 4 is to help them develop logical thinking and “computational thinking.” Basically, this is understanding how to break apart problems and formulate a set of clearly defined steps to solve the problem in such a way that a computer could carry out the steps.

Ages 8–12

Children in the 8–12 age range really rev up their coding as they advance their math skills and improve their abilities in creating long and more complex sequences of code. At this point your goals in guiding them are helping them expand their understanding of how code is used (apps, electronics, and others), fostering their creativity, and building their persistence in sticking-to-it when they encounter challenges — including debugging. Help them realize that they can build almost anything they can imagine!

Ages 13+

Coding with teens introduces a whole new world of making! This is usually when youth start working in text-based languages and therefore engage in industry-standard languages and high-level concepts. At this point, you should be motivating your young coders to think about how they might apply what they are learning to future careers, advising them to really plan their programs, and encouraging them to determine what languages would be best for what they want to build.

(Note: Alice is a teaching language, and Cue is a robot that uses both tile-based code and JavaScript.)

Coding is a life-long journey, and Sarah has still been surprised and inspired by the programs she can write in Scratch, even being a professional software engineer! So if you have an older coder, don’t be afraid to challenge them with applications to build in “younger” languages. Scratch is the first language used at Berkeley for students who might be interested in computer science — undergraduate students! Exposure, creativity, and exploration is what matters; don’t feel the need to force kids to move onto “real” languages too quickly — let it be a journey!

Career Paths for Coders

The really neat thing about learning to code is that you can literally apply it to pretty much any other passion in life, and any other field. Our biggest piece of advice for coders in high school and college who are considering computer science as their career path is to first choose a passion outside of coding, and then figure out a way to apply coding to that passion. This doesn’t have to be a requirement, but it’s a lot of fun and really inspiring to have older kids discover that they can mix their love of rap music to their new-found excitement of computer science and make a career out of it. One of Camille’s former students, Sean, is finishing a degree in both electrical engineering and Computer Science at the University of Texas at Austin — he’s found his passion building more “socially intelligent” robots.

Software companies

The most commonly talked about career path for someone interested in coding is to work for a software company — such as Google, Microsoft, or Facebook. These companies typically hire folks who have degrees in computer science (Bachelor’s through PhD), although have been known to hire from bootcamps and people who are self-taught. Camille had a fabulous student, Ellie, who recently earned a physics degree and then attended a coding bootcamp. . . and she just landed a position as a front-end engineer at Swift Navigation! For many companies, though, the degree isn’t what matters, only the skill set coders possess. GitHub, for example, is a company that doesn’t require candidates to even list what school they went to, instead asking for a technical portfolio. These companies typically provide a lot of benefits, such as high-paying jobs, good benefits, and flexibility in schedule. Coders are usually the focus of the company, and employees can work on cutting edge technology.

Freelance coding

One of the really neat things about the computer science industry is that you do not have to join a large tech company to be a part of the field! People all around the world with varying levels of formal education, from being self-taught to having PhDs in computer science, become freelance coders. Sites, such as Upwork, help coders find people who need code written for them! A lot of freelance coders will work on web development or mobile development, because those projects tend to be more contained and have clearer cut lines regarding ownership. This is a great career especially for those who want to live in places where fewer technical jobs are available. One of Sarah’s cousins does this so they can live right next to Yosemite Park in California!

Entertainment companies

Most forms of entertainment these days involve an incredible amount of coding. For example, most movies have huge teams of software engineers for special effects and animation. A few of Sarah’s friends from school joined companies such as Pixar and Disney to help create some of the most amazing features — such as the hair on Rapunzel in the movie Tangled! Aside from movies, video games are huge efforts by hundreds and thousands of software engineers over year; for example World of Warcraft took nearly five years to make! Companies such as Blizzard (creator of World of Warcraft) and Riot Games (creator of League of Legends — a favorite of Camille’s son, Carson!) employ thousands of artists and engineers to produce games. Even the music industry has software engineers, creating soundboards, using algorithms to create new music, and discovering new ways to engage with their audience. One of Sarah’s favorite concerts was a Taylor Swift concert where wristbands were left on the seats in the stadium and lit up according to the music and where you were sitting, creating an incredible light show within the audience during the performance! Finally, entertainment parks are filled with software engineers; most notably Disney’s Imagineers are some of the most innovative when it comes to in-person customer experience.

Non-software focused companies

In today’s world, pretty much every industry and company has a need for a coder. Smaller companies might use existing software or get freelance coders to help. For example, small companies might use something like Wix or Squarespace to create their websites, both of which provide an easy-to-use interface for high quality websites. Camille’s son, Ian, launched his first startup — Spark Skill — as a teenager, doing his own coding to build his company website, engage in digital marketing, and grow his business through analytics! But larger companies, with more specialized software needs, might hire coders to make software specifically for their needs. For example, companies like Target hire software engineers to build the mobile apps, website, and behind the scenes software for sales and inventory. Working at non-software focused companies can be fun, because the software can have a direct application other than just “software.”

Any other industry

The really neat thing about knowing how to code is that it can be useful in pretty much any other industry and context, without it being the main focus of your career. Camille teaches her high school statistics students how to adjust their code on a Sushi Slots app in GameSalad to incorporate expected value computations so that it “pays back” at rates favorable to both the players and theoretical casino. One of Sarah’s high schoolers asked why she should learn how to code, when her dream was to be a preschool teacher. In this situation, Sarah recommended that the future teacher might want to create an app for her preschool students to learn their colors. Sure, there are apps out there that probably do this, but maybe you might want to include pictures of items within the classroom, to help reinforce the concepts even more. In any case, having the ability to code could give you the power to enhance and improve your job in ways you didn’t expect. Furthermore, even if you don’t code within your job, you will most likely interact with some kind of software, and that software will most likely have a problem. At this point, you will most likely have to interact with the IT department, and the more you understand about computers and coding, the more likely you are able to explain and help IT resolve your issue.

Example Applications for Novice Coders by Language

As a summary from the book, here are some ideas for programs you and your young coder can write, separated by programming language. Although these are the ones presented in this book, you can also imagine creating almost any of these in the other languages too. When in doubt, search the Internet for examples of programs you want to build in the languages you want to build them in—luckily there is almost always a near-example that can help guide you!

Scratch

Question and Answer Game

kidscode-question

kidscode-answer

Asteroid Game

kidscode-asteroid

Costume Changer with Sounds

kidscode-costume

Helicopter Flying

kidscode-helicopter

Crypto Code Breaker

kidscode-crypto

Rock-Paper-Scissors

kidscode-rock

Random Art Maker 1

kidscode-random-art

Random Art Maker 2

kidscode-randomart2

Race

kidscode-race

Greeter

kidscode-greeter

Micro:bit

Stock Ticker

kidscode-face

Face Maker

kidscode-stock

MIT App Inventor

Mobile App Game

kidscode-app

Greeter

kidscode-winston

JavaScript/HTML/CSS

Greeter

Note: Be sure you have a file called “puppy.jpg” in the same folder as your HTML file so that the image actually appears.

kidscode-first

Picture Hider

Note: Be sure you have files called “puppy.jpg” and “kitten.jpeg” in the same folder as your HTML file so that the images actually appears.

kidscode-picture

Webpage

Note: Be sure you have files called “winston.jpg,” “princess.jpg,” and “luke.jpg” in the same folder as your HTML file so that the images actually appear!

kidscode-welcome

Python

Mad Libs Game

kidscode-mad-lib

Number Guesser

kidscode-guesser

Greeter

kidscode-names

Art Maker

kidscode-print

Fibonacci Printer

kidscode-fibonacci

Java

Pizza Divider

The Pizza Divider is a BlueJ program that you can download and run inside of the BlueJ code editor.

kidscode-pizza

kidscode-pizza

Greeter

The Greeter is a BlueJ program that you can download and run inside of the BlueJ code editor.

kidscode-bluej

kidscode-naming

Number Sorter

The Number Sorter is a BlueJ program that you can download and run inside of the BlueJ code editor.

kidscode-numbering

kidscode-numbers

Phone Number Finder

The Phone Number Finder is a BlueJ program that you can download and run inside of the BlueJ code editor.

kidscode-phone

kidscode-phoning

kidscode-final

10 Ways to Invest in a Kid’s Coding Future

There are so many ways to invest in your young coders coding future. Though a computer with an Internet connection and time and dedication are some of the best ways to invest, this list gives an overview of some of the ways parents we know have dedicated time or money to support their children in their coding adventures.

Coding workshops: Coding workshops are often 1-2 hours and are often held at community centers or libraries. They vary in price, but provide novice coders with a sense of community and an easy-to-finish project that they can feel proud of.

Coding camps: Camps are typically more expensive but offer full- or half-day’s for at least one week. These are great for school breaks and students often finish the camp having completed a larger project and having a sense of what to do next, on their own.

Coding classes (in person): In person coding classes are typically once per week and can happen during the school year (after school or on weekends). Students are often learning something specific and there is a guided curriculum, but they still gain a sense of community and growth.

Private tutors: For your budding coder who really wants to build something specific, a private tutor can help get your young coder ready for a high school or college class, support them outside of a class they are already taking, or help them create a very specific project that they have in mind.

Coding classes (online): Online classes are great for asynchronously learning; with the ability to watch videos, pause them, and re-watch them, students are able to learn a variety of things without the hassle of leaving their home. Sometimes you can still get a sense of community, depending on the platform.

Lego Mindstorms: Lego Mindstorms is an entire kit that integrates coding and robot building. A young coder can work on this on their own, or even create a team of people and recruit an adult to help lead them through the curriculum provided by Lego in its Education set.

Kano: Kano is an all-in-one, lightweight, DIY computer. Using a micro-controller as the computer (Raspberry Pi), and simple mouse, keyboard, and speakers, young coders can quickly wire up their computer and play Minecraft, jump on the web, or start coding.

Codable toys: A great gift for the young coder is codable toys. With edutainment like Little Bits, or the Dash and Dot Robots, coding can be for an immediate purpose—changing and interacting with the world around you.

Computers and devices: A big question is always what kind of device to get for a young coder. Often hand-me-down computers (OSX or Windows) can be useful, as long as they can run the programs your young coder is looking to run. If you’re primarily working on the web, a Chromebook can be a great option (especially for Scratch coders). And every day more apps are coming out, making mobile devices more accessible to young coders too.

Software: Most software that a young coder will want to use is free; however, sometimes it can make sense to invest in software to support the entire development process. Software like Photoshop or Illustrator can invite more artistic folks into the coding world, integrating their creations into software like Blender or Maya to create games in game engines like Unity.