8
  1. Is there any common in approaches to learning foreign language and programming language? Both machine and human languages have common structure: syntax, vocabulary and rules.
  2. Can we expect that a man, who knows several foreign languages would learn programming language faster than a man who knows only his mother tongue?
  • 3
    Impressive - a question about programming that is on-topic for this site. +1 – Hatchet Mar 10 '17 at 18:12
  • You need an "a" before "foreign." – Kevin Mark Mar 22 '17 at 16:36
  • This is a great question with a very interesting premise behind it - this certainly isn't enough to expand into an answer of its own, but for what it's worth, I know several bi- or trilingual programmers who have reported that (for some odd reason) they have had a much easier experience picking up new programming languages. – fi12 Mar 23 '17 at 1:04
  • I just noticed that the wording of "Is there any common approach," in your question, is awkward. This sounds better to me, "In what ways are the learning of programming and the learning of a foreign (human) language similar to each other?" – Kevin Mark Mar 23 '17 at 2:27
6

Please note that my answer is based on personal experience and reflection, not on actual research.

  1. While you are right that both types of languages are systems with a similar structure, the weight of the individual elements is distributed completely differently in a natural and a programming language. When learning a natural language you have to put endlessly more effort into learning vocabulary and, for lack of a better word, phrasing. While programming languages do have their "vocabulary" (keywords, variable types, functions, whatnot), the most important part of knowing a programming language is understanding its grammar.

  2. In the topic of grammar, another important thing is that you cannot learn programming language grammar by rote memory, which is definitely possible in a natural language. To program you must understand the system, not just be able to use it in a set of very specific situations.

  3. Natural languages are infinitely more tolerant of imperfection, because the recipients of your communication are humans. While some programming languages are a bit more tolerant of "imperfection" that others, as a rule there is little room for mistake there.

This does not mean there are no analogies between learning the two types of languages that can help at the very least in the way you mentally approach learning. Of these I would list:

  1. It's useful to think of coding standards as choosing the right register. Sure, you can learn to write code without them, just as you can ignore "social niceties", and it's something that may be forgiven as long as you are a beginner (but you will not get far without them).

  2. It's useful to think of similarities between the grammatical structures of different languages if you are learning more than one: once you've understood the case system of one natural language, learning another one with cases is going to come easier. Once you've wrapped your head around object-oriented programming, you're one step close to getting to know another programming language that is based on it, and so on.

  • Great point about tolerance for error. This is a double edged sword in programming - consider Visual Basic. VB is famously rather loose in terms of syntax and allows you to leave many things implicit and let the compiler "figure out" what you meant, but it can make it very easy for you to write something that the compiler interprets differently than you, leading to runtime issues. If you are that ambiguous in Java or C#, the compiler often will refuse to compile the code at all until you satisfy its need for certainty as to your expectations. – Robert Columbia Mar 13 '17 at 13:50
2

Question 1: I think the concept of feedback is an extremely important commonality in learning a programming language and a (new) human language. It is indeed fundamental to all learning. When we start to use the language, not just study it, we learn quickly by seeing the results of what we have expressed. The degree to which you are investing in the learning is also an important element. The more important a few lines of code are to you, the more deeply you will learn from the results. The same goes for human language. If a moment of conversation is important to you, your learning will be all the deeper, whether or not the result either confirms or disconfirms your working hypothesis.

Question 2: I suspect that the literature on language learning has only speculation to offer in this area. My personal sense is that there is unlikely to be a correlation. Learning to communicate in a human language is much more than a matter of vocabulary and syntax, and covers the whole range of human experience.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.