

Ask HN: Software Engineering Vs. Computer Science - riskish

My school offers both computer science and software engineering degree plans, and they are both the strongest programs we have.<p>My interest is in developing applications (specifically web apps), so I'm reconsidering CS thinking a software engineering degree might be of more value.<p>For a SE degree, the degree plan contains many of the same courses as CS (Operating Systems, Comp. Architecture, Alg &#38; Data Structures), but towards the end instead of taking Automata Theory and Programming Languages you take software engineering courses like Software Architecture &#38; Design, Testing/Verif/Valid/QA, and Project Planning.<p>I don't know much about how these degrees are viewed differently in the job market. Im also unsure if I'm on track thinking software engineering would be better since I am interested in building my own apps. It seems CS is more of the traditional degree in computing/programming, but I see real value in a SE degree for my goals of really getting to building better software...am I right in thinking this? Any thoughts would be appreciated. Thanks.
======
scol
(I am soon entering my final year in a CS degree and thus may be entirely
wrong)

I'd go with the CS, rather than SE degree. Although I did not enjoy or learn
much from Programming Languages, Automata theory (and basic CS theory) is
WILDLY interesting. I can't imagine graduating without knowing that type of
theory.

The best part is that since not many schools have SE degrees, having a CS
degree (rather than a SE degree) will disqualify you from exactly 0 jobs.

------
allenc
On one hand, it's great that academia is finally starting to teach what people
in the industry lament as a lack of engineering education in their new grads.

Then again, like what others have said here, you're probably better off doing
the traditional CS education for now. As much as SE in school may teach you,
having an industry job where you'll learn from system architects, QA teams and
project managers is probably a better education anyway. Think of the CS
material as more future proofing - if you ever decide to try to get a job at a
place that values computer science (think Google), having CS will let you be
on par with all the other candidates (seriously, I've seen some interviewers
downgrade a candidate because they didn't have a CS background).

~~~
riskish
If my plan is to start my own company (not work at one, so I would not pick up
things as you mention), wouldn't the SE degree make more sense, to kick-start
the formalized processes in software dev?

~~~
allenc
Sure. I'm operating under the assumption that life might throw you a curveball
or two - maybe some company is offering you enough money and a chance to
network with great people that you'll take them up, but get stuck in the
interview process b/c you don't have enough CS. To me sticking w/ a pure CS
curriculum is the least risky and what you miss in SE you can quickly make up
after anyway.

------
g-wizz
In my experience, the subjects you have listed such as QA and project planning
are indeed useful in industry.

However, they are not complicated concepts. I didn't get a degree in SE but
found that within a couple of months of working after graduation, I had been
exposed to all of these and been taught best practice. After one or two
internships, you may find that you will have too. For most people, this is not
the case with advanced CS theory which you may or may not be interested in.

Since many of the courses are common between the two, do you need to commit to
one or the other right at the start?

------
regularfry
If you're anything like me, you'll be stuffed either way. I did a more
engineering-focussed degree (10 years ago) and I'm _still_ learning things
that I would have learnt on a CS course. However, I'm also constantly using
the SE knowledge I was taught.

I guess it boils down to which side you're happier picking up as you go along
after you leave.

------
stonemetal
I have never heard of anyone treating a SE degree differently than a CS
degree. Mostly because as you point out they aren't really that different. One
is more theory the other more practical.

