I won't try to give a comprehensive answer to this question, but there are a few qualities I've noticed in great programmers that I don't hear mentioned too often:
•Able to balance pragmatism and perfectionism - Great programmers have the ability to make both masterful/quick/dirty hacks and elegant/refined/robust solutions, and the wisdom to choose which is appropriate for a given problem. Some lesser programmers seem to lack the extreme attention to detail necessary for some problems. Others are stuck in perfectionist mode.
•Not averse to debugging and bugfixing - Mediocre programmers often fear and loathe debugging, even of their own code. Great programmers seem to dive right and drill down with Churchill-esque tenacity. They might not be happy if it turns out that the bug is outside their code, but they will find it.
•Healthy skepticism - A good programmer will get a solution that appears to work and call it a day. A great programmer will tend to not trust their own code until they've tested it extensively. This also comes up a lot in data analysis and system administration. An average programmer might see a small innocuous-looking discrepancy and ignore it. If a great programmer sees something like that they will suspect it could be a hint of a greater problem, and investigate further. Great programmers tend to do more cross-checking and sanity checking, and in doing so discover subtle bugs.
|
|