As I mentioned in the contractor versus employee section, I’ve done a lot of contracting work. That’s exposed me to a lot of different technologies – which I believe has made me a better programmer. But one of the big career decisions is whether you should be a generalist or a specialist.
I’ve been somewhat in the middle. I do back-end programming, but sometimes do desktop front-end work. Looking back, I would have done things differently. That’s the advantage of hindsight.
In the beginning, I think it’s important to try out different things. Do front-end web work, do SQL database work, do web service, etc. That’s what I did, which led me to discovering I like doing back-end work.
But I didn’t specialize after making that discovery. As a contractor, I took on any project I was capable of doing and that paid a good rate. That’s been good for paying the bills but has had negatives.
First, it is stressful learning something new with every project. At the beginning, it was great. But now, I’d like to spend more time becoming great at one thing – building on my existing knowledge instead of constantly starting over.
But be careful you don’t specialize in something that’s going to limit your career options.
I’ve seen several people who specialize in outdated technologies. If their current employer decides to modernize the applications they’re working on, there are few other companies they’d be able to work at.
Every six months, even if you aren’t looking for a new job, look at what jobs are available on places like LinkedIn or other job posting sites. Check developer surveys and technology radar reports on sites like Stack Overflow and Thoughtworks. These should give you early warnings that your skills may not be in-demand much longer.
Remember that specialization isn’t solely for the technology you use. It can be the industry knowledge you have.
However, be extra cautious with this strategy. Besides your technology losing popularity, your industry can have problems. If you follow this strategy, I recommend saving a lot of money. Saving money is a good plan regardless, but it’s almost a requirement if you hyper-specialize your career.
I worked for oil & gas companies when the price of oil dropped significantly and a real estate company when we went through the 2008 housing crisis. Those weren’t good times for my career. Raises and bonuses disappeared. Sometimes people were let go, and the remaining people employed were expected to pick up the work of the people who were gone.
Fortunately, I wasn’t specialized in those industries, and found work at other companies.
Return to “Life as a programmer outside Silicon Valley” index