I take the view that it's a given that the programmer can program whatever task you give them. What sets them apart is how well they program it.
Is their code readable? Have they used encapsulation and abstraction? Do the methods only perform one specific function or are they all merged together? Have they got rid of magic numbers? Have they made the code generic and re-usable? Or have they copied and pasted the same functionality a million times in one massive god-class? How efficient is it?
All this boils down to one question.
How easy is it for another programmer to maintain their code?
I have had to sort out other people's code on many occasions. Sometimes I have had to spend months sorting it out before I can even go about doing anything new with it. The original programmer could have just written it properly the first time. Normally it's a scientist from a different field who is probably feeling quite proud of what they can write using a programming language yet haven't given thought to how well they write it.
Is their code readable? Have they used encapsulation and abstraction? Do the methods only perform one specific function or are they all merged together? Have they got rid of magic numbers? Have they made the code generic and re-usable? Or have they copied and pasted the same functionality a million times in one massive god-class? How efficient is it?
All this boils down to one question.
How easy is it for another programmer to maintain their code?
I have had to sort out other people's code on many occasions. Sometimes I have had to spend months sorting it out before I can even go about doing anything new with it. The original programmer could have just written it properly the first time. Normally it's a scientist from a different field who is probably feeling quite proud of what they can write using a programming language yet haven't given thought to how well they write it.