Four Stages in Skills Progression

Automaticity is the ability to do things without occupying the mind with the low-level details required, allowing it to become an automatic response pattern or habit. It is usually the result of learning, repetition and practice. There are four stages in skills progression.

Stage 1 : Unconscious Incompetence

You are unaware of the skill and your lack of proficiency.

Stage 2 : Conscious Incompetence

You are aware of the skill but not yet proficient.

Stage 3 : Conscious Competence

You are able to use the skill, but only with effort.

Stage 4 : Unconscious Competence

Performing the skill becomes automatic.

Skills Progression

You reach the automaticity in the fourth stage of the skills progression.

Dr. Olenka Bilash

Automaticity applies to both teaching and learning a language. In both cases the more often an activity is done, the more automatic it becomes. The theory of automaticity relates to theories of cognitive capacity and cognitive load, which suggest that at any given time we have a finite amount of attention to give to an activity or process. When a process becomes more automatic, less attention is needed and attention can therefore be given to other processes or tasks.

This theory of automaticity is applicable to learning to code because our brains function the same way and the theories of cognition are still applicable.

Joel Spolsky

In programming, if the basic concepts aren’t so easy that you don’t even have to think about them, you’re not going to get the big concepts.

You should be able to type the solution for the problem as fast as you can type on the keyboard. If you can retrieve the solution as fast as you can think, you have progressed to an advanced level. This means you have bypassed the many steps of translating a problem description to code. This can only happen if you have thoroughly mastered the concepts needed to solve that problem.

Joel Spolsky has a good story about this in his book:

Serge Lang, a math professor at Yale, used to give his Calculus students a fairly simple algebra problem on the first day of classes, one which almost everyone could solve, but some of them solved it as quickly as they could write while others took a while, and Professor Lang claimed that all of the students who solved the problem as quickly as they could write would get an A in the Calculus course, and all the others wouldn’t. The speed with which they solved a simple algebra problem was as good a predictor of the final grade in Calculus as a whole semester of homework, tests, midterms, and a final.

Progression of Skills

Automaticity refers to the ability to perform tasks without actively thinking about the individual steps. This usually comes as a result of repetitive learning and practice. In the realm of programming, having a skill become automatic means a programmer can focus on higher-level problems rather than getting stuck on syntax or basic concepts.

In the first stage, referred to as unconscious incompetence, individuals are not aware of the skill or their lack of proficiency.

In the second stage, or conscious incompetence, they become aware of the skill but are not yet proficient.

The third stage, conscious competence, is achieved when individuals can utilize the skill, but it still requires effort.

Finally, in the fourth stage, unconscious competence, the skill has been practiced to the point that it becomes automatic.

Quote from Dr. Olenka Bilash, an education professor, highlights how automaticity applies to both teaching and learning languages, and that it relates to theories of cognitive capacity and cognitive load.

The second quote is from Joel Spolsky, a well-known software engineer and writer, emphasizing the importance of mastering basic programming concepts to the point of automaticity in order to grasp more complex concepts.

If a programmer can retrieve and implement a solution as quickly as they can think, they’ve reached an advanced level. This swift translation from problem description to code is a sign of mastery over the necessary concepts. This concept is exemplified by a story about Yale math professor Serge Lang, who found that students who could solve a simple algebra problem almost instantly were the same ones who would succeed in his calculus course. The implication is that mastery of fundamental skills to the point of automaticity is a strong predictor of success in more complex areas.