Scratch uses a building-block visual interface to create a 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 makes real animations and games using either pre-populated images and characters or by uploading new ones. Scratch doesn’t require 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 ages: 8 to 16 Requirements: Windows, macOS, or Linux You see the code along the side of your screen as you link blocks together and can switch programming languages on the fly to see the differences 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.  Google is working with MIT to develop the next generation of Scratch based on the Blockly platform. Blockly serves as the backbone for the Android App Inventor, which can be used to develop working Android apps. MIT took control of this abandoned Google project. Blockly is not as fully developed as Scratch yet, and there are not as many available tutorials. However, Blockly looks to have a great future as a robust programming environment for programmers of all ages.  Suggested age: 10+ Requirements: Windows, macOS, or Linux The drag-and-drop interface and easy play button maybe 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 that programming students can make the transition from a visual building block interface to a standard programming language.  Carnegie-Melon University developed Alice. The website may not look slick, but the program is still being developed and researched.  Suggested age: 10+ Requirements: Windows, macOS, or Linux The apps contains a lot of tutorials on different Swift commands that are designed, in this case, to move a character named Byte along a 3D world. Although no programming knowledge is required, kids 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 children are proficient in Swift Playgrounds, they can start developing in Swift. Suggested age: 10+ Requirements: iPad or a Mac Twine is a free nonlinear storytelling app that is used by people 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 nonlinear games and stories.  Twine stories consist of pages of 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 goes to a new branch of the story.  While this app does not teach coding, it does teach a lot of planning and design skills that are vital for game designers and storytellers. The app is 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, macOS, or Linux Download the programming environment for free, but you need access to a LEGO Mindstorms kit to make the program run. That doesn’t necessarily mean you have to buy one. Some schools and public libraries offer kits 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—in this case, a LEGO block—metaphor, just like Scratch and Blockly do, although LEGO’s version tends to build the program horizontally and looks more like a flowchart. Students combine actions, variables, and events to manipulate their LEGO Mindstorms creations. The programming language is simple enough for young kids while still being challenging for older ones and adults. In addition to the LEGO Mindstorms programming environment, LEGO uses an open-source Linux kernel that can be modified and programmed by traditional programming languages like Python and C++.  Suggested Age: 10+ (Younger kids can use this with supervision) Requirements: EVA3 requires a computer running macOS or Windows or a tablet running Android or iOS. Running the programs rather than debugging them, requires one or more LEGO EV3 robots. The graphics interface of Kodu is engaging, and programming for the Xbox version can be done entirely from the game controller. Kodu is an older but still solid choice if you have hardware that supports it. 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 included on this list, even though it is abandoned. Suggested Ages: 8 to 14 Requirements: Windows 7 and below or Xbox 360 Just remember that programming is inherently frustrating. It involves a lot of troubleshooting and trial and error; ensuring your child has equipment that’s in good working order is critical. The best tool parents can provide their budding programmers, however, is a sense of persistence and determination.