I remember coming home from a long day of coding a few years ago. I was living with a friend from high school and his girlfriend was over for dinner. When she asked how my day was, I explained it was long and exhausting.
Her response was: “Well, at least it’s not hard work. Your job is mostly about being smart.”
At the time I was speechless. She didn’t see how that was offensive at all. What she didn’t realize was how much time and effort I had invested in my career since I was in middle school.
When I thought of programming as a job I never thought I’d be able to do it. In high school I was failing. Math, science, CAD, you name it. If I failed at high school math and science, how could I ever be a programmer?
I didn’t realize that I had already begun a little programming.
Since I was thirteen I had been making videos with my friends. Once my family traded in dial-up for faster internet in the summer after 8th grade, I thought it’d be fun to upload all our videos and make a website for them. I started building it in Dreamweaver – yes, Dreamweaver.
I really had no idea what I was doing, but Googling and asking questions on forums got me a long way. I got it up and running on some free web hosting company and was really proud of myself. It was ugly, used tables, and all the JS was copied and pasted, but I did it.
This was a huge confidence booster. I realized at that moment I didn’t have to be a genius to program. In fact, being smart really has very little to do with being successful in this business.
In fact, other traits can be significantly more important than raw intelligence.
It’s hard work
One of these is just being able to work hard and focus. Being a programmer isn’t easy. We put a hell of a lot of time into this. The industry is constantly evolving and you have to keep up. New technology comes out or changes every single day which can completely change the plans for an entire company.
When Twitter announced there would be ridiculously low API limits, companies making Twitter apps stopped everything they were doing to come up with crazy workarounds or change their entire business models. Prices of some Twitter clients hit upwards of $20. These types of changes happen all the time. If you’re not out there ready to work your ass off when you need to you’ll be left behind and your product will suffer or die.
You need passion
Working hard without passion leads to mediocre work. Sometimes I’ll just get an urge to code and I’ll spend hours whipping up some silly idea. Many times these sessions create code or projects I never look at again, but that’s fine. These bursts of energy usually come from trying to solve some problem that’s been bugging me for a while or an idea I have about a new way to do something that I can’t stop thinking about. This gives me practice and also gives me a creative outlet.
A lot of programmers (myself included) tend to let this passion get a little out of control. Anyone remember the Twitter Bootstrap semicolon thread? Yep, an entire thread of people arguing about a single semicolon.
You need humility
There’s one other thing that many programmers forget to tell newbies. You have to learn humility. This seems easy when you start out because everything is so new that you listen to anyone who’ll offer advice. As your skills begin to mature, your belief in certain programming paradigms begin to take shape and harden.
Don’t let your pride get the best of you. Pride will prevent you from trying new concepts which could be really beneficial later on. Sometimes it can be tough to swallow your pride and say “you’re right” to another programmer, but the benefits of doing so can be incredible.
None of these skills I’ve mentioned hinge on being a genius. In fact, these skills can be applied to many other professions. There’s nothing inherently special about programming. There’s really nothing different between fixing a software bug and fixing a “bug” with a car’s engine. Programmers like to think of themselves as special, but really, we’re just good at solving a certain flavor of problems as well as hard-working, passionate people who are always out looking to learn something new.