Computer Science vs. Computer Engineering

<p>I don’t see where people are getting the notion that CS majors have more opportunities than CpE majors. On the surface, CpE majors have a mix of both EE and CS knowledge. Most of the companies I look at say they want people who major in CS or equivalent ( CpE being an equivalent ). I think a potential CpE student should take elective courses that tailor to his/her goal. </p>

<p>At Virginia Tech, CpE students are required to take courses in circuits, electronics, signals and systems, embedded systems, and EM fields. The school then gives students the opportunity to take electives geared toward EE, CS, or CpE with two senior level CpE classes being mandatory. Many CpE students get the core CS curriculum ( data structures and algorithms, operating systems, comparative languages, a theory course, etc. ) plus more while still getting a strong foundation in computer hardware courses. Its perfectly possible for a CpE student to be a strong programming candidate as well as a strong hardware candidate. The key difference is the flexibility of the school’s program as well as what classes the student takes.</p>

<p>Lets not forget, programming employers are among the most liberal of all engineering employers. All a potential candidate needs is knowledge of operating systems, data structures and algorithms, databases, and networking. Candidates with just those skills may not be competitive enough for Google, but it will get them through the door for most jobs. Graduates in the majors of math, physics, and EE are all commonly hired as junior software developers. Heck, people with no degree still get hired as junior developers; although it isn’t as a common as it used to be.</p>

<p>

</p>

<p>Nearly all the Apple engineers are in California and Texas. Note that QCStudent was only talking about engineers who don’t relocate to CA/TX.</p>

<p>Hi I am an international student, so I am not really familiar with US college system. When u are applying, some school ask what specific major I intend to study, such as EE or CS. Is that what I have to major in after getting into college of engineering or just asking my interest and I can choose what I wanna major in after get in?</p>

<p>They are asking what you would like to major in. At most schools you can go in as undeclared or pick your major. This doesn’t mean that you’re stuck with it though, you can easily change your major, just be aware that this may or may not make you graduate later than expected due to program requirements</p>

<p>Oh thanks a lot. I guess I have to figure out the choice between CE and CS as well.</p>

<p>Umm, how about those appears on the future plan on the common app?</p>

<p>CpE!= 50% CS, 50% EE. It’s merely an EE degree, with a few introductory level CS courses. The CpE curriculums I’ve seen, do NOT plan them for Software jobs, they merely prepare them to know how code looks like. However, I have seen some CpE curriculums that balance it out well, but that kind of jack of all, master of none, doesn’t always end up doing well in the job market. Like I said, take my post with a pinch of salt, and look up career surveys. You can then see that CpE(IFF they had a CS minor, or took CS courses)end up as Software Engineers. In the Tri-state area in particular, EE/CpE’s are all bankers, since NY in particular is an upcoming Tech hub that wants CS guys(we are rivaling Boston).</p>

<p>Let me give you an example, and I hate to brag, I used to be an EE major, and despite maintaining a 3.88 GPA, I couldn’t land an internship in the tri-state area. Why? Cause there are not that many companies, and those companies that do have openings, the oldies(i.e experience EE’s)hop on it before you can blink. </p>

<p>Now in CSE(Computer Science at my Engineering school)which I love, I forget to attend interviews because I have so many lined up. </p>

<p>Get the point, and look at career surveys. Do what you like, that’s my first and foremost advice to you. However, if the decision is between CpE and CS and you love both, yet the deciding factor is employment, then one must be seriously mistaking to go with CpE. Put it this way, you go through all that hardware theory, and hope to find a job in CS, meanwhile in the tri-state area you are competing with a Stony Brook, MIT, Harvard, Columbia, etc CS grad for that opening. Only if an employer can’t find a CS guy(which I admit they are struggling to find)will they consider a CpE. Even then, they will be fishy about his foundation. I mean, in those intro level CS classes, how much exposure do you really get?</p>

<p>QCStudent, if you think all an employer does is look at your school, major, and GPA to make a decision then I’m sorry but you’re flat out wrong. In all reality, nobody cares about your major - its about your skill set. Majors are supposed to be a statement about your skill set but that isn’t always the case. </p>

<p>There’s a reason why it’s important to highlight specific classes you’ve taken and the grades you received in them. If I was a hiring manager at Amazon, why should I care if you graduated with a CS degree but don’t have any knowledge of networks or databases? If I was a hiring manager for Electronic Arts’s programming group, why should I care if you have knowledge of compiler theory but don’t have any knowledge of AI or 3D graphics programming? Classes/skill set > major. Which is why many people on these boards advise students to not dual major or work for a minor because they ( rightly or wrongly ) believe it’s a waste of time. </p>

