[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/sci/ - Science & Math


View post   

File: 158 KB, 1280x720, maxresdefault.jpg [View same] [iqdb] [saucenao] [google]
10675844 No.10675844 [Reply] [Original]

I am having trouble on deciding whether to go for a computer engineering or computer science degree.

I am interested in both, but which one should I consider more of from a pragmatic and financial point on view?

Also which degree is more flexible and your opinions on the two degrees?

>> No.10675900

>>10675844

I'll preface this by saying I am an EE major so I can't talk about many of the specific course differences. As far as the overview, I can provide some insight.

EE, CE, and CS all exist on a spectrum of computing. EE is mostly hardware and some software. CS is mostly software and some hardware. The split for CE depends on your program. My school is skewed towards more software than hardware.

The reason I explain this is to emphasize that CE is less well defined. From what I've seen, most CE students get a little bit of both but really focus on software more than hardware.

By the definition of flexibility, CE is technically more flexible as it allows you to do either software or hardware. Realistically, there are many more software jobs than hardware jobs so CS has more scope.

The ultimate redpill however is that it really makes little difference in the end as the majors are so close together.

I'm an EE but I'm getting experience more related to strictly computer engineering 'defined' work. Also, from what I have seen, someone with experience in hardware (and EE) can learn CS more readily than a strictly software person can learn hardware.

This may have been rambling a bit but I hoped it help.

In short, pick CS if you want to avoid hardware engineering as much as possible. In the long run, it won't matter much.

>> No.10675927

>>10675844
You’ll get a stronger math foundation in Computer Engineering. Typically CE programs require diff eq and physics. You’ll also learn the fundamentals of electronic circuits, computer organization and architecture, and lots of embedded systems programming. You will graduate knowing more about computers than any other degree program, by a fairly large margin.

I’m not really sure what the upsides of the CS side of things are. Everyone I know who took CS is just doing consumer application software, but I know CEs working all over the place, automotive, healthcare, and top tech firms working on fundamental improvements to internet infrastructure.

>> No.10675943

>>10675900
shut up leddit
>>10675927
that says nothing
>>10675844
alright u leddit fuck
the big difference between CS and CE is how much bootstrapping you do
when they first came up with logic in electrical circuits none of it was any intuitive for human beans, so they came up with ways to organize the circuits in a way that makes it easier for people to understand
CE moron engineer-wannabes deal with making those circuits workable for computer science people, and they have way more in common with CS people (even in the work they do) than they do with actual EE (though they'll never admit it)
CS is the lazy dumbshit wizzards that took the circuits that CEs built and just kept making it easier for themselves, from machine code to assembly to C to sepples to IDEs for the twenty languages that they think makes their job easier to whatever the fuck google is gonna do next to "promote a healthy mobile developer ecosystem (they decided environment wasn't head-up-their ass enough a few years back)"
They both think the grass is greener than the other side (because the work they have to do are both bootstrapped to the point where it's just a bunch of autists designing and moving blocks around and seeing what works), and they think this because they inevitably dabble in eachothers' crafts at some point in their curriculum (which is not only good but necessary).
The important thing to remember is that there's much less monkey work in (real) CE where your job is guaranteed to go nowhere or get outsourced, where as CS covers everything from monkey work to being an overpaid asshole.

>> No.10676177

>>10675844
you should consider your CS degree is most likely a SE degree + some math. so when comparing SE and CE the question is whether you want to work closer to the hardware(CE) or strictly with software(SE/CS).
SE jobs are usually in higher demand than CE jobs so they pay better.

>> No.10676205

>>10675844
>>10675927
I'll preface this by saying that differentials and some extra physics classes don't give you a stronger mathematical foundation. Learning how to solve out equations with yet another linear operator isn't really new or "more math." Learning harder combinatorics, analysis, algebra, etc. is math, both in the sense of "proof writing" and in the sense for "problem solving." Again, most of my thoughts can be summed up when giving advice to an anon in another thread. I'll link it here. You have to be aware of the difference between working in software and "doing" CS (specifically research)
>>10674596
>>10674606

>>10675943
Again, this is a heavily biased towards "the real work in the field of computing is making these machines, clearly my background in semiconductor physics and circuit design makes me cut out for that" sort of deal. CS was never about making the machines out of metal, but to study them as the pretext to mathematical questions. I can tell you now, as a dude who does mathematical physics and has written work on CMP and solid state physics, that your rudimentary understanding of these phenomena in creating computing machines *misses the point of the conversation.* Your field isn't CS, doesn't encompass CS, nor does it have any relevance to its study. Doing CE is totally fine, as is any engineering, but codemonkeying skills are CS are two different entities.
>>10676177
I do agree that most CS undergrad programs are more SE + math lite, but if you so please, you can just substitute in good courses for the bad. Either way, you should figure out
1) do I want to work in industry after a bachelors?
2) what materials do I want to work with?
3) do I want to do research or service work?
Answering these will help you answer your question at large

