I find that good programmers i come across share these qualities: humility, curiosity, <insert the appropriate quality for “likes to share what he or she has learned” here>, patience, cleverness. I’m probably forgetting a few.
That’s a weird question, though. Define good? Is there only one kind of good? Are all qualities of good programmers valid or useful for all different kinds of “good”? Can the answer be 10k hours of practice?