Computer Science or Computer Engineering?

Status
Not open for further replies.

GlenicoNico

Honorable
Dec 19, 2013
458
0
10,960
I'm still in high school, junior year. I want to plan for the future, college to be exact. I don't know which major should I go for, computer science or computer engineering? Both have the word "computer" in them.

I find tech very interesting. I would love to work at a tech company. I enjoy fixing/troubleshooting problems, both software and hardware wise. I've been building and fixing computers since the past 3 years, and I've been enjoying every second of it. I just love and hate it when something doesn't work, it gets me going, as I mention earlier. I find computers very interesting, not just desktops and laptops, but computers in general.

I have no idea which major should I go for. I know I still have PLENTY of time to figure this out, but still. I've read online, and people say computer engineering is leaning more towards the hardware side and not as much on the software side, and computer science is leaning more towards the software side. the problem is, I enjoy BOTH!

Can you guys explain the MAIN difference between both majors? Just a simple explanation, simple enough for a 17 yo to understand.

Any answer will be appreciated. :)
 
Solution
I'd personally suggest you go towards the software side (or even look at programming specfically).

I'm based in the UK and I know over here at least, there is a real shortage of people who know how to code, as so many go into the hardware / IT support side. As a result there are lots of jobs available for software developers, and the pay is really good. On the flip side I think programming at a high level is the harder thing to learn of the two disciplines.

Disclaimer: I'm a mechanical engineer / product designer who does a bit of embedded software design using micro controllers so my coding experience is limited (although it's something I really enjoy and would have liked to study further had I discovered it earlier in my education).
 


As someone who got back from his college freshmen orientation at U of M three days ago, I personally would suggest going in without a major. I know that if you want to be an engineer you do have to go in with a bit more focus, since you have to get your pre-requisite classes done early, and if you want to keep those options open, you could always take them just to be safe. But personally I'm really glad that I'm going in without a major. It's allowing me to take a lot of classes that I'm interested in, not classes that I'm forced to take so that I can have a major I like. I'm interested in computers too, otherwise I wouldn't really be on Tom's, so I'm taking an information studies class. It's not the same at all as taking a computer science class, but I'll learn about information and all of it's different forms, which will include lessons about programming and what not. But at the same time, I can explore my other interests, for instance, I'm taking a film class, and I'm taking Japanese. And I'm excited about those things. To answer your question DIRECTLY, if you enjoy the thought of sitting in front of a pc programming, and coding, and troubleshooting, solving problems that can only be solved with a computer, then go for computer science. If you like rummaging around in your pc case and fixing things manually, working with pc parts, understanding them, and thinking about how you could improve them, go for computer engineering. But seriously, I can't help but suggest that you go into college treating it as an open experience where you give new things a try, because you never know if you love something unless you give it a try. That's just my two cents I guess.
 
Solution
Computer Science is a "general" degree, covering both hardware and software. In my experience, whilst it covers hardware, it is biased towards software, and a good course will be rather maths heavy (logic, set theory, algebras, formal languages, etc).

Computer Engineering could otherwise be referred to as "computer and electronic engineering", and is more hardware-heavy.

You may find a third course, Software Engineering, which is programming & how to design & write software.

If you're seriously considering doing either I would strongly recommend getting a prospectus from a college/university, and see a career advisor - in my experience IT degrees are frequently "mis-sold" to applicants, leading to a high drop-out rate based on "this isn't what I thought it was".
 
Think about it this way:

Engineering - You'll learn about build stuff using lots of different cards, and you'll eventually learn to code for embedded software (codes ran inside these cards).

Science - You'll learn about coding for computer in general, Java, C#, PHP, whatever the language you choose, it'll run in MACs/Windows e Linux computer.

If you like building computers and fixing hardware errors in general, they won't teach you THAT at the university!!
 
As far as what the degree covers specifically that is very college dependent.

In general computer science is programming, computer engineering is circuits and hardware.

What you describe doing is more in the computer engineering realm.

If you go the computer science route then make sure the program covers more useful/popular programming languages. Right now the iOS/Android app development is very popular and that should not go away 4 years latter when you graduate.

