Learn to Learn: Coding for Ages 12+

The following is adapted from First Time Coders.

There are few ways you can better prepare a child for the future than teaching them to code. Computers are playing a larger role in nearly every industry, and as we face increasing automation of jobs, coding can lead to secure, stable careers. Coding also teaches valuable academic and life skills, like creative and analytic thinking and complex problem solving.

For these reasons, everyone—especially teens—can benefit from learning to code. In this age range, students will increasingly become self-learners and explore their individual interests. As such, teachers and parents can take more of a back seat, but there is still much you can do as a teacher or parent to help guide and encourage students in this age group.

In this article, I’ll outline the learning objectives and programming tools best suited for this age range, as well as tips for how parents can help support students at this stage.

Learning Objectives: Self-Directed Learning

Beginners in this age group may want to start with a block-based programming language, but starting at age 12, students are ready to transition to syntax-based programming languages like Python. These are the languages used by professional programmers in the real world, and they open up a world of possibilities, with imagination being the only limit. 

At this age, students should be encouraged to look up information online. One of the key measures for success in learning to code is the ability to learn new things independently. This ability is a core competency of any coder, because all programming languages become obsolete over time, and a coder should know how to teach themselves a new language. 

In this age group, students can move beyond creating projects by following the teacher’s instructions. They can now go online, read the documentation, and pick up the ability to code a new program on their own.

The overall goals for this age group are to shift toward self-directed learning and making real-life applications. This can be broken down into three main objectives:

  • Learn to learn. This is a core objective in this age group, especially after gaining proficiency in several block-based programming languages and a first syntax-based language. Students should spend time searching online for other people’s code and other documentation. Adults can play a crucial role here to encourage teens at this learning stage to experiment. Teens can develop confidence in discovering new knowledge and applying it on their own project. Eventually, they can develop the ability to code up their own project without the guidance of a tutorial or a teacher.
  • Gain empathy for users. At this age, teens can develop empathy for the users of their programs. Different from the younger age groups, teens start to create projects not just for their own use, but also for their friends, family, or the community around them. This is a crucial skill in building useful software, as students eventually will build things for people other than themselves.
  • Learn design thinking skills. Design thinking is a methodology that includes empathy in the beginning of the process, and aims to develop user-centric solutions. Design thinking is an important skill to complement the technicality of computer programming. Coders with the ability to create software from idea to reality can then create user-friendly solutions to problems by following the cycle of empathy, defining the problem, brainstorming, prototyping, and gathering feedback.


Programming Tools

For this age group, assuming the student already has a foundation in a block-based programming language, like Scratch or App Inventor, then the next step is to form a solid grasp of a syntax-based language, either JavaScript or Python. When students are ready for even more advanced programming languages, Swift and Unity are good choices.

JavaScript is what adds interactivity to a web page, such as a popup. It’s a key programming language for the web, and with its relatively simple syntax, it’s one of the best syntax-based languages for a child to learn first.

Like JavaScript, Python is one of the most commonly used languages in modern technology products and platforms. Companies such as Google and Facebook, as well as many data analytics companies, use Python heavily. It is also increasingly being used as the first language in college-level computer science courses.

Python is a full-fledged syntax-based object-oriented programming (OOP) language. Python’s syntax is simple, without too many semicolons or brackets, so it is easy for students to pick up quickly. At the same time, it is a powerful language and a great way to introduce more in-depth programming concepts. Python tends to be more text-based and less visual than JavaScript, but it is still a great foundational language for beginners.

Swift is the programming language developed by Apple in 2014 for iOS. Compared to JavaScript and Python, it has a relatively complex syntax, even though it is simpler than the other iOS programming language, Objective-C. As an intermediate to advanced language, it is suitable for students who already have the base knowledge that comes from having learned JavaScript or Python. Many students find Swift fun and rewarding because it allows them to build apps on iOS.

Unity is a game engine that enables users to create games in 2D and 3D. Unity is programmed using C# and is compatible with Windows and Mac OS. For many teenagers who are avid gamers, creating games on the Unity engine is like a dream come true. They will be able to create games that are 3D, program the characters to move, and design the gameplay through code. Because of the more complex syntax of C#, students should pick up Unity game programming only after developing a solid foundation in either JavaScript or Python.


How Parents Can Help

Encourage experimentation. It is important to remember and remind teen coders that coding is an act of creativity. There is no right or wrong approach to coding something, as long as we use it to create something from our mind. Encourage teen coders to modify the examples in this book, try and test out different ways to solve the challenges of each project, and eventually begin to code things that are not covered in this book.

Give critical feedback. Parents can be great first users for their teens’ apps and websites. Give direct feedback. “I am confused about what this button does.” Or “I wasn’t sure where to click on this page.” Teens can learn empathy by actively listening to user feedback.

Find community issues. Coding is a useful skill to help solve problems around us. Teen coders can feel empowered when they are encouraged to solve problems in their daily lives. Parents can point out the problems they see in their own lives and encourage teens to use technology to solve the problem. As an example, at First Code Academy we had a student who created a calendar app to help her mother organize the family’s schedule.

The teen years are a critical transition period for kids learning to code. It is at these ages that they can begin to build things with real-life applications and solve problems in the world around them. A focus on independent learning and meaningful projects will lead to the most successful outcomes for these students. As a parent or teacher, you can support them by offering feedback and guidance and encouraging them to explore creatively.

For more advice on how to teach coding to kids, including many fun, age-appropriate practice exercises, you can find First Time Coders on Amazon.

Share This"
Follow First Code Academy on:
5/F, Gee Tuck Building,
16-20 Bonham Strand, Sheung Wan, Hong Kong
Tue to Fri: 10:00AM to 7:00PM
Sat: 9:00AM to 6:00PM
+852 2772 2108
+852 2772 2101