Let’s get real. Some of you got into software because your parents made you (if you grew up outside of the U.S.) or because you figured you could make a lot of money this way. You didn’t start young because you were into computers, and you don’t really like software development. You’re always going to be mediocre. You’ll make money because our industry doesn’t know how to evaluate skill, talent, or achievement — but this article isn’t really for you.
If you got punished for taking apart electronics to see how they work… If you snuck online at all hours of the night to learn how to make a video game… If you spent precious free time learning when no one was making you and you weren’t actively pursuing a career… If you then found yourself in software as a career (probably because you found out that game development is the worst part of the industry), then this article is for you.
You need to change the way you think about your career. You’re not coding for love anymore; you’re coding for money. Save the love for your side projects. By all means, make sure you at least like your day job—even better if you love it. If not, find a better place as you’re able or the economy permits.
However, your goal should be to open a 401(k), shove every tax-deductible dollar in it you can, and still have enough left over to buy a house, a car, and do whatever it is you want to do. Maybe save the travel for later. Otherwise, someone else is making your money.
Along the way, you need to think about your career, not just your current job. To do that you need to avoid these nine pitfalls.
Pitfall No. 1: Staying too long in a technology
Pitfall No. 2: Being a monopoly technologist
By the same token, you need to hedge your bets. It seems easy and safe to become an expert in whatever is dominant. But then you’re competing with the whole crowd both when the technology is hot and when the ground suddenly shifts and you need an exit plan.
For example, I was a Microsoft and C++ guy when Java hit. I learned Java because everyone wanted me to have a lot more experience with C or C++. Java hadn’t existed long enough to have such requirements. So I learned it and was able to bypass the stringent C and C++ requirements, and instead I got in early on Java.
A few years back, it looked like Ruby would be ascendant. At one point, Perl looked like it would reach the same level that Java eventually did. Predicting the future is hard, so hedging your bets is the safest way to ensure relevance.
Pitfall No. 3: Staying in love with a fad
Never tell the Groovy people that it is over. And never tell the Ruby folks it’s the end. However, the magic has died. People aren’t going to pay a premium for Groovy or Ruby developers. If your boss lets you use them on a project, it will be either because he doesn’t care what you use, it isn’t very important and he wants to keep you happy, or he’s ignorant and doesn’t realize that there will be a declining labor supply.
By all means, jump on ascendant technologies and learn them. Be ready to be one of the first to know it and pitch yourself as an expert in it.
However, also be ready to jump when the demand goes lower. There are always other new technologies to fall in love with, whether it be a language or a database.
Pitfall No. 4: Being allergic to politics
Every organization, no matter how big or small, has some kind of politics. So, you need to hone your political skills. If you’re not aware of the politics, you’re going to be a pawn in other people’s games. I don’t mean you have to be the jerk who is all political games and no work, but you do need to play defensive politics.
Pitfall No. 5: Being disinterested in the business
“I’m just a developer, I don’t interest myself in the business.” That’s career suicide. You need to know the score. Is your company doing well? What are its main business challenges? What are its most important projects? How does technology or software help achieve them? How does your company fit into its overall industry? If you don’t know the answers to those questions, you’re going to work on irrelevant projects for irrelevant people in irrelevant companies for a relatively irrelevant amount of money.
Pitfall No. 6: Having the “union shop” mentality
When I was young, one of my first jobs for a telecommunications company had an old-timer who estimated six months for nearly everything. He made the mistake of going on vacation, so I finished the entire project in two weeks but saved him one piece to work on. I expected he’d be happy about this. He was not. Boy, was he not. He took every opportunity to get me fired. It became his mission in life. He complained to the new director.
Of course, I got my work done. I was innovative. I was always finding new ways to get things done better and faster and solve problems. He retired shortly after I left that job. A few times, I saw him in a coffee shop and we pretended not to know each other.
This wasn’t the last time I’d encounter this “go slow or we’ll mess you up” idea. My advice is to do the right thing codewise, but be ready to face what is coming. If it is a pervasive problem then vote with your feet — that company isn’t going anywhere.
Pitfall No. 7: Not knowing (or caring about) your value
“I’m not in this for the money.” Then get a hobby. By all means, don’t go to work every day thinking about your next dollar. But also don’t go to work making 50 percent less than everyone else either. Know your value, and collect it.
Pitfall No. 8: Treating your job like just a job
“It is just a job.” No, it is a step in your career. You won’t be at this job forever. So, what can you learn here? What is the next step? Who is where you eventually want to be? How does this job help you get there?
Develop situational awareness of the whole business. It will do you and the people you work for a favor. It will also serve you well in the long term. This isn’t just a job, it is a journey.
Pitfall No. 9: Thinking it is just about the money
Salespeople like to say, “I’m coin operated.” However, if you are not in sales — no one wants to work with someone just in it for the money. What do you care about? That is the only thing that you will ever put your fullest effort into. I know I only want to work with the person who cares about the work. How about you? On the other hand — don’t be insufferable about it. If the thing you truly care about is tabs vs. spaces then maybe some Ritalin or Clomipramine can help.