As stated, fixing PCs is not covered in either program, that is more trade school. If neither program interests you at your local university then you could actually look at just getting your certifications. Start with A+, Network +, Security +, and then see if you can take courses for Microsoft and Cisco certifications. The A+/Network + is not really sufficient for a decent job, but are a good starting point. Once you can get Microsoft/Cisco certs then you have marketable skills for business.
 


Thanks for the tip! and yes I'm fully aware that high level programming is harder between the two.
 


Thanks for the tip man! I'll try to be more open minded and try out new things.
 


Thanks for defining both terms at the simplest form! Now I know what the main difference is. 😀 Of course they won't teach THAT in the university, that is what Linus is for. 😀
 


As someone who just graduated with a Bachelor in Computer Science I would advise you to go against this. Some colleges, (I know Michigan State does this and possibly UM) require you to take prerequisite courses your first year or two that everyone has to take. Which is fine if you have a major that is undeclared. But other colleges let you declare a major as soon as you apply into the program at their University. What all colleges have in common though, is that they all require you to take certain classes for each and every major. So yes, if you were to declare your major as Computer Science, your course schedule for the 4 years will be different than if you were to declare Computer Engineering (some courses may overlap). If you don't declare your major or at least have a mind set what you'd like to do and decided to take some extra classes for "fun" because you find them interesting, you might be wasting your time because when you DO declare a major, those courses won't count because they don't fill any requirements for that major. If you have open electives, they you can take a few extra classes that you like.

I went to a university thinking I'd be majoring in Architectural Engineering but ended up hating it the first month or two going into my freshman year. I quickly switched majors and the classes that I took for architecture didn't count for my Computer Science degree. So I ended up graduating with 15-18 credits more because of those extra classes.

To sum it up, if you don't want to waste time by taking summer classes or stay an extra semester or year at the University, I suggest you declare a major and follow the flow chart and required courses for that major. This way you'll be on track. If you declare Computer Science but decide you'd like to work with electrical circuits alongside programming, than switching wouldn't be that big of a deal since CS and CE majors have some overlapping courses.

The most important thing in college is to try and graduate within the 4 years if not sooner. Because I took extra courses my first semester that didn't count toward my major, I took 1-2 courses each summer (even the summer after my 4 years) to make up for it which was a mistake. You seem like you know what you'd like to do going into college. Most people who go undeclared take the extra "fun" courses to get a feel of what they might like and later on major in.

Hope this helps. Good luck!
P.S. Just to give you an idea of the difference between CS and CE - CS deals a lot with programming and writing code in HIGH LEVEL languages (C++/C#/Java....etc). CE does some of that but mainly you learn about circuits and electrical components such as PWMs and Microcontrollers, and they mainly deal with LOW LEVEL languages (Embedded C/Assembly...etc).

EDIT: I highly encourage you to talk to a counselor.
 
Whatever you choose do NOT soley rely on what you learn in class to propel you into a successful programmer or engineer career and after you get your first job your skills will take you way farther then your degree. I see too many new college grads thinking that they have really accomplished something with no actual skills or experience to speak of. To me that is a huge mistake, do not think that the degree alone is going to "make" you.
 


I agree with jjb. Getting an internship your junior year can be very beneficial. A lot of the time the company you have an internship with will hire you post graduation. And the experience you get is much more rewarding than in class generic assignments. If you choose CS, expect do you a lot of research, learning, Googling, YouTube-ing, on your own. It might be intimidating at first, but it's fun to come up with your own projects and seeing those projects completed is an amazing feeling.
 
Pretty much a constant learning process (I am a web developer). The gratification is nice but passion projects are sometimes hard to accomplish, especially when you first start. Everyone has to put in there time though and there is always bigger things on the horizon and a lot of room to grow.
 


That's a slightly negative view on it. The degree gives you a foundation in a wide range of areas and is intended to get you started, it's also a really good achievement and something I think all graduates should be proud of. It most definitely is a real accomplishment as its for most people the end of their formal education.

I agree with you that getting a qualification like that is a starting point, rather than a finishing point, however on the same token most people take you on how present yourself and I know so many engineers who really undersell themselves. I mean as someone who runs a design company and has recruited a few times, I can say to get into industry from Uni requires a degree a confidence and self worth. I'm not suggesting a new graduate should be arrogant, just to be comfortable to talk about what they've learned and in themselves and the key thing is to be genuinely interested in the subject.
 
Status
Not open for further replies.