When I meet someone new, they usually ask me what I do for a living. Their reaction when they hear that I'm a software engineer is almost always the same: "I wish I were that smart." Not only is this generalization false, I think it also discourages many people from what might be a tremendously rewarding career. As much as I love people to think I’m smart, you do not need to be a genius to program computers.
1. Passion
Bar none, passion for programming is the single greatest determinant of success for coders. I’ve been hiring and training software developers for more than a decade, and rarely does the smartest person in a group turn out to be the best programmer. In every case, the young man or woman who had the most passion for programming - regardless of intelligence or talent - outpaced the rest.
The reason for this is simple: coding is a difficult and often frustrating endeavor. Sure, talent and prior experience make a big impact here; but regardless of your level of talent, you’ll eventually end up against a problem bigger than your abilities. Passion for coding and learning is what helps us solve the hardest problems.
2. Hunger to Learn
Technology moves fast. Not even the best of us can hope to keep up with the pace of all there is to learn. As an aspiring software engineer, you must accept the fact that a big part of your career will be learning. And the more you know, the more there is to learn. The old idea of spending four years in school learning everything you need to know is outdated. Good software developers thrive on learning new things.
3. The “Woot!” of Seeing it Work
As we mentioned earlier, if you’re doing good work and stretching yourself as a programmer, you will frequently come up against problems that are difficult and frustrating. All professions can be challenging, but in software, you could work on a problem for hours (or even days) with little visible progress. When your code finally works there are two general responses: “Whew!” and “Woot!”
“Whew! Thank God it works, I hope I never have to do that again.”
“Woot! It works! I can’t wait to do that again.”
If you’re a “wooter” then coding is for you.
What do you think? Use the comment box below to tell us about one of your “Woot!” moments and to share your thoughts on what makes a great programmer.