As a freshman trying to enroll in a good distro after all upperclassmen had claimed the best classes, I found myself struggling to find a course that would meet both my interests and Weinberg’s requirements. After intense research on CAESAR, I encountered two classes that would fit in my schedule equally well: a Linguistics class on Spanish phonetics and a Computer Science class taught in Python. That was when I thought, “Now I just have to figure out which language is easier for me to learn: Python or Spanish.”
By attending a STEM high school, I was exposed to a list of programming languages, and by simply being a language geek, I learned snippets of various ones, which led me to become proficient in at least five coding and three natural languages. Personally, the process of learning each one was completely unique. But, when it comes to science, are programming and human languages put in the same category?
There is a lot of discussion regarding the topic in academia, but by now the short answer is “no.” Although both variations are based on syntax – a set of rules that define the structure of what is expressed – there are many differences when it comes to semantics – the meaning of what is expressed. While natural languages allow both structural ambiguity and variations in meaning, such as irony and sarcasm, computer languages do not play with double meaning or multi-interpretation.
Even though computer and natural languages are logical, the former require much more accuracy. Whereas if you forget a “;” in your Java code your program will probably not work, you may misconjugate half of the verbs in a conversation in English and the other person will most likely understand you. You can write “I go yesterday” and the person will get you are referring to the past although the grammatical structure is not correct. In coding, the way you write every character matters, and elements such as precision are always present.
Human languages allow almost infinite possible word combinations for people to express themselves. These combinations give us things like poetry and song lyrics. When computer languages permit minor deviations, these are mostly systematic. You can, for example, write the same function in many different ways, but there is always only one interpretation for what is written. Individuals with dyslexia are proof of this major difference: after a while, they start to read codes as algorithms that might not always be the same, but follow patterns. There is no minimal chance a code will carry more than one outcome. It is always precise.
Even with differences between computer and human languages, in 2014, a Carnegie Mellon University research found out that when you read a computer code brain areas related to language processing are activated, which added to the conversation some states, such as Florida and Texas, were having on whether programming classes should be allowed to meet foreign language requirements. Most educators, against this idea, defended that, in fact, learning a language is much more than coming up with grammatically correct sentences and speaking with no accent. Language learning and both cultural and social understanding are complementary, and, unfortunately, this relationship is not something talking to your computer can provide you with (yet?).
However, although there are major distinctions between both group of languages, it is known that whatever you choose to learn will be beneficial to your brain. It is proven that bilingual people are usually more focused and better at time management, while coders have more efficient analytical and problem-solving skills. At the same time, both bilinguals and coders are able to make decisions faster.
The truth is that, nowadays, adding coding proficiency to your resume makes it look incredibly prosperous. And adding foreign languages proficiency has always made it so. As one of my Java high school teachers used to say, “A few years ago, having a foreign language on your resume was a plus. Now, programming languages became the plus. And foreign languages the must.” Fortunately, Northwestern does not put coding under the foreign language umbrella, which means you will hardly have to decide between studying Italian or PhP or Swahili and SQL. But just in case, go for both.