<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>