The difference between an Excellent Programmer and a Natural Born Programmer

Reading this blog about what he thinks a Natural Born Programmer is came to my mind a discussion about what is an excellent programmer and a natural born programmer.
The example given (detect if a number is odd or even) should be enough to differentiate between a natural born programmers and the rest.
But he is wrong.
This is the kind of solutions that people trained in Maths, Engineering or Physics can give, because they are smart people. And that’s what a development manager should expect from a person with high level education.
A natural born programmer can or cannot provide this solution, but he will provide ONE or SEVERAL valid. But he/she will deliver it quick and working if thinks it’s a challenge. But this kind of challenge does not motivate to a natural born programmer. The natural born programmer development is compulsive; once you give him/her a challenging target, he does not stop until he/she get it done. If you compare the productivity of the natural born programmer with other ‘races’ of programmers, you will find high peaks of productivity when he/she deals with something he/she likes. And deep valleys of productivity when he/she deals with repetitive tasks. Other programmers productivity does not vary so much.
What’s the reason for this behaviour? Natural born programmers are like artists, they only motivate with their new creature. If you never ask an artist to paint the walls of your garage, don’t ask a natural born programmer to fix stupid bugs or implement silly requirements. Ask him/her to create something he/she can feel proud of. Other programmers are professionals, they will do what you ask them to do if the tasks does not collide with their professionalism (if you ask them to serve the coffee in the morning, probably they won’t do…).
Natural born programmers are rara avis, and they rarely fit in big Corporations, like other programmers do. The best place for them is small companies, start ups and not very long freelance-like contracts.
Natural born programmers have a gift: they can CREATE software faster and better than the rest of the humans. But normally they have some lacks when dealing with other colleagues, customers or just the rest of the world. A Human Resources VP of a very important Telco told me that normally brilliant technicians are Cyclothymic (seems to be a very well known pattern) but it’s not clear if it’s something to do with his/her nature or his/her environment.
I have known dozens (more than a hundred for sure) of programmers, but I have only known 2 or 3 natural born developers. And I wonder myself if I would contract them again…

Related Articles