This guy has the best argument if you cannot decide what to choose between CE (Computer Engineering) and CS (Computer Science).
“I have degrees both in ECE (focused on the Digital/CompE side) and CS, I work as a CompE. I somewhat disagree with your assessment of the two majors, they are both extremely broad fields that are somewhat difficult to sum up in a paragraph.
Computer Science could put you anywhere from writing the next Angry Birds to trying to prove P=NP (this is the more mathy end). When I was taking intro CS classes I basically felt the same way you did, in my opinion Java is boring and VB is a terrible language. I am fascinated by Operating Systems (system and kernel level code, the nitty-gritty stuff) and compilers which all kind of sit in a nice middle space between hardware and software, had I not gone into Computer Engineering I’d probably be trying to work there.
Computer Engineering is way more focused on the electrical/hardware side but it is still likely going to involve a good amount of coding, though it can also involve interaction with (or design of) hardware. I found that I really enjoyed working with microcontrollers, being able to design a circuit and then write code (I’m a fan of C) that controls it is pretty awesome. There are limitless possibilities to the number of things you can design and build using these skills.
To give you an idea of the range of jobs available I have former ECE classmates that work anywhere from designing video processing/encoding boards with FPGAs (this is a hardware design position) to writing embedded software for consumer GPS units (no hardware design involved at all). Some of my former classmates also work for companies such as nVidia and Intel on their ASIC design and validation teams which, while there is hardware involved, there is a lot of time spent in software before a chip is ever manufactured.
As far as the programs go yes, CompE will likely require a lot of math. CS can also require a lot of math but it’s more on the discrete/linear algebra/computational analysis side than the differential equations/signal analysis/vector calculus side.
I work in pre-silicon SOC validation. My day-to-day job involves a lot of coding and debugging in Verilog (and perl when I need to deal with scripts). I don’t get to design circuits and I rarely ever need to deal with hardware but I still need to know all that stuff (including a surprising number of analog concepts). My contribution is almost entirely in wiring code and finding bugs in the code other people write. I wouldn’t say that this was my dream job when I was starting out but most of the time it is sufficiently challenging.
I’ve always had a passion for the hardware side of computers, taking apart computers when I was in like 3rd grade… there was just always an appeal to me and of course, there still is a tremendous appeal to me. I love building PC’s and I would love to learn how all the parts actually work. Not only that but it’s something I enjoy and something I think I would enjoy pursuing a career in.
This is how I ended up where I am today, I’ve been fascinated with computers since a very young age. I’m pretty happy with where I ended up. Be forewarned: As crazy as it may sound I come home after dealing with stuff at work all day and often times the last thing I want to do is sit in front of a computer. I still enjoy playing with the latest and greatest hardware (I just built my Haswell system a couple weeks ago!) but it’s not something I do nearly as much of compared to when I was in highschool/college.
Best of luck to you in making your choice!”
The rest of the discussion is here.