Computer programming is an in-demand and potentially lucrative career path, so these days parents may hope their children grow up to be software programmers. If you want to teach your kids how to program, where do you start? Try a few of the kid-friendly programming languages and tools on this list.

1. Scratch

Scratch, a Free Kids Programming Language, by MIT's

Scratch is a free kids programming language developed by MIT's Lifelong Kindergarten Lab. The free language is supplemented by getting started tutorials, curriculum instructions for parents, and a robust user community. There are even cards you can use to learn Scratch programming concepts away from the computer.

Scratch uses a building-block visual interface to create a more scaffolded experience for kids (and parents). You stack together programming components, such as actions, events, and operators.

Each block has a shape that only allows it to be combined with a compatible object. "Repeat loops," for example, are shaped like a sideways "U" to let you know that you need to put blocks in between the start and stop of a loop.

Scratch can be used to make real animations and games using either pre-populated images and characters or by uploading new ones. Scratch can be used with our without an internet connection. Kids can optionally share their creations on Scratch's online community.

Because Scratch is free and so well supported, it's one of the first suggestions for kid-friendly programming, and it's easy to see the influence of Scratch in many other kid-friendly programming languages listed here, such as Blockly.

Suggested Age: 8-16
Requirements: A computer running Mac, Windows, or Linux
Website: https://scratch.mit.edu/

2. Blockly

Blockly, Google's Refinement of Scratch

Blockly is Google's refinement of Scratch using the same interlocking building blocks metaphor, but it can output code in several different programming languages. Currently, this includes JavasScript, Python, PHP, Lua, and Dart. That makes Blockly a visual editor rather than just a kid-friendly programming language.

In fact, you can see the code along the side of your screen as you link blocks together, and you can switch programming languages on the fly to see the difference in language syntax for the same basic program. This makes Blockly ideal for teaching code to a wide range of ages, including older kids and adults who may not appreciate the younger-skewed cat and cartoons of Scratch.

If this sounds like it would be an amazing transition from Scratch, Google is, in fact, working with MIT to develop the next generation of Scratch based on the Blockly platform.

Blockly is also used as the backbone for the Android App Inventor, which can be used to develop working Android apps. MIT has taken control over what used to be a Google project.

Unfortunately, Blockly is not as fully developed as Scratch - yet, and there are not as many available tutorials. For that reason, we're increasing the recommended age or suggesting increased parental support. However, Blockly looks to have a great future as a robust programming environment for programmers of all ages.

Suggested Age: 10+
Requirements: A computer running Windows, Mac OS, or Linux
Website: https://developers.google.com/blockly/

3. Alice

Alice, a Free 3D Programming Tool

Alice is a free 3D programming tool designed to teach the concepts of object-oriented programming languages like C++. It uses the familiar approach of building blocks to allow children to create games or animations by programming camera motions, 3-D models, and scenes.

The drag and drop interface and easy "play" button may be a little less confusing for some students than Scratch's cluttered interface. Programs, or "Methods" in Alice, can be converted into a Java IDE such as NetBeans so programming students can make the transition from a visual building block interface to a standard programming language.

Alice is developed by Carnegie-Melon University. The website may not look slick, but the program is still being developed and researched.

Note: if you install Alice on a Mac, you will have to enable installation by going to System Preferences: Security and Privacy: Allow apps downloaded from: Anywhere. (You can change your security settings once installation is complete.)

Suggested Age: 10+
Requirements: Computer running Mac, Windows, or Linux
Website: http://www.alice.org/index.php

4. Swift Playgrounds

Swift Playgrounds, an iPad game programming in Swift

Swift is a programming language used to build iOS apps. Swift Playgrounds is an iPad game designed to teach kids how to program in Swift. This is a free download from Apple and does not require any prior coding knowledge.

The app contains a lot of tutorials on different Swift commands designed, in this case, to move a character named Byte along a 3-D world. Although no programming knowledge is required, kids do need to know how to read the tutorials and have some persistence for problem-solving. The drag-and-drop code eliminates typos, but Swift Playgrounds does not use the interlocking block interface.

Once your kid is proficient in Swift Playgrounds, they can start developing in Swift.

