Developing polyglot programmers

By Julia Roebuck. Posted

Julia Roebuck discusses the benefits of encouraging students to learn more than one programming language and shares her top tips

In the computing industry, being able to program in more than one language is a valuable skill. Although employers are often looking for experts in a particular programming language, there is also a great advantage in having staff who can work in multiple languages. Furthermore, there is often a shortage in the most popular languages, so being able to swap can help with career progression. If you introduce this idea at school, students are already trained in switching between languages and seeing the similarities, and can ensure their skills never become outdated as technology evolves and new programming languages appear.

Advantages in school 

In school, you might think, why bother? Students already have enough to learn and some students may get confused. However, the aim is not always to teach another language per se, but to show pupils how similar certain aspects of high-level programming languages are, and plant the seed that they are capable of learning and transferring their skills from one language to another. 

It also encourages students to teach themselves if they are interested in self-study, so they are not limited to the language set by the curriculum. It’s also likely to keep students engaged and motivated to learn if they can transfer their knowledge to a language that is more suited to their interests.

How to introduce multiple languages

Between the ages of 11 and 16, we are just teaching the basic constructs of all high-level programming. Of all the commonly studied programming languages at school, all of these base features are the same, so this is the ideal time to start mentioning other languages — even if you don’t use them in class.

As Python is the most popular teaching language, the suggestions that follow assume that is what you are teaching, but they will still be relevant if this is not the case. 

Lower secondary (ages 11–14)

Before you first introduce a text-based language, find out if any pupils are already using a different programming language. You can then speak to them on an individual basis about how much they’ve done, and use this information when you teach concepts in Python. They should be familiar with the same concepts in the language they’ve been using. You may notice that those who’ve done programming in a different language will pick up Python quickly.

From the moment you first teach Python, reinforce that all programming languages do exactly the same thing, just with different syntax and sometimes slightly different key words: all high-level languages have variables, selection, loops, and data structures.

If pupils have already learnt block coding, show them how everything they’ve learnt in that (usually in Scratch) can also be done in a text-based language. England’s freely accessible National Centre for Computing Education resources for Year 8 (ages 12–13) take this approach.

As you introduce each new programming concept, keep reinforcing that other languages all do the same thing, and that although this is the syntax for Python, other languages will often look similar. Conversely, pointing out differences in high-level languages can also be helpful. See the boxout for some examples of these similarities and differences.

If you are using Predict–Run–Investigate–Modify–Make (PRIMM) pedagogy, pupils will get used to examining code and predicting what it does. If you feel they can cope with it, show them the same code they are working on in a different language. This can be done on a continual or occasional basis, depending on how you feel the cohort can manage.

Upper secondary (ages 14–16)

With a set syllabus for this age group, you may not have the time to think about introducing an alternative language, but you can still reinforce whenever possible that what they are programming can be done in an almost identical way in other languages. This is the ideal time to get advanced students to try a second language, especially if they have completed class tasks. 

Advanced secondary (ages 16–18)

The fact they are studying computer science at this stage means many students at this learning level are often already programming in multiple languages. 

Encourage students to try different languages in their own time, especially programming something that they are interested in — often this is gaming or apps. Good areas to try could be Swift (Apple apps), Kotlin (Android apps), and Lua (gaming).

Most A level textbooks have multiple language solutions, so encourage students to look at the solutions in the other languages, even if it’s a brief read. 

If you have already taught Python, you could use a spare lesson to show some code that your learners have already done in a different language and get them to try a few simple tasks. A browser-based editor is best, to avoid the issue of having to download integrated development environment (IDE) software. There are plenty of websites that let you try out different languages.

You can encourage students to learn multiple languages early in their learning and continue through all levels of study. It will help demystify other languages and build skills they can use in their future careers.

Q & A

Which other language should I use?

If you know another language well, use that. Otherwise, I would suggest JavaScript, Java, or C#. All of these languages have many syntax similarities, and C# is popular among teenagers because of its use in Unity game programming. W3Schools.com is a great resource and has tutorials in Python, JavaScript, Java, C++, and C#.

I don’t know another language — what should I do?

You’re not going to be able to go into too much detail, but you can point out that the basic constructs they are learning in Python are virtually the same in other commonly taught languages. If you have a friend or colleague who does know another language, you could ask them to translate some code for you.


Print

Free - UK only

If you’re a UK-based teacher, volunteer, librarian or something in between, we'll send each issue free to your door.

Digital

Free

Just want to read the free PDF? Get each new issue delivered straight to your inbox. No fuss and no spam.

Buy

From £6

If you are UK-based but not involved in education, you can get hard copies by buying back issues.