How can I use the Dreyfus Model of skill acquisition specifically to improve programming skills?
The Dreyfus Model fundamentals are summarized here. • Novice – Needs to be told exactly what to do. Very little context to base decisions off of. • Advanced beginner – Has more context for decisions, but still needs rigid guidelines to follow. • Competent – Begins to question the reasoning behind the tasks, and can see longer term consequences. • Proficient – Still relies on rules, but able to seperate what is most important. • Expert – Works mainly on intuition, except in circumstances where problems occur As illustrated by this blog entry, it could be used to improve the right level of information you need in order to achieve a certain programming task. By assessing your skill level on a given topic, you know if you can make decision or if you just need to follow a well-explained rule or convention. By assessing the one’s of your colleague, and you can quickly ask the right questions to your peer. That could come in handy in code peer reviews for instance.