Truth. You (or at least I) learn a subject best when it has to be taught.

I learned this most clearly when I was taking a course in Information Theory. Information Theory can be thought of as a bridge between mathematics and certain subdisciplines of computer scienceencoding, decoding, error correction, natural language processing, quantum computing, and so on. It's not a particularly easy subject, per se, but I found it deeply interesting, and so I worked hard and found it came naturally.

Because I went to a small school, and because it was an upper-level math course, I knew all but two of the people in the class from the beginning. The professor constantly encouraged us to work together on problem sets and in studying, so long as we noted on handed-in work whom we worked with. The confluence of these two facts meant that I rarely worked alone.

At first, it wasn't easy. I was worried that I wouldn't be able to handle the work: it was the highest-level math course I had yet taken. But working with other people helped quell this fear in several ways. The first was that any point you made, you had to be able to back up. Problem sets consisted of perhaps three problems, each with a couple of subproblems. The solutions were proofs, and had to be clean, understandable, and coherent. And these proofs could take hours of group work to complete. So when you proposed a solution, you would have to be able to defend it, because everybody would have to rewrite it in their own words if we decided it was correct. So you had a vested interest in deconstructing and critiquing other people's proofs, because

1. that was the only way you could be sure they were right, and
2. that was the only way you would understand them enough to be able to write up a proof yourself.

So this was one form of teaching. In order to be able to explain the proof to everybody, effectively teaching them the small chunk of Information Theory that understanding your proof represented, you would need to understand that material inside and out. Because if you didn't, eventually somebody would ask you a question where you would either be forced to bullshit or concede defeat.

However, this class gives me an even clearer example of how teaching helps learning. I had a good friend in the class who was also a housemate. He was, for reasons I'm withholding out of respect (he's a noder), often late to class and had difficulty absorbing material with the professor's lecturing style (I had no trouble, but different strokes, right?). So when problem sets came around, he would come to me for help, and we would spend several nights a week hashing out the material. At first, I helped him out of altruism, but I quickly came to realize that helping him was helping me.

Take the Hamming code. It's a code that inserts extra bits into a bitstring, representing the parity (odd- or evenness) of certain other bits. A clever trick, one used to introduce the material in class, involves drawing involved Venn diagrams representing subsets of the bitstring, but it uses notation that's thorny at first. I had a vague grasp on this material, since I had a basic understanding of Hamming codes from another class, but when I had to basically completely reteach it to my friend, I was forced to the realization that I didn't know it all that well. I understood enough to pass myself off as knowledgeable in a casual context, but under any sort of scrutiny, I fell apart. He peppered my explanations with tough questions, mostly in the form of why.

We continued this throughout the semester, and I ended up doing far better in the class than I would have on my own. Rarely did I go to another student to ask for help: we'd work through it, or I'd be asked questions. I'm not saying this to brag; I had plenty of trouble with topics. But I was able to learn everything I needed through paying attention in class, and teaching other people.

Teaching other people forced me to take apart my facts and see the holes that I couldn't admit to myself. Unless the people you teach are so disinterested that they aren't going to try to understand, they will raise questions that you couldn't have thought of. And in order to prepare to teach, you will have to reorganize your data, figure out what comes first and why, what subject builds on which others, and how everything is connected.

In short: if you're going to teach a subject, you can't easily fake it.