Interesting question.
Reminds me of an argument between 2 great billiards players, Willie Mosconi and Minnesota Fats. Willie was the best player in the world at the time, winner of many championships. Fats was a hustler who never won anything except money. Each vowed to kick the other’s butt in a match. Of course, Willie kicked Fats’s butt, to which Fats responded, “So what. If there was money on the table I would have won.”
This article made me realize I am more like Fats than Willie. I have interviewed and worked with many great programmers, but hardly consider myself in their class. They may know 27 ways to sort data, but being like Fats, I only need to know one to get the job done (and take the money).
If there was a competition, they would kick my butt. But if a client had to get something done, I could hold my own against any of them.
A typical scenario I have seen over and over: Competitor A is doing B, so we have to do C. This means that we’ll have to modify our app to get data x from source y and present it to certain people so they have what we need to compete. We’re losing $10,000 per day by not doing this, so we need it ASAP. My solution is rarely optimal, sometimes clever, sometimes not, and often a hack. But it gets done quickly, it works, and it “does the job”.
That makes me more like Fats. But since I still aspire to be more like Willie, I’ll start doing a few more things on these lists.