Attributes of a Good Programmer

I whole-heartedly agree with David Jones on what it takes to be a good programmer:

1) to have dogged persistence in the face of failure.
2) to celebrate the utterly ordinary.

I would add “the interest to take things apart, turning them inside out and upside down.”