Computer science definitely seems better for making companies / entrepreneurship potential.
In my experience, engineering jobs are far more segmented. You can be awesome at making microprocessors, but then only a few companies may be able to hire you. In other fields in similar; there are lots of interesting areas within engineering, but within each, it seems like there are only a very few specific companies, especially within a given geographic area.
For whatever reason, a lot of engineering companies just don't seem that great (I think it's the lack of competition). Tesla and Space X (two of the top companies engineering friends would find jobs at) are much worse to work at than one may expect (see the Glassdoor ratings). Where you can find one, hope you keep the job (it often seems like you become specialized, and there just aren't many other great companies in the space. An example is Intel).
I think that computer science jobs are more flexible than engineering jobs. I'm a bit more afraid of engineering jobs getting automated than computer science jobs (if you're ok learning a lot of new languages).
More startups in computer science, if you're into that.
The fact that engineering is way harder in college (at least my college) is an important factor. I really disliked much of my college experience because of the difficulty. Now a lot of the information doesn't seem applicable to my life, at all (I'll forget it quickly).
It seems like with CS you get the bonus of understanding AI risk more, if you're into that.
I think that my (general engineering) degree definitely gives me a bit of a diverse background. I kind of have the option of going to a hardware/software startup, although I'm not sure I want to go in that direction with my career (it seems to narrow your career without improving your expected earnings). I like to think that it may be useful if I want to go into venture capital or some more diverse or meta-level positions, but now I'm really not sure about that.
One huge benefit to engineering is that I feel more comfortable making cool stuff, like arduino hobby circuits or burning man floats if I wanted to. It does feel really cool. Doesn't help my career as much though.
(For reference, I graduated with a 3.0 at Harvey Mudd College in General Engineering, focussed a bit on electrical. I spent 1 year doing web entrepreneurship with a cofounder, then another year with 80,000 hours doing web development.)
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:
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.