In the world of software development technology is pushed forward at an extreme pace. Of this reason, all clever developers acknowledge the significant value of continuous learning (which I talked about in Known your weaknesses). Those who are the best learners, eventually ends up being the best in their field. Simple.
In this article, I want to share a thought on why teaching optimizes your learning.
We all know that the guys who teach us stuff, are very wise in their field. The obvious reason to this is that they are selected to teach because they are remarkably good at what they do. That might often be the case, but I also suspect it works the other way around: People who teach turns out to become remarkable at some point.
If we were to teach a subject we've just learned yourself, most of us would be surprised to find out, that we did not understand the subject, as well as we thought before facing the challenge of passing the knowledge on to other people. We tend to somehow overestimate our own understanding of newly acquired knowledge, which causes our learning eager to cease too soon. This happens all the time unless we do something about it. Why do think you had to write essays and reports in school? What school doesn't teach us is why teaching newly learned knowledge is good. Therefore, most people seem to drop the idea of teaching entirely after quitting college and school hereby reducing their learning ability.
An obvious way to teach nowadays is by blogging (publicly or privately) but there are other options: screencasting, talking with colleagues/friends. By teaching a subject, you force yourself gain a more complete view of it, thus optimizing your learning ability which ultimately increases your chances of reaching greatness.