The Four Stages of Floating-Point Competence

The four stages of competence model describes the phases you go through when acquiring a skill:

  1. Unconscious incompetence: You don’t know what you don’t know.
  2. Conscious incompetence: You know what you don’t know.
  3. Conscious competence: You know what you know.
  4. Unconscious competence: You don’t know what you know.

I’ve applied this model to assess competence in binary floating-point arithmetic; let’s see where you stand:

$19.24 plus $6.95 equals $26.189999999999998; you are

  1. Unconsciously incompetent when you think there’s a bug in your programming language.
  2. Consciously incompetent when you realize that most decimal fractions are infinite in binary.
  3. Consciously competent when you study and apply the principles discussed in “What Every Computer Scientist Should Know About Floating-Point Arithmetic.”
  4. Unconsciously competent when you know to use decimal or integer arithmetic instead of binary floating-point.



Leave a Comment

(To reduce spam, cookies must be enabled)