In my life and my career I’ve seen people with enormous talent and people with great work ethic. Does either one guarantee your success? Is it better to have one than the other?
My experience tells me that it’s the combination that matters most. I’ve seen talentless people plug away at things for years. In my judo club, there are people from numerous backgrounds that come and work. Some people have innate talent, others don’t. However, over the years, even those without talent can make some progress and become competent judo players. I’ve also seen players with great talent that didn’t want to work hard. Their judo is very good, but they could have been great if they had the dedication to work on it.
Software is a bit different. If you don’t have any talent, then you’re in trouble. The thing is, since there are many different kinds of software, there are options for you. Object-oriented programming not your forte? Try databases. Not so good at application programming? How about web sites?
Years ago, I hired a Ph.D. who specialized in neural networks. We figured he was smart so we could teach him how to program for our application development work. It was a disaster. He didn’t get object-oriented programming, couldn’t read code, couldn’t code at all. He went back to academia, where I’m sure he’ll be a success.
Even in software, I’ve seen talented people who still got nowhere. They couldn’t communicate their ideas well or they simply didn’t want to do the grunt work of communicating their brilliant designs to the computer. Then there were the folks who simply thought that they were brilliant and that their code was beautiful, but that’s a different topic entirely.
Success is a complex formula, but can be summarized for an individual developer as:
talent + work ethic + task suitability= success
This doesn’t take into account any of the other things like communication skills, design skills, etc. Keep in mind that in the above equation, missing one element can mean that things will be more difficult for you – it may be time to switch something. Asking your manager or a colleague can help you decide if it’s time to change something or steps to improve something.