John Skeet answered a question on
SO related to how to learn good programming in terms of learning good software design.
I liked John's statement which btw explains pretty much why to have a technical blog
like this one here.
[...]Write. Blog about what you've done and how well it's worked. This goes beyond looking carefully - just working out how to express your successes and failures will make them clearer in your own mind. Be warned: writing can be addictive and time-consuming.[...]
Actually this is a pretty good known concept: learn by reflecting about it (remember
retrospectives in agile development ;) ). And that's what you do when you explain things to others (like when you blog about a topic). For doing so you really have to have a deep understanding, unless you're just pointing out things of course.
Questions? Thoughts? Hit me up
on Twitter