<p>I just spent the past 15 minutes reading educational requirements for several major software companies. Google is the only company I found to say flat out that they want want CS majors only. Even then, they still had job postings for beginning programmers that were available to “Computer Science graduates or equivalent”. Apple, Cisco, Amazon, Microsoft, IBM, EA, defense contractors, and even US intelligence agencies all posted job listings for junior software developers that listed CS graduates or equivalent as a requirement. CpE is an equivalent. </p>

<p>The trick to CpE is to get a curriculum that offered flexibility. You’re right that most CpE programs don’t prepare you for most beginning software jobs - but neither do most CS majors. Aside from data structures and algorithm development, operating systems, and possibly a theory course, most CS programs leave the employability part up to the students.</p>

<p>The thing to look for in CpE programs is flexibility. The CpE program at my school allows students to dive deep into EE, CpE, CS, take a little bit of two or take a lot of one. CpE graduates routinely get software jobs at Amazon and Microsoft. Many more go graduate school in CpE, EE, or CS. Hell, one of my best friends graduated last year with a degree in CpE and is working on his masters in Computer Science at Carnegie Mellon. Larry Page did CpE at Michigan before enrolling at Stanford for his Phd in CS; and he went off and started Google! Eric Schmidt majored in EE at Princeton before going to Stanford for his Phd in CS. This isn’t unheard of. You can’t compare your situation with EE and then try and tell other people that CpE wont qualify them for software jobs. Course selection is key.</p>

<p>What I would recommend the OP to do is look at each school’s degree programs and make sure the programs are flexible. Once you decide, come in as CpE. The first two years of most CS and CpE degrees are almost entirely identical; the only difference is in CpE you’ll usually have to take circuit analysis and electronics. If you don’t like it, switch to CS. You’ll save time going from CpE to CS versus doing it the other way around. EE classes are unforgiving with their prerequisites.</p>

<p>By the way, I’m dual majoring in Computer Science and Applied Math so I’m definitely pro CS.</p>

<p>Seems like you don’t understand what I am saying. In the Tri-state area, if you look at career surveys, most EE’s do not end up as Software Engineers, they work at Banks. My post strictly applies to the tri-state, since that is where I hail from. Also, like I said, generally speaking, most CpE curriculums DO NOT prepare you for CS jobs. A CS major, depending on your school, does. Take for example my school, in nearly each class, we do kick ass projects. I’m talking about classes where there are no exams, strictly projects. This aforementioned type of experience is what makes employers like Google drive 60 miles to attend our project presentation day, and its what makes Microsoft fly out here to recruit. CpE’s, given that they are EE’s tagged with 2 or 3 cs courses, do not qualify for the same positions. IFF they have taken courses like, Databases, Software Engineering, etc, will they be in the same boat, or if an employer struggles to find a CS guy.</p>

<p>I was an EE major, and I’ve taken CpE courses, so I’m speaking from experience. If you read my post, this is what I said:</p>

<p>If and only if, you like Cs and CPE both equally, and the only deciding factor is employment, then CS has a lot more opportunities vis-a-vis CpE. A CpE will have a lot of learning to do, if he thinks he can just apply for a position requiring advanced knowledge of openGL, etc. It depends on the program of course, but most schools have CpE in their EE department, and their target jobs are more like Firmware Engineer, VHDL, VLSI, or RF. Employers might given them a chance at an interview, but it won’t take long before they owned, or have no team projects to show.</p>

<p>I was at an interview last week, and I showed the work I did in my 300-level classes, that’s what stunned the employer, not the degree. Those CpE spend more time learning about semi-conductors, and low-level programming. It’s projects which matters, and if a CpE decides to take all those massive 300 level classes(i.e compilers, computer graphics, ariticial intelligence)that have projects, then sure. But from what I’ve seen, they don’t even take advanced java programming, or Software Engineering.</p>

<p>This is like saying if a CS guy minors in EE, he might qualify for their jobs. That could be true, if the openings exceed the applicants. If two applicants, one is Cs and the other is CpE appleis to a Software Engineering job, you are gravely mistaking if you think he will give a shot at the quarter-baked CpE guy. I know, because I’ve seen it. I attend an Engineering school, and regularly interact with CpE’s, most which know are employed at top banks. None are doing Software, since their curriculim strictly required a 100 level C course, and a 200 level C++ course. That’s all. If you think that’s good enough for a CS job, then you lack experience.</p>

<p>Best,</p>