Introduction
Good morning. Language is a tool for communication via a collection of arbitrary elements. It is a function between symbols and sounds, and concepts and ideas. A picture of a dog is a picture of a dog the world over, but the language used to state what's in the picture is entirely arbitrary. Even within a single language, there may be countless ways to say the same thing. There may be no way at all to say another.
It's a miracle it ever caught on.
But catch on it did, and there are now loads of the things all over the place. Note that my definition didn't mention people at all. "Word" and "letter" were notable by their absence. Even "symbols and sounds" was being too specific really, as information may be communicated in any form. But now I'm just being silly. So for now, let's return to the definition of "language" we all know and love - things like English and French - and throw in programming languages in for good measure. They fit the definition, and are actually quite similar when you think about it. That's why they're called programming languages.
Aside: Does that mean programming and linguistics are similar skills? Discuss.
How to Learn
The annoying thing about people is that they're all different. I can't live up to the promise implied by the heading, because I can't tell you how you should learn. That's something unique to you; All I can do is offer advice. So, I'll start by saying how you aren't going to learn here.
Vocab
I've seen too many language books that were little more than lists for us to memorise. No one, with the possible exception of the photographically minded, is going to really benefit from them, as we need to keep a dictionary nearby anyway. Handy when the word you're after is in the list, and utterly redundant otherwise. Teach someone their times tables, then ask them what 7*16 is.
Rules
We all know a few. "i before e except after c," "apostrophe-s indicates possession," and so on and so forth. Rules are wrong. That rule itself is wrong, as some rules are right. The problem is that languages evolved over huge periods of time, and continue to evolve today. They only stop changing when people stop using them, and by then it's getting rather late. As a result of these evolutions, our handy rules need a stack of little rules to tell you when those ones don't apply. This just keeps on going until the exceptions outweigh any benefit the rule may have had in the first place! Before you know it, the list of irregular verbs is longer than the regular ones and no one knows what the heck is going on. I'm looking at you, French.
Pidgin
Or learn-by-example, or fridge magnet language. Here's an example:
1. Where is the cinema?
Où est le cinéma?
2. ...
Yes, I'm aware of the irony. These are usually followed by a nice list of vocab inviting you to plug in some words in place of the underlined bit. Then it's on to the next sentence. Now, while examples are a Good Thing, and having a few stock phrases under your belt is also a Good Thing, relying on them parrot-fashion is a sure-fire way to find yourself stumbling over when you need to make up your own sentences. It also doesn't help much when the sentence you're trying to translate is as filled with odd grammar and phrases as that last one was.
If you can't learn by recital, can't disassemble the grammar, and can't piece together fragments, then what do you do? Well, I lied. You do need all of those three things to get to grips with a language, but you can't rely on any one of them. They don't offer the whole picture. There's a piece missing, a question most people don't seem to ask...
Why?
Why? What is the reasoning behind it? Just what is going on? I don't think I've ever seen a natural language book that contains more than just vocabulary and some grammar to plug it into. Now, I'm not talking about deep etymological study here. No complex linguistic analysis. I don't even know the first thing about linguistics. But take a look at almost any programming book, and you will see more. Sure, they have example code dotted about and a big list of functions at the back, but they also tell you why you're doing what you're doing. How the if...then...else structure works. How to make loops. Why you can call a function foo(x) without it changing x. It's all done very casually, so you know what you're doing without having to understand exactly how the computer is managing to do it.
That is how this is going to work. Not just vocab, not just rules, but a little musing on the whys and wherefores.
And we aren't going to take ourselves too seriously, either.
I hope it works.
Return to the index.

