I always found myself asking this question "What define a good programmer?"
I ask lots of people and the answers vary, they 're all correct for certain aspects
Good programmer is someone who has a solid knowledge of the "how-to" both in theory and in practices. Understanding customer requirements clearly and having the vision to fulfill it through dedication and execution!
Good programmer is one who has in-depth knowledge of one particular major and wide understanding of many things else
One of the answers I really like is responsibility
Thanks Uncle Bob for pointing it out in his experience sharing "The Professional Programmer" in the book 97 Things Every Programmer Should Know: Collective Wisdom from the Experts
The single most important trait of a professional programmer is personal responsibility. Professional programmers take responsibility for their career, their estimates, their schedule commitments, their mistakes, and their workmanship. A professional programmer does not pass that responsibility off on others.
- If you are a professional, then you are responsible for your own career
- Professionals take responsibility for the code they write
- Professionals are team players
- Professionals do not tolerate big bug lists
- Professionals do not make a mess
Although he talks about a professional programmer, my intention in "good programmer" term is the same as that