How to manage your technical education

I recently noticed an article on the InfoWorld site offering up 7 programming languages on the rise. I’ve been seeing similar articles for many years. They address a common insecurity in our field, which is how to keep your skill set relevant and valuable. A little hindsight shows most of these reports to be ridiculous. The best are just rehashed stats from the Tiobe Index or Google trends. The worst are cooked numbers advocating some company’s products or some enthusiest’s opinions.

I’ve probably made a career decision or two based on such poor journalism. To combat this misinformation, I’m going to put down in writing the most useful bit of career advice I’ve ever received. It is this: choosing which technologies to study is very similar to choosing financial investments.

Suppose you’ve come into a big chunk of money. You need to grow it for use in your later years. I know of three principals to guide you in this task.

First, don’t invest it stupidly. It’s often difficult to find the smartest, best investments, but it’s quite easy to find terrible and stupid ones. The first principal is to avoid the losers. This ought to be obvious, but an amazing number of people invest based on a random tip. Or, they invest based on some personal relationship. The money goes into their roomate’s movie project or their brother-in-law’s startup. Dumb. You’d be better off taking it all to the casino. Or, give it to charity; at least a charitable gift pays off in karma.

Pick investments that have a proven track record, a good product, and a definite market.

The second principal is to diversify your investments to manage the risks. You could put all your money in one stock that may pay off big. But, the higher the potential reward, the greater the chance you have of losing everything. You could dump it all in boring, low-yield stocks that are unlikely to go wrong, but that’s also missing opportunities. The trick is to figure out how much risk you can afford, and then buy a combination of high and low risk investments that average out to your desired risk level. Spreading the money around to multiple similar investments lowers your risk, but don’t pick so many stocks that you can’t watch them all intelligently.

The third principal is to hedge your bets. This is really just a corollary of the first two principals, but hedging is a good principal to understand. Suppose one stock goes up whenever the price of oil rises. You can lower your risk by also buying a different stock that goes up when oil prices fall. This probably sounds like a win-win situation, but it’s hard to accomplish. Money spent on the hedge takes away capital that you could spend on the primary investment. You need to understand the market and pick combinations that make sense.

Now, having laid out the metaphor, I hope the similarity to education planning should be clear. You have a fixed amount of training time available to you, both on-the-job and on-your-own. You should study things you enjoy, but you should also be smart about the choices.

First, don’t spend your time developing skills that have no future. It’s hard to know what will really be hot in the next five years, but it’s usually easy to spot technologies that are going away. Don’t focus your energies on a technology just because it’s what you know. Maybe you had a good job last year with some obscure bit of tech. Ask yourself seriously if there are other markets for these skills. We should all focus on areas that we consider fun, but ask yourself occasionally how the time spent will pay off in the long run.

Second, diversify your skill set. Build up a portfolio of skills that minimize your risk of going broke, and optimize the chances of having a fulfilling and well-compensated career. Try to have a few highly valuable and noteworthy skills. Balance these with some basic, bread-and-butter skills that are always in demand.

I used to know guys who were experts in the compilers of supercomputers. Those are pretty valuable skills … up until the supercomputer market deflated. After that crash, those guys had to either move across the country to find work, or settle back into less exotic development. All of them actually had a good collection of skills, so they’re doing fine. We can all develop a good skills portfolio.

Build up a few unusual but valuable skills (keeping the first principal in mind). Learn some challenging software frameworks. Study a new (but viable) programming language. Hack your linux box. Delve into networking or security or embedded software. At the same time, invest in the common skills necessary in your field. Understand the web and the database and the essential programming languages and the software development life cycle.

The third principal, hedging, also applies here. As with finances, it’s a tricky thing to do. Learn similar technologies from different sources, in case one falls out of favor. If you know Tomcat, spend some time learning JBoss and GlassFish. If you’re a web developer, you should also understand Flash and Flex, but also REST and general XML manipulation.

In technology, hedging your skills doesn’t just lower your risks of unemployment. Frequently, employers are looking for specific combinations. Maybe they’re looking for an Oracle admin, but they’ve also got a MySQL and an SQL-Server system. Or, the company that delivers everything over the web might be considering deployment to iPhone; having both skills could give you the edge. Avoid combinations that rarely occur in real companies.

I can’t say this advice will make choices easy, but it has provided me a framework on which to make decisions. Invest in yourself. Optimize your value for the long run.


No comments yet

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: