Programming: How to avoid getting stuck and how to get unstuck

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.

A Programmer’s Greatest Enemy

In my years of experience as a lead programmer and a teacher of programming, I’ve learned that when a programmer is really struggling—when his or her productivity has really sunk to the bottom, and days go by without much getting done—dread is usually involved. That programmer is stuck. And when a programmer gets stuck frequently, or stays stuck for long, unemployment can’t be far behind.

Jeff in his latest blog post talks about greatest enemy of a programmer. Also, excellent advice for programmers on self-assessment.