Summary: For non-English speaking computer programming students, do the benefits of learning to code in an “English translation” outweigh learning in a foreign language?
Reading this article on Wired.com CODING IS FOR EVERYONE—AS LONG AS YOU SPEAK ENGLISH got me thinking about language learning and learning to be a software developer.
In software programming, there are keywords that are part of the vocabulary used to write a given software program. Most software languages originated in an English language speaking country. So to write code in that programming language, developers have had to learn the English-based vocabulary. Does this disadvantage non-English speakers learn to write code? And what advantages might there be in learning a programming language in what might be called, an English translation or version?
The challenge could be daunting. But many people believe that the benefits of a large community who share the same code and support resources far outweigh the negatives of learning to code in English-based or an English translation version.
And working with MotaWord's software developers, all of whom are not native English speakers, I have the perfect group to talk to about English translations, reading code, and writing code in English. I grabbed MotaWord's co-founder and Chief Technology Officer, Oytun Tez for his perspective. Below is an interview, edited for length and clarity.
MD: Ok, thanks for agreeing to this interview. This is a series of questions about learning English and your journey as a programmer. How old were you when you learned to speak English?
OT: I probably started learning English and coding at the same time, which is around like 10 or 12 years old.
MD: Did you encounter English language keywords in those programming languages, separately from your conversational English?
OT: Definitely. I had two vocabularies. One is coding English vocabulary. And one is the social vocabulary. So for instance, I learned many keywords such as Declare, and Constant. Those things are coming from my coding vocabulary. Whereas I wasn't really exposed to those words in my social English. There's a big alignment there, they support each other.
MD: Would it have been easier to learn coding had it been in Turkish, your native language?
OT: I don't think so. I don't think it would have a huge contribution to that, really.
It may even be better to learn it in English as a second language because coding is a different mindset. You don't see that kind of mindset in real life. So it's okay to learn this vocabulary so that you have a more coherent understanding of that paradigm.
MD: ...because natural language, our conversational language is so nuanced. It has connotations. It doesn't have the strictness and formality of mathematical language.
OT: Yeah, because you're learning that alien language in a very structured, very strict way as you said. I guess it lets you concentrate on just the content of the word instead of its relations with social life. Like when I see “Class”, which is a coding term. I don't immediately remember a classroom. Because I don't have that native connection. But now I have a very good understanding of “Class” in programming, unrelated to the social word “Class”.
MD: Would you guess that say, a Chinese or Korean person would find viewing an English translation or version to be a barrier when learning to code?
OT: I think the formal differences such as the shape of the expression - you only see them in the first few experiences of learning how to code. So after a month, let's say, you're not really seeing those things. Because they're just shapes for you. And you have other meanings about those shapes in your mind. As long as you know how to type then it doesn't matter what they look like. They could just consider it the coding language. It doesn't really have to be in the Latin alphabet. It can be any language as long as I know which character is which meaning.
MD: Right. So you have a visual association between those characters and the concepts that they represent.
OT: Yeah. Now that you ask, I'm imagining a programming language with Chinese characters. Let's say they don't look as complicated as they do now to me. I guess I could have a similar experience. It will be alien until I learned the syntax and how to memorize those symbols. And then it's just using them.
MD: Right. Well, thanks for sharing your experiences and thoughts on learning to code, English translations, and learning to
code as a non-native English speaker.
Supporting Oytun Tez’s view is a video:
Speaking with another team member here at MotaWord, Priya Ajit, Director of Business Development, she had some additional thoughts:
In my opinion, I think it will be difficult to have a multilingual software language, as there will be very limited online resources & communities of developers. All the current software languages have existing vast online resources to help and guide programmers in case of any issue or to further enhance their knowledge. This might not be a possibility in case of a multilingual software language.
However, if this can be solved, then it would definitely increase the possibility for any person to become a programmer even if his/her knowledge of the English language is limited or none.
There are, in fact, are examples of programming languages that were both created and exits in non-English languages. These typically have their English translation versions too. You can read more here:
Non-English-based programming languages (Wikipedia)
And if you’re a foreign-born programmer considering working in the U.S. you’ll need certified translations of your important documents. Not to worry. Read an example here:
Get A Certified Translation From Spanish To English For USCIS