There are a dizzying number of ways you can go about learning how to program. For kids this can be even more confusing. The following are the Breakout Mentors recommendations for how to get started programming – but it isn’t exactly one size fits all. You want to be able adjust for each students age, experience, interests, and preferred learning method. For all of these resources there is a benefit to having a programming mentor to help.
Students Under 10
We recommend starting with games based on providing a list of instructions that are followed by another character. Given that the character will blindly do whatever you say, it requires clear communication to achieve the desired result. This is exactly what computer programming is – the computer blindly follows your code and does what it says!
These games offer a highly structured environment with only a few commands that are allowed. Yet they are challenging because you have to keep the state of the game in your mind – “after the robot moves four steps, turns left, moves one step, and turns right, he will be in this position facing this way.” Simply put, they are an engaging introduction to programming logic.
Here are some of our favorites:
- Light-Bot (online)
- Light-Bot 2 (online)
- Cargo-Bot (iPad)
- Move the Turtle (iPhone/iPad)
- Bee-Bot (iPhone/iPad)
- Kodable (iPad)
Students that enjoy those can move on to the Scratch programming environment. We recommend starting with the Code.org tutorial as a fun way to introduce the different concepts.
Students 10 to 14
Scratch is the top choice for first time programmers to learn the basics through creating fun programs. It is drag-and-drop, which removes some of the barriers to young students learning programing, while at the same time teaching the important concepts.
- Read our article with a more in-depth description of Scratch with examples
- Go to the Scratch website
- Scratch learning resources coming soon
There is an impressive amount of complexity that can be accomplished in Scratch games, but eventually it will be time to more on to a more traditional programming language. This means instead of drag-and-drop, your student will be typing. It’s important that the student is able to effectively communicate their thoughts to the computer – hunt-and-peck typing will take too long and require too much brain power to be effective for programming.
- TypingWeb provides the top free online course to learn how to type
- A realistic goal should be to not look at the keys and achieve 30 words per minute with very few errors
Python is an excellent choice for a young student’s first type-based programming language. It has a clean syntax what doesn’t require semi-colons or other confusing characters. Python programs can be written entirely in a text-editor, so the student doesn’t have to learn an intimidating IDE at the same time.
- Install Python on your computer
- Recommended Python book – Hello World! Computer Programming for Kids and Other Beginners
- Recommended free online Python book – Invent with Python
- Pygame module and resources for creating games in Python
JavaScript is another popular choice and has excellent online resources available. It is a widely used web programming language that is easy to get started.
- Khan Academy features an impressive in browser JavaScript editor that makes is really easy to see the changes you make in your program. There are excellent example programs you can use as a starting place and tutorials to learn more.
- Codecademy offers a series of fun interactive tutorials complete with badges when you complete them.
Students 15 to 18
Many high school and introductory college courses use Java – including the AP Computer Science exam – so Java is often the preferred language for these students.
- For the serious student, we recommend Stanford’s introductory course – Programming Methodology. The website contains video of all the lectures, handouts (essentially a text book), and fun assignments with code to get you started.
Python and JavaScript are excellent for high school students as well (see the above resources).
- For the serious Python student, we recommend MIT’s introductory course – Introduction to Computer Science and Programming. The website contains video of all the lectures, links to the reading material, and fun yet difficult assignments. Begin by following the instructions here.