Suggested Age: 10+
Requirements: iPad / iPad Pro
Website: https://www.apple.com/swift/playgrounds/

5. Twine

Twine Non-linear Storytelling APP, Free & For All Ages

For kids that are more interested in creating games and telling stories and get frustrated with the technical details of programming, try Twine.

Twine is a free non-linear storytelling app that is used by users of all ages, including a large number of adults and educators. With Twine you don't need to learn any code. Rather than teaching users how to code, it teaches them how to structure and present non-linear games and stories.

Twine stories consist of pages text and images, like websites. The design interface shows the connected pages, each of which can be modified with text, links, and images. It works especially well for "choose your own adventure" type games where each player choice may go to a new branch of the story.

While this app will not teach kids coding, it does teach a lot of planning and design skills that are vital for game designers and storytellers. The app is very well supported with a support wiki, tutorials, and an active user community.

You can create Twine stories online through the hosted app or download an app for offline editing.

Suggested Age: 12+ (strong readers recommended)
Requirements: Windows, Mac OS, or Linux
Website: https://twinery.org

6. LEGO Mindstorm Robotics

LEGO Mindstorm Robotics

Another approach to learning to program is to look at robotics. Many kids respond to the idea of programming things that work in the real world. There are a wide variety of robotics kits and languages you can use to program them, but the LEGO Mindstorms system enjoys one of the largest user communities and a kid-friendly visual programming app.

You can download the programming environment for free, but you will need to have access to a LEGO Mindstorms kit in order to make the program run. That doesn't necessarily mean you have to buy one. Some schools and public libraries have kits available for student use, or you may want to find a First LEGO League near you.

LEGO EV3 programming software can be run on tablets and computers and it uses a building-block (a LEGO block) metaphor, just as Scratch and Blockly do, although LEGO's version tends to build the program more horizontally and looks more like a flow-chart. Students make combinations of different actions, variables, and events to manipulate their LEGO Mindstorms creations. The programming language is simple enough for younger kids while still being challenging for older kids and even adults (we once found a Google-sponsored LEGO programming event at a tech conference geared toward programmers.)

In addition to the LEGO Mindstorms programming environment, LEGO uses an open-source Linux kernal that can be modified and programmed by more traditional programming languages like Python or C++.

Technical requirements: The EV3 programming language runs on Mac, Windows, Android, and iOS.

To run the programs (rather than just debugging them) one or more LEGO EV3 robots. (Up to six robots may be daisy-chained for more complex programs.)

Suggested Age: 10+ (Younger kids can use this with more supervision)
Requirements: A computer running Mac OS or Windows or a tablet running Android or iOS
Website: https://www.lego.com/en-us/mindstorms/downloads/download-software

7. Kodu

Kodu Game Programming App, Microsoft Designed

Kodu is a game programming app from Microsoft designed for the Xbox 360. The Windows version is free, but the Xbox 360 version is $4.99. Kids can use the app to explore and design games in a 3-D world.

The graphic interface of Kodu is engaging, and programming from the Xbox version can be done entirely from the game controller. If you have hardware that supports it, Kodu is an older but still solid choice.

Unfortunately, there's no Xbox One version of Kodu, and future development looks unlikely. However, the Xbox and Windows versions are fully developed, which is why it is the only "abandoned" kids programming language on this list.

Suggested Age: 8-14
Requirements: Windows 7 and below or Xbox 360
Website: https://www.kodugamelab.com/about

Other Online Coding Resources

If none of these languages seem to fit, or if your child wants to try more, take a look at The Best Resources for Learning to Code Online.

For older kids, you may want to just jump right into standard programming languages like Python, Java, or Ruby. No kids programming language required. Khan Academy and Codecademy both offer free online tutorials for getting started with programming. At Dacoz, we recommend Study Island and SimpliLearn which both provide the online courses for you.

More Suggestions

Motivated middle and high schoolers may want to try their hand at making Minecraft mods. The Unity 3D game interface is another great way to jump into programming 3D games with a lot of online resources available. Just remember that programming is inherently frustrating. It involves a lot of troubleshooting and trial and error. The best tool parents can provide their budding programmers is a sense of persistence and determination.

This post is written by Marziah Karch, source link: https://www.lifewire.com/kids-programming-languages-4125938