Hello,
I'm not sure if this should be posted here. If it should go in the open thread please let me know. I figured this could be an interesting conversation, since many people on lesswrong seem to be programmers.
I am currently researching the difference/ pros-cons of pursuing a computer science degree versus a software engineering degree. By "software engineering" I mean an accredited 4 year engineering program that allows a student to become a p.eng. My understanding is that computer science is more theoretical and mathematical and studies things like algorithms, data strictures, complexity and computability, while engineering is concerned with the practical design,development, testing, and production of software.
I'm wondering what kind of jobs each degree can lead to, and if one is more optimal than the other in terms of:
1) short term salary
2) long term salary
3) promotability (job ladder climbing)
I'm sure there are more useful and relevent questions which I do not even know to ask. If there is anything you think might be a good question that others (or you) can answer, please let me know and I'll add it into the OP.
Thanks!
(My answer will be very US-centric.)
These degrees will be regarded almost the same by most employers. A much bigger factor is where you will get them--your choice of school affects how valuable the degree is more than the major, what your next four years will be like, and how much money you will spend on it.
A PE in Software Engineering is a brand new thing. The PE is very important in some transitional engineering fields, but actually doesn't mean much practically in many others. In the software development industry, certifications have traditionally meant very little outside of government, government contracting, and internal software development at large, non-software corporations. (Think words like "enterprise", "requirements specification", "Java"...) If you are interested in stable work, go into government contracting. Mostly avoid the latter category, where you will be undervalued most places.
If you are interested in working for tech companies or startups (think words like "agile", "free energy drinks", "Python"...), then your degree is of a lot less value and certainly the subtleties of it are. Strengths here will be showing cool projects from your degree (CS wins a little here), personal projects, professional experience, etc. help a lot. A strong github profile or other portfolio will impress.
If you're interested in doing interesting, stable, well-paid work but still want to program, consider a dramatically different degree. People who can program in science, engineering, economics, etc. get to work on really interesting problems and are considered really special in their fields. There is a lot of money for people who are really good at it and know how to sell themselves. Hopefully a few decades from now "programmer" won't even be a career and domain knowledge will be the norm.
Can you provide concrete examples of people/companies/job titles? I've been programming for a while, and I realized recently that I actually find it pretty boring a lot of the time. If there was some way I could learn a new field in order to get paid more and do more challenging work, I'd be pretty interested in that.