For me there's three traits that make a good programmer:
1: The ability to read other people's (or own) code and understand what happens in them, even if they're written badly or ugly
2: The ability to write pretty code that does what it's supposed to
3: The ability to explain code in a way that helps other people understand why something happens and helps them improve
Though I see it more as a spectrum you always can improve on, rather than a binary "good-or-not"
For me there's three traits that make a good programmer:
1: The ability to read other people's (or own) code and understand what happens in them, even if they're written badly or ugly
2: The ability to write pretty code that does what it's supposed to
3: The ability to explain code in a way that helps other people understand why something happens and helps them improve
Though I see it more as a spectrum you always can improve on, rather than a binary "good-or-not"
I would add also the flip side of point 3:
4: The ability to understand requirements and context from people
Spot on, we're all just shades of grey!
I love that :)