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 to 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 to 12
Children in this 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. Even adults with extensive experience are surprised by the programs they can write in Scratch. 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.
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 doctorate), although they’ve been known to hire from boot camps and people who are self-taught.
For many companies, 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 high-paying jobs, good benefits, and flexibility in work schedules. 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.
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.
Aside from movies, video games are huge efforts by hundreds and thousands of software engineers over years. 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) 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 audiences.
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.
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.
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
Following, are some ideas for programs you and your young coder can write, separated by programming language. 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
Micro:bit
MIT App Inventor
Mobile App Game
Greeter
JavaScript/HTML/CSS
Note: Be sure you have a file called “puppy.jpg” in the same folder as your HTML file so that the image actually appears.
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.
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!
Python
Java
The Pizza Divider is a BlueJ program that you can download and run inside of the BlueJ code editor.
The Greeter is a BlueJ program that you can download and run inside of the BlueJ code editor.
The Number Sorter is a BlueJ program that you can download and run inside of the BlueJ code editor.
The Phone Number Finder is a BlueJ program that you can download and run inside of the BlueJ code editor.
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 one to two hours long and 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 days 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.