Follow up to his earlier post about Greatest Enemy of a Programmer, Jeff talks about how programmers can avoid getting stuck. Observing how good programmers work, I agree with him about traits of a great programmer –
The master programmer performs an O(logn) algorithm at worst. At worst, each experiment invalidates half of the possible causes. Some experiments, thoughtfully chosen, eliminate a much larger swath. Therefore even if there are millions of possible causes for the bug—millions of lines of code—the tests must ultimately converge somewhere. And they will do so in a relatively small number of steps.