I was in the middle of writing an article about the correlation of specialization to salary in the software industry. I had worked out the theory of why and how specialization affects salary, where specialization tends to occur, and the only thing I needed was statistical proof. So I took the 2017 Stack Overflow Survey Data, cleaned it, and started plugging in variables from previous analyses that were known to affect final salary.
Understanding the variables outside of the ones you wish to test so you can control their behaviour was the trickiest part of the data analysis. For example, you can test to see if using PHP at work increases your salary, but if you don’t factor for the country of the respondents, you won’t truthfully be able to account for the PHP influence.
Since I was testing specialization, I needed to simplify the dataset and improve sensitivity to changes in specialization. I chose to use only professional web developers from the United States, and to account for specialization, I was looking to test the salaries of frontend and backend specialists against full-stack generalists.
I gradually added in variables – Experience, Education, Web Developer Type. The results weren’t perfect, I was expecting formal education to have a more positive influence, but I was optimistic, and I was already seeing some evidence of the advantage of specialization.
And that’s when something unexpected happened.
I am a web developer by trade, and I do full-stack development. I’ve always speculated that if I had been a little more mature, and acquired a computer science (CS) degree instead of a fine arts degree, I might be making a lot more money.
One of my younger brothers has a CS degree, and our pay appears to be on two different scales, and these scales will never meet. Everyone I meet who has an interest in programming, I always tell them that a undergraduate CS degree is worth at a minimum, a 20k pay difference in perpetuity, and I think I’m being conservative.
So you can imagine my shock when I ran the analysis for undergrads with CS degrees against everyone else.
No significant difference.
I run the analysis again. I made a mistake, you see the first time I ran the analysis I lumped together CS degrees with engineers, mathematicians, and information technology graduates. Clearly CS needed to be separated into its own division.
No significant difference.
Let me outline exactly what was going on here.
When I accounted for formal education, experience, web developer type, and undergrad major, there was no correlation between having a CS major, or an engineering or mathematics major, and salary.
Alright, I start removing variables. Maybe CS majors generally stream into the backend. So I remove web developer type. No correlation. I remove formal education altogether. No checking for a bachelors, or a masters, and doctoral degree. No correlation. I try every combination imaginable, and I cannot find a significant link between a CS undergrad and salary.
There are several possible explanations for the lack of statistical relevance surrounding the undergraduate CS degree and salary. The first thing that comes to mind is that the data is bad. It wasn’t a proper sampling of the population, people lied, or people didn’t complete the survey.
We know, for example, that women were misrepresented in the initial findings. We can also see that only a third of American professional web developer respondents actually included their salary, and from the ones that did include it, the majority were from the 90 -130k salary range.
We know that the national average salary for a web developer is closer to 70k, so there’s a possible bias here with people only filling out salary if they have something to be extremely proud of.
I tested this hypothesis by assigning all NA salaries with a below average 40k salary, and found it broke all of the previous correlations, and resulted in no new revelations.
Another possibility was that CS educated undergrads stream into something other than web development, leaving the stragglers for web development. It’s a stretch I know, but I’m really trying to get to the bottom of this. Then again, it could just be a miscalculation.
Statistics is as much an art as a science. It’s easy enough to run regressions on data and find correlations, but sometimes it just comes down to the logic of the whole thing. In dishonest hands, statistics can be used to convey falsehoods. The same can be said for amateurism.
Looking back at the first linear regression, I read over the variable some college or university study without a degree. The variable was insignificant, but the estimated effect was strongly negative. What if the students dropping out of college and university were CS majors. A whopping 14% of the respondents were students who didn’t complete their degrees.
I created two interaction variables, one for CS students who completed their bachelors, and another for CS students who completed their masters. The results were significant, and highly positive. Having a CS undergrad did affect salary.
Or did it. Look at the effects of having majored in CS and having completed a bachelors in CS. The signs are nearly equivalent. Barely a thousand points off. Having a CS undergrad with a masters degree on the other hand was worth an extra $10k. So if you’re interested in web development, and you have a CS undergrad, you might want to consider doing a masters.
So I’m almost back where I started. Having a CS degree does affect salary, but it’s no where near my conservative $20k estimate. Instead it’s closer to $1k, which for most surveyed developers who gave their salary is less than 2% of their total income.
Now maybe this comes as a shock to me because I’m a Canadian, and we tend to be a little more reserved when it comes to sifting through resumes. Maybe a CS degree is worth more here, and maybe it’s worth more in a lot of places in the world. It’s just not worth much more for professional web developers in the United States.
Does an undergrad computer science education affect a web developer‘s salary? was originally published in freeCodeCamp on Medium, where people are continuing the conversation by highlighting and responding to this story.