I have been reading up on the Dreyfus Model of skill acquisition. I like the model reasonably well. I have always been a big proponent of something along the lines of Reflective Practice; that is, trying to understand your own learning and skill, and use this understanding to improve your skill. Similar to meta-cognition (thinking about thinking).
While moving some wood out to the trash pile (I do some of my best thinking while doing physical work), I had an interesting thought. The Dreyfus model does work well in modeling the acquisition of skill in a given subject, and can be nicely expanded on. Specifically, it can be used to model the acquisition of general skill. As you acquire skill in any given subject, you acquire a sort of understanding of the way skill works in general – unconsciously or, with meta-cognition, very consciously – and can move up through the levels of understanding much more quickly in other subjects. In fact you can, through certain types of exercises in meta-cognition, acquire this skill even faster. I suppose we could call it meta-skill.
I think perhaps the most important thing you must do to acquire this meta-skill is to decompartmentalize your mind; you must learn to connect each of your experiences with the rest, not thinking about something in isolation. Sometimes you have to think about something in isolation, but it needs to be a conscious, temporary thing. After all, if your experiences are disconnected in your mind, how can one field you possess skill in help you acquire skill in another?
The idea of decompartmentalization in meta-cognition is extremely important in even a single field. Take, for example, my primary field: software engineering. To simply believe that understanding syntax and a few maxims like “write lots of comments” will give you the ability to be a good software engineer is laughable. However, this is how many students – and even some professionals – view things. They ignore the complex and vital relationships between mathematics and programming for instance. Things get even worse when they start to try to work in a problem domain that they are not used to; they have no idea how to apply programming to the problem! It’s alright to start out like this – the novice level of the Dreyfus model – but one needs to move past it to become more skilled.