As strange as it sounds, programming languages and human languages share certain cognitive parallels that have intrigued researchers, questioning whether this learning ability is transferable.
Does a developer who knows JavaScript, Python, and C# possess the tools to become fluent in second or third human-spoken language? If so, do they have an advantage? And if yes, how significant is it?
Hence, this piece will explore key programming skills like logical structuring, syntax understanding, and problem-solving and how they can be applied in human language learning.
Likewise, we’ll consider important research and insights and conclude how these skills transfer and enhance the process of mastering new spoken languages.
Learning Programming Languages: Key Skills
Learning multiple programming languages is complex and requires person to have strong cognitive skills, including the ability to recall information quickly and accurately. This means a programmer needs to have strong short-term, long-term, and working memory.
However, a knack for retaining information and quickly accessing it when needed is only one part of mastering a programming language. Other pieces of the puzzle include:
Logical Structuring/ Control Structures
When creating a software application or an algorithm that uses self-contained modules, its structure needs to be clearly defined to dictate an optimal hierarchy. Essentially, this analyzes the best directional flow within a program based on certain conditions and parameters.
This can be compared to the structuring of sentences in human languages which can vary from language to language, with Spanish and English using the Subject-Verb-Object (SVO) structure, while some languages (particularly those in Asia) use Subject-Object-Verb (SOV).
Unless this structuring is fully understood, sentences will not make sense, just like a poorly structured program will not function correctly.
Understanding Syntax
Programming syntax refers to the individual rules of each programming language that need to be followed to ensure code is structured and formatted correctly. This ensures that any commands can be easily processed and executed by a system so everything runs optimally.
Syntax defines how programmers need to write code using a specific programming language and the correct syntax can vary from language to language. If the incorrect syntax is used, the code will be invalid.
Just like how human languages follow a specific structure, they also have their own rules like the syntax of a programming language. To fully learn a language, its syntax must be learned and applied effectively so other people can comprehend what is being said. For example, in English, clauses can be added to a sentence to provide additional information. Adding a clause in the wrong place, or incorrectly using a comma can completely change the meaning of the overall sentence.
Problem-Solving
Problem-solving in terms of programming languages requires an expert knowledge of the subject, and accessing long and short-term memory to recall the most appropriate methods to find a solution. An experienced programmer can always find a solution or a workable alternative to a problem, following meticulous steps to rule out impractical options – similar to ticking off a checklist.
When considering the similarities of programming languages and human languages in problem-solving, it should be noted that there are also parallels between data science, artificial intelligence, and machine learning. Especially from the perspective of a programmer.
An adept coder should have minimal difficulty in learning how machine learning algorithms work and applying these algorithms to develop tools that solve problems such as real-time language translation, fraud detection, automated PDF editing, and other tasks that require instant responses.
The Process of Learning Human Languages
Many of the technical aspects of learning programming languages can also be applied to learning the structures and complexities of spoken languages – the key difference is the approach to learning.
A large percentage of programmers prefer a more solitary approach, educating themselves at their own pace using a range of online material. There are, of course, collaborative situations such as group workshops but in many cases, learning to code can be a rather isolated experience.
Learning a language on the other hand can be much easier and more rewarding when collaborating with others. This can include partaking in language exchanges, hiring a tutor, or even spending time in the country where the language is spoken. The social and collaborative nature of mastering a new spoken language could deter many programmers who are more accustomed to independent learning.
Therefore, the transfer of programming skills to learning a human language will be dictated by the individual’s learning style and overall willingness to succeed.
Learning a New Language: Challenges
Many coders are self-taught, using various media such as apps, video tutorials, and podcasts created by experts, and often struggle to learn effectively in traditional academic settings.
This is another comparison to learning a human language, as many people prefer to learn at their own pace in a non-academic setting. This is highlighted by the fact that 50% of people who enroll in an introductory programming course fail to complete it, according to a University of Washington (UW) study.
However, even though programmers are in high demand in almost every industry, many employers still require academic qualifications. This directly signals a need to adjust courses and education strategies to suit the requirements of analytical thinkers.
Nevertheless, there are exceptions, with organizations in some sectors looking for unique and innovative ways to find the very best coding talents. In recent years, informal education has increased in popularity, with even the best cybersecurity companies organizing hackathons and bug bounty programs.
Just like learning a human language, motivation plays significant role, with many people only choosing to learn a language because their location or career requires it. The individuals who typically excel at learning languages, computer-based or otherwise, are those who genuinely enjoy expanding their knowledge, have a deep interest in language constructs, and are keen to embrace new challenges.
Chantel Prat, UW professor of psychology, commented: “We know a lot about why and for whom learning a natural language is hard or why learning to read is hard. The question now was, can we leverage that expertise to start understanding how people with different levels of expertise understand code?”
Are Programmers More Equipped To Learn New Languages?
Many of the processes and skills needed to master numerous programming languages can also be applied to learning a new human language, thus giving many polyglot programmers an edge over other professions. Skills such as logical structuring, understanding syntax, and even elements of problem-solving can be used effectively when learning a new spoken language.
Analytical thinking can assist programmers in the learning of a new language, making it easier to take on new information and retain it. This is because developers often need to engage their short-term, long-term, and working memory, meaning their brains are more in-tune when it comes to storing and recalling new words, just like remembering operators when writing code.
Although there is no exact science, when it comes to learning languages, what works for one person may not work for another. It is entirely plausible that a multi-language programmer stands a better chance of being a multi-linguist than someone who has only mastered a single programming language, or none at all.
Can Polyglots Learn To Program Easily?
The ability to learn a programming language will of course vary from person to person, with a deep interest in technology a must. A polyglot, however, may stand a better chance than most due to their ability to absorb and recall information quickly, giving them an edge when memorizing code prompts and important inputs.
Most polyglots can learn multiple spoken languages because they have a passion for learning them, this passion could also be applied to programming languages, but not always. This is why it is impossible to claim all polyglots have what it takes to be a good coder. This is because good programmers also need to excel in fields such as maths, science, and logic.
Ultimately, if a polyglot has a wide skill set and shows competency in maths and problem-solving, then their above-average memory capacity should stand them in good stead. Especially in comparison to someone who finds learning spoken languages difficult.
Lýdia Machová, a language expert and TED Talks speaker, said this perhaps in the most succinct way possible: “I personally think that if I have some talent for languages, that it helps me maybe 15% more than other people who are not talented. That means I need to work just 15% less than those who are not talented. And that is not really very much, is it?”
Conclusion
With all of the above in mind, why not put these skills into practice and learn a valuable new skill that can open up new doors in terms of both your career and your social life?
Whether you’re a seasoned programmer looking to challenge yourself by developing linguistic expertise or a polyglot seeking to transition into a new career or side venture, the crossover between these fields may be simpler than you expect.
Author Bio:
Nahla Davies is the editor and author of NahlaWrites.com