In basic calculus we learned that the first derivative of a function is the "rate of change" of the value of that function with respect to another variable. In the case of your career, the other variable is time. The basic equation for a developer career looks like this:

C = G + LT

C is Cluefulness. It is defined as an overall measure of your capabilities, expertise, wisdom and knowledge in the field of software development. It is the measure of how valuable you are to an employer. It is the measure of how successful your career is. When you graph your career, C is on the vertical axis.

G is Gifting. It is defined as the amount of natural cluefulness you were given "at the factory". For each individual, G is a constant, but it definitely varies from person to person.

L is Learning. It is defined as the rate at which you gain (or lose) cluefulness over time.

T is Time. It is on the horizontal axis of your career graph.

As you can see above, your career success is determined by three variables, only one of which you can control:

You obviously can't control T. Time marches forward mercilessly at the same rate for everyone.

You also can't control G. The truth is that some people are just naturally smarter than you are, and that's the way it is. But G is not the sole determiner of your success. I have known some truly gifted programmers with lame careers, and I have also known some less-gifted folks who have become extremely successful.

You can make choices which affect the value of L. In fact, you do make choices which affect the value of L, every day, whether you know it or not.