>> No.10676219

>>10676205
>You have to be aware of the difference between working in software and "doing" CS (specifically research)
https://web.archive.org/web/20060525195404/http://www.idi.ntnu.no/emner/dif8916/denning.pdf
>Subareas of the Field
>Software Engineering

>> No.10676236

>>10676219
>https://web.archive.org/web/20060525195404/http://www.idi.ntnu.no/emner/dif8916/denning.pdf
It literally lists it as 1 out of 12 sub disciplines in a 90s list about the state of the field, especially when bioinformatics was the big meme. Second of all, these pertain to CS heavily in the way of systems, which is no surprise since Denning is a systems researcher himself. There's some truth in his description of the field "in service" to others (which is to say, he's describing the motivation for CS at the undergrad to industry level), but he doesn't really talk about theory research or the state of how different it is from software engineering. To work in CS is to first and foremost work in solving problems, proving theorems / bounds, and making sure you can do so in an efficient fashion. Applying this comes out in software, sure, but it's hardly what CS is about, especially in theory departments. Look at any Simons institute lecture and that becomes clear

>> No.10676243

>>10676205
>I'll preface this by saying that differentials and some extra physics classes don't give you a stronger mathematical foundation.
It gives you a stronger foundation than a CS degree where only basic discrete math, Calc 1, 2 are required.

>> No.10676244

>>10676219
I think this is outdated for 2019, SE has become its own monster detached from the rest of the more research oriented CS subdisciplines.

>> No.10676255

>>10676219
>>10676236
Also, more on Denning (taken from wikipedia, section "Computing Education")
>"Denning has been a major influence in computing education. In the early 1970s he led a task force that designed the first core course on operating systems (OS) principles. OS became the first non-math CS core course."
You're citing the opinion of someone heavy into systems and their uses in engineering contexts. Obviously there's going to be skew in his "review" of the education. Valuable as it may be, as OS design and embedded is important in the education, it's by no means emblematic of the reach of the study, hardly "the point", and it doesn't suggest software engineering is academically close to CS

>> No.10676267

>>10676243
Not really, again for the same reasons. Now, I have my own grievances with CS degrees from mediocre schools because of sparse math requirements (I mean, look at the thread where I posted the replies in the first place), but the answer really isn't differentials; again, the applications of learning how to solve the same equations that have one new linear operator doesn't really improve your mathematical chops. It just adds another algorithm to carry out some already solved problems in the context of science. Now the theory of differentials, perturbation theory, etc? Those are interesting. That being said, difference equations and recurrences are the "discrete" versions of differentials, obey a lot of the same thematic tricks, etc., and CS majors generally learn a lot about generating functions and difference equations, as it's important for complexity.

CS majors would more benefit from reasoning classes and tougher problems from discrete theories, since discrete theory is either very easy or insanely difficult with no in-between (as it's either the trivial case or reasoning over the very hard, creative cases). Hell, everyone would benefit from these classes. I would say that calc 1-3 are most immediately useful in CS, especially theory as far as basic calc goes. Differentials become important in other subfields, and harmonic analysis is invaluable as a theorist as you need it to create bounds for a lot of tricky problems.