Another effective [debugging] technique is to explain your code to someone else. This will often cause you to explain the bug to yourself. Sometimes it takes no more than a few sentences, followed by an embarrassed "Never mind, I see what's wrong. Sorry to bother you." This works remarkably well; you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor.
Brian KernighanGet the weirdnesses into the data where you can manipulate them easily, and the regularity into the code because regular code is a lot easier to work with
Brian KernighanTrivia rarely affect efficiency. Are all the machinations worth it, when their primary effect is to make the code less readable?
Brian KernighanSome compilers allow a check during execution that subscripts do not exceed array dimensions. This is a help, but not sufficient. First, many programmers do not use such compilers because They're not efficient. (Presumably, this means that it is vital to get the wrong answers quickly.)
Brian Kernighan