In the process of investigating the relative merits of majoring in computer science versus various engineering specialties, I came across the following puzzle, which I've been unable to solve. Maybe one of you can.
The puzzle is that:
- Computer science majors make about the same as mechanical and electrical engineering majors do in general.
- For colleges with top computer science programs and engineering programs, computer science majors' starting salaries are far higher than mechanical and electrical engineering majors' starting salaries.
Some supporting data below:
Computer science majors make about as much as mechanical/electrical engineering majors
The 2013-2014 Payscale College Salary Report gives the following figures:
Major / Starting Salary / Midcareer Salary
Computer Science / $60k / $102k
Mechanical Engineering / $61k / $100k
Electrical Engineering / $64k / $106k
Here the figures are very close.
----
A Payscale report from 2008 gives a breakdown of mid-career salary by major and percentile:
Major / 10%-tile / 25%-tile / 50%-tile / 75%-tile / 90%-tile
Computer Science / $56k / $74k / $95k / $122k / $154k
Mechanical Engineering / $64k / $76k / $97k / $120k / $163k
Electrical Engineering / $69k / $83k / $103k / $130k / $168k
This gives the impression that CS majors generally made less than electrical and mechanical engineering majors at the time.
----
The Bureau of Labor Statistics (2013) gives percentile breakdowns for programmers, software developers, electrical engineers and mechanical engineers. This isn't strictly data about salaries by major but nevertheless serves as a proxy to salary by major (with programmers and software developers being associated with the computer science major)
Job / 10%-tile / 25%-tile / 50%-tile / 75%-tile / 90%-tile
Computer Programmer / $44k / $58k / $76k / $98k / $124k
Software Developer / $56k / $72k / $92k / $117k / $144k
Mechanical Engineer / $53k / $65k / $82k / $103k / $123k
Electrical Engineer / $57k / $70k / $89k / $113k / $139k
Pooling together the programmers and software developers would give salary figures in line with electric and mechanical engineers' salary figures.
For recent graduates from top schools, the situation is different
I looked at salary data from the 6 top ranked colleges (roughly speaking) in computer science and engineering.
---
Stanford reports average starting salaries for 2011-2012 graduates by major:
Major / starting salary
Computer Science BS / $94k
Computer Science MS / $105k
Mechanical Engineering MS / $83k
Electrical Engineering BS/MS / $73k
The page doesn't say whether the average is the mean or the median.
----
MIT reports average starting salaries for 2013 graduates by major (pg. 25)
Major / starting salary
Electrical Engineering and Computer Science / $92k
Mechanical Engineering / $75k
The document doesn't say whether the average is the mean or the median.
---
UC Berkeley reports average starting salaries for 2012 graduates by major:
Major / starting salary
Electrical Engineering and Computer Science Computer Science / $83k
Mechanical Engineering / $64k
The pages don't say whether the average is the mean or the median.
---
Carnegie Mellon reports starting salaries for 2013 graduates in computer science and engineering
Major / mean starting salary / median starting salary
Computer Science / $95k / $100k
Mechanical Engineering / $64k / $64k
Electrical and Computer Engineering / $86k / $90k
---
University of Illinois reports starting salaries for 2012 graduates by major.
Major / mean starting salary / median starting salary
Computer Science / $81k / $90k
Mechanical Engineering / $65k / $64k
Electrical Engineering / $67k / $70k
---
Cornell University reports starting salaries for the class of 2012 by major
Major / mean starting salary
Computer Science / $76k + ~5k bonus
Mechanical and Aerospace Engineering / $62k
Electrical and Computer Engineering / $70k + ~3k bonus
Putting this together, it appears that on average, computer science majors at top schools make between $8k and $21k more than electrical engineering majors, and between $16k and $36k more than mechanical engineering majors, depending on the metric used and the school. These differences favor computer science substantially more than any of the differences described in the previous section.
Possible explanations
What is going on here? Why do recent graduates from top schools who major in computer science have salaries that are so much higher than than those who major in electrical and mechanical engineering, when the trend doesn't appear to hold more generally, even when comparing the 90th percentile of earners in the respective majors?
Do salaries in computer science start higher but plateau more quickly?
Are graduates from top schools above the 90th percentile in earning power (after controlling for age), such that the broader trends reported on in the first section of this post aren't pertinent?
I'd welcome any thoughts.
My first though was also along this line: Mechanical and other non-electronics-related engineering is mostly an established (read: CMM 4-5 level) fundamental part of our society where advancements or economically impactive progress are made only by the >99% percentile - at least that is my impression. Sure technology progresses here but it doesn't make economical sense to excessively invest in brains.
CS on the other hand is not as established. Actually we haven't reached the anything worth the name 'software engineering' even though this is demanded all the time. Our best working methodology is called 'agile' and far away from CMM 5. So in such a dynamic environment brains and talent make a difference. And I think this is what translates into a long tail of occupations, jobs, startups that have a sore demand and obviously are willing and able to pay much more than could pay back for normal engineering.
Also compare with blue/red ocean strategy.