Introspection is an essential skill to be a good programmer
From Coders At Work, interview with Peter Norvig:
Seibel: So is there any essential skill needed to be a good programmer? Different domains obviously have different requirements but ultimately is there some commonality to writing code regardless of the domain?
Norvig: You've got to be able to make progress and then improve on it. That's all you need to be able to do in life. You've got to have some idea and say "Here's the direction to go," and then be able to say, "Now I've got to refine it." And refinement can be, "I didn't quite get it right, there are cases I didn't handle," or it can be, "Now that I understand it better, I'm going to write a tool so that's it's more abstract and next time I can write a system like this more easily." Which I guess is that level of introspection to say, "Where was I going? How did I get there? Is there a better way to get there?"














