Learning something comes down to first absorbing the knowledge and then building the ability to use the knowledge. Specifically, learning a language requires that we 1) learn the words, 2) learn the sentences, and then 3) use the words to make our own sentences.

But a task that can be simply described doesn’t mean it can be carried out easily. If one does it with brute force, and has enough determination, or as any student takes mandatory foreign language classes in school from the age of 8 to 18, after 10 years of learning, undeniably with some minority excelling, most find their skill with the language as just so-so.

But we are not dealing with learning a language in 10 years.

There are some online courses or apps providing course material for teaching specific languages, most notable being DuoLingo and Memrise. These could help someone to get quick grasp of a language in a couple years. But due to limited material, the skill level one can reach with these courses is limited. One is likely to comprehend things like: How is the weather like today? Oh, it's raining. It'll be sunny tomorrow.

But he will have a hard time understanding things like: Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So, throw off the bowlines, sail away from safe harbor, catch the trade winds in your sails. Explore, Dream, Discover. -Mark Twain

Undeniably, some skills like in a language requires lifelong learning to be perfected. The purpose of this discussion is how one can learn just about any language to near advanced levels in a couple years without having to spend his entire time and with any material that he (or an educator) compiles.

How to get more efficient?

A technique called spaced repetition was introduced in the late 1800s by a German psychologist and proven later in 1970s through research on its usefulness. The discovery is that as one learns a new thing, the memory fades away after some time. The more unfamiliar one is with the thing, the faster the memory fades. So the idea is, so as to not indiscriminately repeat learning the thing but at the same time build a long-term memory of it, it’s better to repeat the learning at an interval such that the memory has not totally faded away.

This is a very useful technique. Say we learn a word. As we first see it, it’s hard to remember, so we repeat it in 4 hours. As it gets easier, we repeat it in 1 day, even easier, we repeat in 3 days, 6 days, 15 days, 30 days, 90 days, 300 days, an so on.

There are a few apps on Android or iOS to facilitate this process, most notable being Anki. The user can load up a set of words to the app, then every time he opens the app, he’s prompted with one words followed by another. When he taps “easy” or “hard” on a word, the app automatically schedules the word with the next longer or shorter interval for repeat.

What’s not so perfect about this?

First, for words representing simple concept, like “apple” or “cat”, this is OK. But for words with complex or abstract meanings, it turns out too crude. For instance the word “empathy”, from wikitionary:

Identification with or understanding of the thoughts, feelings, or emotional state of another person. Capacity to understand another person’s point of view or the result of such understanding. (parapsychology, science fiction) A paranormal ability to psychically read another person’s emotions.

When you see this, should you press “easy” because you kinda know the word (but not much about its true meaning), or because you understand its second meaning but not all, or because you understand all the meanings from the definition but have no clue on how it’s used? Note the harder part of comprehending a language is never about understanding the simple words like “apple”, it is about these complex or abstract words that present the most challenges.

Secondly, with small set of words, say 500 words, it’s manageable. With a larger set, say 3000 words or above (3000 words are hardly the minimum for any language), it becomes very hard to progress as the number of old words required for review on any given day becomes overwhelming.

Then how about understanding sentences? One could load a set of sentences hoping to learn them in the same way. But it’s basically as crude as it gets. Say you want to mark a sentence as “easy”, do you mean you understand the meaning of the sentence (but still can’t say it yourself) or you can say it (but still can’t write it correctly)? What if you basically understand the sentence but there are a few unfamiliar words in it? And what about sentences in similar structures but with a couple words replaced?

Other things essential

  • Words to learn should be automatically ordered based on common usage.
  • Words should be learned not only with its meanings but also in context with sentences.
  • Conjugations, if relevant in the language, should be well covered.
  • Setting comprehension level of a word should not be based on feeling of the user but his test results.
  • Testing should be from all the aspects of understanding, reading, listening, and writing.
  • Sentences with unlearned words should be deferred.
  • Able to obtain and learn about related words of some sorts.

How to go forward?

With all the above, we are able to effectively 1) learn the words, 2) learn the sentences, and then 3) use the words to make our own sentences, and hence the language.

My Android app MensLingua implements these considerations. It helped me learn French (while I was developing it) and after one year and a half, I was able to read 10 French books (~400 pages each). Check out some more description on Github

Cheers! Santé! Prost!