<p>Computer Engineering is a sister discipline of Electrical Engineering. It’s basically an EE degree with a focus on computer hardware, there is some overlap with CS in that you take some algorithm course(s), some more programming than an EE student, and some computer organization/architecture stuff (probably with a hardware oriented flavor).</p>
<p>CS varies widely depending on what school you take it. The big difference is that it’s not a traditional (ABET accredited, or CEAB here in Canada) engineering degree. Therefore you are not eligible to call yourself an “engineer” in certain jurisdictions. CS focuses mainly on theoretical stuff (algorithms, complexity theory, automata theory and such things) also with a fair amount of practical stuff (computer networks, graphics, software development, etc.)</p>
<p>SE programs vary even more widely. Again, they may or may not be an accredited engineering degree. A single school may offer two versions of the degree, at my school they are widely different. The B.Eng SE is basically Computer Engineering with more (annoying) software engineering practice, validation/verification, etc. classes. The B.Sc. SE is Computer Science with less math and more required projects. But that’s just my school, you should look up the info for yours.</p>
<p>As for ME limiting you from this path. Yes and no. Typically software companies seek out SE or CS graduates. However, some companies which build specialized software need people with a very good understanding of the application domain, which may mean knowledge of mechanical engineering could be required. I interned at a company in the aerospace industry and mechanical engineers were very welcome provided they had programming knowledge. In fact, they could do jobs that SE/CS graduates could not. (For example MATLAB/Simulink work involving some understanding of aerodynamics, which us SE/CS folks lacked since we were too busy with silly design patterns and other nonsense .)</p>
<p>You don’t need a CS/SE degree to work in this industry. Just make sure you know how to program!</p>
<p>Edit: Looking at the list of companies you provided, the best route if you want to work as a Software Engineer for them would be a CS or CE degree.</p>
<p>Edit #2: Personal Bias Disclaimer - I look upon SE as a fairly sketchy discipline which can easily be practiced by people with traditional CS or CE degrees. If accreditation is what you seek, CE is the solution then.</p>