Programming benefits from dogged perseverance. If you have lots this trait, it can overcome other shortcomings.
It also benefits from being thorough and detailed: analyzing all the cases that may occur, forming all the conceivable hypotheses and so on.
It doesn't matter if it takes you five hours of hacking on something to finally see a solution that some brilliant programmer came to in 45 minutes of hacking.
Maybe it was luck; his or her brain generated some spontaneous idea which revealed some aspect on the problem resulting in a breakthrough, while you were methodically working through various hypotheses (including the boring ones).
Brilliance will lose in the long run to dogged perseverance and thoroughness.
Brilliance has an advantage in dealing with badly structured programs; the brilliant mind has a great memory and can simultaneously hold a lot of the program in consideration: for example, to visualize a complicated run-time interaction between numerous scattered pieces of code. The more brilliant mind can handle a larger instance of this sort of thing than a less brilliant mind. But there is a limitation on it. It's kind of like being muscular. It's impressive that you can bench 300 pounds, but it's useless in the big picture where we might need to lift 30,000 pounds. And where we therefore use a machine to do it, and that machine can be easily operated by a "90 pound weakling".
We can erase the advantage of the brilliant mind by not structuring the code such that only the most brilliant minds can visualize how some scenario arises in order to identify a problem. And we can also use tools: tool to help us visualize, analyze, validate, and so on.
Where we ultimately need brilliance is in forming ideas. Someone who comes up with great product ideas (and ones that sell, too) cannot be replaced by a machine, or by someone who just has perseverance and thoroughness in the face of details.
It also benefits from being thorough and detailed: analyzing all the cases that may occur, forming all the conceivable hypotheses and so on.
It doesn't matter if it takes you five hours of hacking on something to finally see a solution that some brilliant programmer came to in 45 minutes of hacking.
Maybe it was luck; his or her brain generated some spontaneous idea which revealed some aspect on the problem resulting in a breakthrough, while you were methodically working through various hypotheses (including the boring ones).
Brilliance will lose in the long run to dogged perseverance and thoroughness.
Brilliance has an advantage in dealing with badly structured programs; the brilliant mind has a great memory and can simultaneously hold a lot of the program in consideration: for example, to visualize a complicated run-time interaction between numerous scattered pieces of code. The more brilliant mind can handle a larger instance of this sort of thing than a less brilliant mind. But there is a limitation on it. It's kind of like being muscular. It's impressive that you can bench 300 pounds, but it's useless in the big picture where we might need to lift 30,000 pounds. And where we therefore use a machine to do it, and that machine can be easily operated by a "90 pound weakling".
We can erase the advantage of the brilliant mind by not structuring the code such that only the most brilliant minds can visualize how some scenario arises in order to identify a problem. And we can also use tools: tool to help us visualize, analyze, validate, and so on.
Where we ultimately need brilliance is in forming ideas. Someone who comes up with great product ideas (and ones that sell, too) cannot be replaced by a machine, or by someone who just has perseverance and thoroughness in the face of details.