Why developers should be investors

By | March 12, 2018

Robot stacking coins

Learning a new skill is a great investment, especially when you work as a developer.

When you learn a new technology you create an asset that can be sold to employers or clients. But this doesn’t mean you should learn as many technologies as you can.

Technology skills vary in their value depending on market supply and demand. I like to keep track of the market rates for various skills using IT Jobs Watch. As well as giving you an idea of the market rate for a particular skill (in the UK at least), it’ll also show you how that demand has changed over time.

For example, here are graphs showing the percentage of job postings that cite either COBOL or JavaScript over time.

COBOL: Job Vacancy Trend

Source: IT Jobs Watch

JavaScript: Job Vacancy Trend


Source: IT Jobs Watch

The demand for COBOL skills has declined over time, while that of JavaScript skills has increased. You might think this means JavaScript developers are more valuable than COBOL developers. But this isn’t the case.

Why? Because the supply of each type of developer has changed in a different way. There are now way more JavaScript devs out there than COBOL devs. This makes sense because there are many more frontend JavaScript roles available than backend mainframe roles! However, JavaScript developers have become a commodity. COBOL developers on the other hand are now specialists.

JavaScript developers have become a commodity.

The result is that the median market rate for both types of developer (for contract work) is pretty similar. Of course, the market rate for JavaScript devs is still pretty good! But the competition for the best JavaScript roles is higher because there is a greater supply of devs with these skills.

This has implications for both developers and companies. From a JavaScript developer’s point of view, it’s now harder to secure the best roles because of the competition from other devs. Companies want the best developers so they have to devise ways of sorting the ‘wheat from the chaff’. This comes in the form of tougher technical tests and the dreaded whiteboard interviews.

What can we conclude from this?

It’s often recommended that developers be ‘polygot programmers’. That is they should learn more than one programming language. This makes sense as learning more than one language will make you a better developer, especially if the languages are in different paradigms (e.g. object-oriented vs functional).

But nobody can be an expert in everything. Even if you tried you’d quickly burn out. Just look at how quickly JavaScript frameworks evolve!

Some developers would say that you don’t need to learn and specialise in a framework if you specialise in JavaScript. While this might be partly true it’s subject to the problem outlined above. You’ve now become a commodity. It’s then a race to the bottom in terms of your market value. You’ll also have to demonstrate that you stand out from the crowd by passing generic technical tests every time you want a new role.

Continuing with the investing analogy, most people think that diversification is good practice. But that doesn’t appear to be the opinion of one of the most successful investors of all time:

“Diversification is protection against ignorance. It makes little sense if you know what you are doing.”

Warren Buffett

Buffett believes in choosing stocks on a long-term basis and having faith in your selection. If we apply this strategy to technology skills we could say that you should do your research and ‘go long’ on a specialism.

Focus your efforts on becoming REALLY good at one thing. Then you can create your own market. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *