-
What makes a good programmer?
So, I guess this is part II to my previous article “How do you know if you have a good programmer?”
On Hacker News there was an interesting comment:
- Can they get things done? - Can they act on their own initiative? - Can they think 2 steps or more ahead? - Can they code? Can they code well? - Can they think and think well? Can they think *independently*?
I would add some other items to the list:Can they see a block of code, and find a bug in there, even if nobody else has noticed that bug before? (For example, stumbling on a section of code in the app, knowing that it “looks wrong”, stopping and asking someone? (Then, if it’s wrong, fixing it… and if it’s right, documenting why it might feel wrong))
Do they have the wisdom to know when to stop work, pull up on and and ask questions about the section of code they are writing, if the effects are wide reaching or time consuming
Having the courage to make widespread changes (if they are wise changes) or write code that will speed up the team and give the team better tools to do their jobs
How much care and attention are they giving the codebase?
Being a Polyglot - I know there are several times when being an old C++ hand has given me useful insight into a Rails project, or some Python idiom has come in useful when doing Ruby.
Along with the polygot thing - does the programmer pick the right language/framework for the job, or just always reach for their normal saw? (The normal saw might be normally right, but picking up a saw when you want to pound a nail leaves everyone frustrated)