A common question that we get asked on our training courses and graduate programmes is what is the best paid programming language to learn?
A common question that we get asked on our training courses and graduate programmes is what is the best paid programming language to learn? However, this question is perhaps a little harder to answer than might at first be thought.
To answer these questions, we need to consider several different aspects such as:
the programming language involved,
the role played by employees such as developer, data scientist or DevOps,
the industry involved such as finance or the games industry,
We will consider each of these and their effect on salary in turn.
From a salary perspective, not all programming languages are created equal. However, the general effect of different languages on salary might be surprising. The most recent Stack Overflow Developer Survey questioned nearly 34,000 developers about their salaries and the global median for each language was found. The median associated with each programming language was given in USD for both the USA and globally. Although the exact ordering differs between the two groups some general trends can be seen:
and Go are two of the highest paid languages.
C++, C and Java are in the lower half of the table.
The above findings might not be what you expect.
Let’s look at some of the factors that might influence these average salaries.
To start with, there are far fewer programmers with Scala experience than those with Java or C++ experience. Additionally, Scala has been widely used in the financial industry over the last ten or twelve years and that industry tends to pay more than the average.
In terms of Go, this is a relatively new language with few experienced practitioners available. There is thus a disparity between supply and demand which is perhaps reflected in the average salary of Go related jobs. This seems to have been consistent across the last 3 years as indicated by a study produced by the Golang café that shows salaries hovering around the £80k to £100k mark in the London.
Python is currently very popular with high levels of demand evident for Python developers. However, as it was a language designed to be easy to learn it has quite a low barrier to entry. Given its popularity – and accessibility - the fact that it sits in the middle of the salary range seems about right.
What about C and C++? Why are they both in the lower part of the salary range? This may be a result of some industries skewing the data as some industries (such as games development) that are very heavy users of C and C++ tend to pay less than the average thus pulling the median salary down.
Finally, what about Java? Java has been very widely established now for 25 years, and as a result of its success the language has been used in a huge range of applications and industries. It is widely taught at university and college levels and so there is a ready supply of Java developers at all levels of Java experience. This is probably another incidence of the laws of supply and demand, as although there are very, very many Java jobs available there are also a huge number of developers with the required skills. This, therefore, deflates the average salaries advertised for Java roles.
Another factor influencing salaries is the role that an employee has.
If we ignore managers, then it is often that DevOps
specialists are among the highest paid roles. Whereas the older roles of System and Database Administrator tend to be lower paying roles. This may actually reflect the general industry transition to DevOps practices which also encompasses these older, more traditional roles.
Other high-paying roles include Data Scientists / Machine Learning specialists and Data Engineers. Again, this probably reflects the current interest in data and data analysis coupled with the relatively recent emergence of specialists in this field. This has led to a high level of demand but relative low level of supply (of those with experience and expertise in this area) which has inflated these salaries.
Perhaps surprisingly, Full Stack developers sit in the middle of the salary range with pure Back End and Front End developers lower down the salary scale. This may be due to the sheer number of these developers available on the market. Although the higher salaries attracted by Full Stack developers is probably a reflection of their ability to work on both front and back end systems allowing them to be a more flexible resource for organisations.
The impact that different industries have on salary should not be underestimated.
For example, a new graduate joining a Triple A game studio as a C++ programmer might expect to be earning just over £20,000 in the UK. However, a similar level role with a major investment bank might expect to be paid around £50,000.
In addition, those working in the private sector are likely to earn more than those in the public sector. While those working in education or academic research tend to be the lowest paid.
The Regional Effect
It is also important to remember that there are regional variations that affect the salary expectations of developers. For example, those working in London tend to be paid more than those working in Cardiff or Bristol, although as the cost of living in London is so high, this may not be an advantage in real terms.
In the case of the UK, those working in the North of England tend to earn less than those working in the South. Though it should be noted that even within these broad terms, salaries can vary due to local factors. For example, the presence of the Media City in Manchester has tended to inflate salaries in that area. In turn, the effect of London’s higher salaries may actually inflate the average salary in the South of England.
The Experience Effect
Unsurprisingly, the more experience you have, the more likely you are to get a higher salary. For example, a C++ programmer with 10 years’ experience within the Financial Technologies industry is likely to earn more than one with only 2.
In summary, it is not possible to say that a Java developer will always earn less than a Python developer. Not least because of the effects of different roles, industries, regions and experience on salary.