One sign of a good programmer is their absolute need to understand. Whether the environment they are coding in, the language or frameworks they use, or even the theory behind what they are trying to develop, the need to understand is a driving force in people who make good programmers.