The most asked question in any computer science forum is “Which programming language is the best?.” Searching this question on Google yields more than 8 billion results. Reddit alone shows over 19 million results. Another way to ask this question is: Which programming language leads to better career outcomes?
In this Chicago Fed Insights article, we draw on insights from our recent paper to argue that there is no good or bad programming language. Rather, there are good or bad applications of them. Our research suggests that to excel in their field, programmers need to know the newest software applications and be good at them, rather than focus on particular programming languages.
Data: Universe of software created in Brazil
Since 1987, Brazil has allowed companies to copyright and register the software that they create. We collect data on these software registrations, including information on the companies that made the software, the programmers who created it, the programming language used, and the domain field of the software. By domain field of the software, we mean the sector in which the application is used, such as data protection, artificial intelligence (AI), or automation.
We then match each programmer to administrative data on their labor market history. For every worker, we observe their place of employment, wage, occupation, geographical region, and education.
How we answer our question
To identify the effect of creating software, for each programmer we find a comparable non-programmer. These “synthetic programmers” have the same occupation, age, wage, education, and live in the same region as their programmer counterpart. However, they have never created any software.
To identify the effect of registering software, we compare the career trajectory of programmers after the creation of their software to their synthetic counterpart. It is crucial to have a comparison group with synthetic programmers because of selection bias. If, instead, we had used just the sample of programmers that registered software to identify the effect, this would lead to a biased estimate. Programmers who registered software tend to be very different from the rest of the population and their peers. They earn higher wages and are more highly educated. Controlling for this fact requires us to find similar individuals with similar career trajectories that did not publish software.
Results
1. Creating software leads to 6% wage growth.
For programmers, on average, registering software leads to a 6% increase in hourly wages relative to their peers. Furthermore, we find that programmers are more likely to receive promotions and are less likely to leave the firm that they are working at.
Figure 1 shows the evolution of hourly wages of a programmer that has registered software. Figure 1 shows that prior to the registration, programmers and their control groups are not statistically significantly different from each other. After registering software, programmers see a positive and statistically significant wage increase of about 6%. This effect is persistent across time with a similarly strong effect even five years after software registration.
1. Effect of creating software on hourly wages
2. Programming language is not important in determining career wage growth.
It turns out that learning a specific programming language is not really the way to make the most money as a computer programmer. Figure 2 shows that there is not much difference in the wage growth of programmers that code in different languages. Overall, the estimates are not statistically different from each other. Therefore, on average, software written in different languages delivers a similar increase in wages.
2. Wage growth according to programming language of the software
3. The domain field is important in determining career wage growth.
Instead of programming language, we find that the application domain of the software does predict differences in wage growth. Figure 3 shows the effect of registering software on wages according to the intended application of the software.
We find that novel and cutting-edge domain fields see considerably higher wage growth than others. For example, if a programmer registered software intended to be used for data protection, that programmer experienced nearly a 40% wage gain, on average, relative to the control group. Similarly, programmers who wrote software intended for AI, data communication, automation, and simulations and modeling saw returns to wages that are higher than those for report-generation software.
This result suggests that programmers may wish to consider the type of software they are going to write rather than simply the programming language they are using if wage gains are a priority.
3. Wage growth according to type of software
4. Wage gains are concentrated among high-quality programmers.
So far, we have shown results exploiting differences in the characteristics of the software written, such as the programming language or application domain. Next, we study how the effect differs based on characteristics of the programmer that created it.
Figure 4 shows a binscatter plot of the difference in the size of the effect on wages based on how highly paid a software engineer was at the beginning of their career. The y-axis represents the effect of software on the wage of a programmer. The x-axis is a decile of initial wage at the beginning of a programmer’s career. We use initial wage as a proxy for the quality of a programmer. If a programmer was more highly paid at the beginning of their career, then we can say that programmer was more highly skilled than a programmer that was less highly paid at the beginning of their career.
Figure 4 shows that the gains from registering software are concentrated among already high-wage programmers. Workers at the top decile of wages experienced 6% monthly wage growth after their first software. This result implies that maybe it is the case that highly skilled programmers are creating better software than less skilled programmers. As a reward for their higher quality software, they receive a higher wage increase.
4. Wage growth according to initial wage
Conclusion
Many college graduates who are interested in joining the software engineer industry think about what skills they should learn to earn the most money in the job market. Our research shows that computer programmers do receive labor market rewards for creating software for the firms they work for. On average, programmers earn 6% more per hour by registering their software.
We show that the domain field of software seems to be much more important in determining future wage growth for programmers than the programming language that the software is written in. More novel and cutting-edge software written for data protection, AI, and automation purposes grows the wages of programmers much more than software for less-novel fields like operations systems, languages, or utilities.
Finally, we show that there is also a large difference in the size of the positive effect based on the skill level of the programmer that creates the software. Programmers who are more highly skilled receive higher wage increases relative to their peers than programmers who are less highly skilled. This implies that instead of just learning how to program in a certain language or work in a field that is more novel, it is important to simply have good coding skills. The programmers who will see the highest wage increases are likely to be those who are both highly skilled and working in a novel field.