Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I seem to remember reading somewhere some list of 4 "levels" of understanding multithreading. This may have been in a formal publication, or it may have been in an extremely informal context (even like in a Stack Overflow question, for example). Unfortunately I don't remember who referred to them or precisely what they were.

I seem to recall that they were roughly like:

  1. Total ignorance
  2. Awareness mixed with incompetence
  3. Relative competence mixed with fear
  4. True understanding

My intention is to refer to these levels in a blog post I'm writing, with a reference; but I can't for the life of me remember where I first encountered this list. Brief Google searches have proved unfruitful.

share|improve this question
    
Whatever you are remembering must be completely arbitrary so your examples would probably work just as well. –  ChaosPandion Feb 3 '11 at 21:46
    
You mean: The people that think they know, those that know they don't now and those that are unaware, but nobody truly knows if they know. –  Loki Astari Feb 4 '11 at 0:32
    
And at 5. Knowing what priority inversion is and how to prevent it. –  Tim Williscroft Feb 4 '11 at 1:58
2  
This question appears to be off-topic because it is about understanding general topics rather than the software development life cycle and computing concepts. –  MichaelT Sep 12 '13 at 14:08
add comment

2 Answers 2

up vote 7 down vote accepted

Do you mean the "Four stages of competence"?

  1. Unconscious incompetence
    The individual does not understand or know how to do something and does not necessarily recognize the deficit. They may deny the usefulness of the skill. The individual must recognise their own incompetence, and the value of the new skill, before moving on to the next stage. The length of time an individual spends in this stage depends on the strength of the stimulus to learn.

  2. Conscious incompetence
    Though the individual does not understand or know how to do something, he or she does recognize the deficit, as well as the value of a new skill in addressing the deficit. The making of mistakes can be integral to the learning process at this stage.

  3. Conscious competence
    The individual understands or knows how to do something. However, demonstrating the skill or knowledge requires concentration. It may be broken down into steps, and there is heavy conscious involvement in executing the new skill.

  4. Unconscious competence
    The individual has had so much practice with a skill that it has become "second nature" and can be performed easily. As a result, the skill can be performed while executing another task. The individual may be able to teach it to others, depending upon how and when it was learned.

share|improve this answer
    
Haha, I think so! What I must be remembering is someone referring to these stages and applying them to the topic of multithreading. Good call. –  Dan Tao Feb 3 '11 at 21:49
add comment

I like the Dreyfus Model better. While the Four stages of competence addresses the total lack of knowledge (which the Dreyfus model doesn't address), there is a huge jump from stage 3 Conscious Competence, and stage 4 Unconscious Competence that the Dreyfus model does address in the step from Competent to Proficient to Expert.

share|improve this answer
    
That is indeed a nice model. I'm accepting JB King's answer just because I'm relatively certain he correctly identified the concept I was referring to (or anyway, the concept underlying that concept). –  Dan Tao Feb 3 '11 at 21:58
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.