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!
I've never seen a software engineering undergraduate program like the one you describe. Can you point to one? (Update: after a bit of googling I found a few such programs, but they don't seem nearly as common as CS programs. Personally I don't recall ever meeting a graduate of such a program, and I meet a lot of new grads with CS degrees.)
I would be surprised if you found a statistically significant difference in outcome. Software development as a field has vigorously resisted professional certification of the sort practiced in other engineering disciplines like EE, CE, and ME. Frankly I'd argue that in practice software developers are not engineers in the same sense that civil engineers, mechanical engineers, and electrical engineers are. Employers of software developers don't seem to care about "professional engineer" titles, at least not in the United States. Perhaps it's different elsewhere in the world.
I also suppose this might change over time, if employers develop a preference for SE degrees and professional engineer titles. However, while such an expectation might affect the preferences of today's students, it would be hard to measure in the present.
The curriculum for software engineer isn't hugely different from the curriculum for CS. I suppose if the skills taught in the SE classes proved more useful than the skills taught in the CS classes that are omitted by an SE, then employers might become more interested in hiring SE grads. Right now I suspect most employers don't really distinguish these two degrees.
Long term, I suspect any differences wash away. I wouldn't expect to find any differences in long term salary or promotability between CS and SE grads from the same school. That's because I'm finding it hard to imagine what entry level jobs an SE might be suitable for that a CS grad isn't or vice versa. If there is a difference, it might be that a CS grad is more likely to continue on to a Ph.D. program, and that could certainly have a negative effect on lifetime earnings.
Here are two links to Canadian programs. I have never seen an analogous one in the States.
http://www.mcgill.ca/engineering/degrees/software
http://www.encs.concordia.ca/future-students/undergraduate-education/programs/software-engineering/
(Sorry for the urls... Is there a code or button to link things in text?)