Yesterday I took a moment to observe myself learning. What I was doing was really quite simple, but it was very effective. I was making changes to some configuration settings on a piece of software, theorizing in advance how that might break things, testing it to see what actual effect and symptoms were, and then undoing the change. Reflecting on what I was doing made me realize that this is very similar to how mechanics learn their trade – they spend lots and lots of time taking things apart and putting them back together. In the process of doing that they get to know how things are supposed to work and how to recognize what is wrong when things don’t work.
Another blog that I read recently had a post titled Why you learn from failure, not success. I think that a corollary to that is that learning can be accelerated by purposefully modeling the consequences of mistakes (intentionally breaking things) so that you can learn to recognize the effects in situations where the mistake comes about by chance rather than by intention.