More Thoughts on Mastering Programming

By | April 22, 2004

Reading Dave Thomas’s blog on Code Kata pointed to PragDave: MoreKata. I also stumbled across How To Practice on Chad Fowler’s blog.

Both of these entries discuss exercises that we can use to master the art of programming. Perhaps surprisingly, they use metaphors and concepts from martial arts and Zen. Those of us who have been programming for a while can easily see the parallels.

I’d like to add a description of attaining mastery of a subject that I saw once a long time ago. (I can’t find the reference right now, or I would give credit.) The description listed four phases of understanding.

  1. Unconscious incompetence
  2. Conscious incompetence
  3. Conscious competence
  4. Unconscious competence