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!
Yes. Computer science is quite different from computer programming. Unfortunately, no one outside computer science knows that computer science exists. They think it means "really clever computer programming".
No government agency funds computer science research. Only a few places in the world (Google, Microsoft, IBM, Sun) fund computer science research. So computer scientists very rarely direct research. They may get venture capital for a startup, if they went to MIT, Carnegie-Mellon, Stanford, Harvard, or maybe U Waterloo or U Mich. I can't think of a single case of a VC investing money in a comp sci startup where the founders weren't from one of those schools. My impression, though I can't back it up well, is that VCs would rather invest in a firm run by someone who failed out of Harvard than someone who graduated from Brown.
If you're brought onto a project run by someone who isn't a computer scientist, they think a computer scientist is a programmer, and they will tell you to write and optimize database queries.
Ayup.
One of the odder moments of my professional life, back when I worked for Lucent, was being asked to find ways to integrate the Bell Labs team into our software development team.