Best degree for a software engineer?

<p>Hi all,</p>

<p>I've been doing some soul-searching or whatever and I think that I've found what I want to do for a career: become a software engineer. However, I don't know if I would be better off with a BS in Computer Science or a BSE in Computer Engineering (or a double major in both)? I know that a majority of Software Engineers today have a CompSci degree, but CompEng is a growing major and an increasing number of software engineers have this degree. So my question is, does anybody know which one is "better"?</p>

<p>And just as a point of information, I'm currently a freshman at Case Western. I came here intending to major in BME but decided that I would becoming a software engineer more.</p>

<p>Thanks,
Ray</p>

<p>You'll learn more about software in CS.</p>

<p>You'll learn more about hardware in CE.</p>

<p>Which do you like more? If you want to be a Software Engineer, CS seems the more logical choice to me. I may be biased.</p>

<p>CompE gives you a better understanding of the system your working on. Also, you'll become a more efficient programmer when understanding how it works. I'm doing CompE and much prefer it to a standard CS major. CS today seems watered down compared to past CS curricula. CS seems to take a "magic box" approach, where you put in high level code and the "box" magically does something.</p>

<p>Do the CompE.</p>

<p>I was a software engineer on embedded systems (the best work, IMO) and the hardware understanding I had was invaluable at times. My husband got the job he has now because his boss needed someone to fix a hardware problem. They hired H (a consultant at the time) for a day, he fixed their problem that day (!) and he's been working as a software engineer for this guy ever since.</p>

<p>The pure CS people seemed to endlessly wish they could write compilers.</p>

<p>Go have a talk with your placement office at school for some insight.</p>

<p>Runningcircles1, can you elaborate on the watered down comment? I'm curious.</p>

<p>Since you're looking into jobs and majors and whatnot, you may consider taking a look at the Occupational Outloook Handbook at the Bureau of Labor Statistics (BLS) website.</p>

<p>You can look up Computer Hardware Engineering, Software Engineer, Electrical Engineer, and all related fields and check the job outlooks, the salary information, etc.</p>

<p>If you do go into Comp.Eng. then software would be a good field to go into, rather than Comp.Eng. Lifted from the handbook:</p>

<p>"Computer hardware engineers are expected to have 5 percent employment growth over the projections decade, slower than the average for all occupations. Although the use of information technology continues to expand rapidly, the manufacture of computer hardware is expected to be adversely affected by intense foreign competition. As computer and semiconductor manufacturers contract out more of their engineering needs to both domestic and foreign design firms, much of the growth in employment of hardware engineers is expected in the computer systems design and related services industry."</p>

<p>Compare this to what it says for Software:
"Job prospects should be excellent, as computer software engineers are expected to be among the fastest-growing occupations through the year 2016."</p>

<p>Also, a quick search returned this very helpful and informative comparison:</p>

<p>Computer</a> Science vs. Computer Engineering</p>

<p>It basically says what I said, but a little more in detail.</p>

<p>At my school, here's the list of in-major courses for both majors (my school also has a Software Engineering major, which I will also include).</p>

<p>CS:</p>

<p>Introduction to Computing I (programming w/ Java)
Introduction to Computing II (programming w/ Java)
Software Construction (programming w/ C++)
Programming Languages
Discrete Mathematics
Algorithms
Computer Organization (and Assembly language programming)
Operating Systems
Software Modeling (using UML)
Formal Languages
AI systems
Networks
2 Computer Electives</p>

<p>SE:</p>

<p>Introduction to Computing I (programming w/ Java)
Introduction to Computing II (programming w/ Java)
Software Construction (programming w/ C++)
Programming Languages
Discrete Mathematics
Algorithms
Computer Organization (and Assembly language programming)
Operating Systems
Software Modeling (using UML)
Computer Architecture
Networks
AI systems
Software Process (available as elective in CS)
Software Quality Assurance (available as elective in CS)
2 Computer Electives</p>

<p>CE:</p>

<p>Introduction to Computing I (programming w/ Java)
Introduction to Computing II (programming w/ Java)
Software Construction (programming w/ C++)
2 EE labs
Electric Circuit Analysis
Linear Systems and Signals Analysis
Digital Electronics
Digitial Logic Circuits
Computer Systems (from an EE perspective)
Discrete Mathematics
Algorithms
Operating Systems
Computer Systems Design Lab
Analog Electronics
Digital System Design
Random Signals and Systems
Computer Architecture and Design
Information Communication</p>

<p>Just an observation... CS is almost identical to SE curriculum as far as major requirements are concerned, CE almost identical to EE (not shown).</p>

<p>OP:
You're an educated and bright individual. You can take this information and use it to make your decision. Good luck!</p>

<p>The actual content of the BSCS and BSCE degrees will vary somewhat depending on the college but 'AuburnMathTutor' sums it up well - do CS if you're more interested in software and aren't crazy about EE courses, and do CE if you're interested in software but also interested in EE courses and things like microcontroller circuits. For a lot of people this is enough to make the decision since some people either enjoy the EE courses or hate them (and vice versa for the EE person with the software courses). A CS major typically has to take some EE courses as well so you'll find out soon whether you like it or not. It's usually easy to switch from one to the other later down the road since there's so much overlap.</p>

<p>There is no 'best' degree between these two - it just boils down to what you're interested in and what you want to do. Working on embedded systems is no better than working on non-embedded software projects unless of course you find that area more interesting. </p>

<p>I don't think taking a lot of EE courses or an extensive understanding of the hardware is necessary for many software development jobs. In some cases a more extensive knowledge of financials, or even higher level math, or biology, or physics, or aeronautics, etc. would prove far more valuable than knowing how to design a microcontroller circuit unless of course your job is to work extensively with microcontrollers. There are thousands of software engineers who will never work directly with embedded systems.</p>

<p>
[quote]
The pure CS people seemed to endlessly wish they could write compilers.

[/quote]

My D who just completed a CS degree at UCSD spent quite a bit of time in intensive compiler courses (including many long weekends in the lab) which is required for a BSCS at UCSD. Again, the requirements for the particular degrees will vary with the college.</p>

<p>I suppose what I'm trying to say is just that...</p>

<p>It's better to major in what you have a passion for, not what you think will give you the prettiest piece of paper.</p>

<p>I used to work in a compiler group. Nothing wrong with that and we definitely need better compilers out there given the pace of hardware change.</p>

<p>I think the poster's point was that there are lots of folks out there interested in theoretical areas. Well, theory does meet practice at some point.</p>

<p>Most undergrad cs programs have compiler courses. At least in my undergrad the CS and CEN students came out with the same understanding of how computers worked, where the CEN people were able to extend it down another level with the EE stuff. Thats the only difference.</p>

<p>Compiler courses are common but those that didn't do well in Foundations or found it distasteful probably wouldn't take a compiler course. Foundations is where you find out if you are theory person or not.</p>