Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How Learning a Human Language Is Like Learning a Computer Language

DZone's Guide to

How Learning a Human Language Is Like Learning a Computer Language

As programmers we get used to moving from one programming language to another, among language families this is relatively simple.

· Agile Zone
Free Resource

See how three solutions work together to help your teams have the tools they need to deliver quality software quickly. Brought to you in partnership with CA Technologies

Image title

As programmers we get used to moving from one programming language to another, among language families this is relatively simple. When I refer to programming language families, for the purpose of this article I mean high level or low level languages.

Between the different high level languages there are strong similarities both in structure of the statements and in vocabulary. The same applies to low level languages there are again strong similarities.

In much the same way that there are families of languages in programming there are also families in natural language for example Romance, Germanic, Uralic, Slavic.

When learning a programming language we may use syntax reference books when we cannot think of the precise name for a function or structure for a construct. We may try writing a program and then compiling or running it, then from the compiler or interpreter error messages we learn what we are doing wrong. If the compiler doesn't give us a precise description of what is wrong we may refer to the help for the language.

Image title

Much of the time we use our knowledge of the other languages we have used to guess the equivalent function names or based on our limited knowledge of the new language we try to formulate the code to match what we believe would be the expected structure. It's perhaps not very scientific but its enough to get you started and then you can investigate further or read up on the areas that are not clear.

So how could you use this to learn a spoken language? Well I am a native English speaker and had studied French at school so I had a grounding in two natural languages. English has its roots in both Latin and in German. Most of the vocabulary has both a Germanic and Romantic rooted equivalent for a word with the same meaning. So I had a good starting point for most western european languages.

When I decided to learn another language I used the same approach I used with programming languages. The language I wanted to learn was Italian which is a Romantic language like French. Having already studied French I had an understanding of the structure and some of the vocabulary. I was also able to use the Latin rooted words from the English language which are very similar to Italian words, you just need to change the pronunciation, so often you could make a guess at the write word.

Image title

Now I had some of the structure and some of the vocabulary, enough to be able to compile my first conversation. So how do you compile a conversation in natural language, well you talk to people and if you get something wrong they will generally tell you what you got wrong and how to correct your mistakes.

If the compiler i.e. the person you are conversing with, doesn't understand and cannot correct your syntax then you can ask for help as you would using the online help for a programming language. You might explain what you are trying to say going a little around the houses i.e. formulating your search expression. Once you are given an example you can save the snippet for future.

I can now be considered fluent in Italian and although I have a slight accent and occasionally get the pronunciation wrong where the words have double letters I probably speak the language as well as the average Italian. I have never had an Italian lesson, yet I now live in Italy and use Italian all the time both at work and home.

"Spero che vi siate divertiti a leggere questo articolo, buon proseguimento"

Discover how TDM Is Essential To Achieving Quality At Speed For Agile, DevOps, And Continuous Delivery. Brought to you in partnership with CA Technologies

Topics:
language learning ,human language ,programming languages

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}