This is a re-post of my take on the interesting discussion on the signs of talent in programming at Stack Overflow.
Signs of a good programmer:
- Ability to break down a problem into tasks.
- Ability to estimate the time it takes to program and finish the tasks.
- Actual time spent on tasks matches estimates very accurately. Personally I think this might be one of the strongest signs of talent in programming; it also reflects the reality that a “good programmer” is only good if he knows the tools he’s working with.
- Ability to adjust their style of programming, from quick & dirty to fully thought-out and documented (both styles have their time and place).
- Related to the previous point is the ability to avoid overkill solutions, to know when a problem is best solved by programming in repetitive laundry lists, or when to build tools and additional complexity to handle the repetitive tasks for you.
This goes for everyone who needs to collaborate, but is vital also for programmers:
- Ability to ask for advice, and quickly and understandably explain problems to others who have no clue about the context of the problem.
