Hardware engineering is very different from software. In a software engineering college curriculum(sp?) you do learn some of the hardware concepts like CPU instruction sets and signals but not on a level where you can build your own electronics. In a hardware only track you might learn about VLSI and microcontroller interfacing but little to nothing about Object Oriented software techniques and efficiently structuring large scale software projects like games. But then again MIT does combine the two into one track and I assume that it's difficult as hell. To me software allows you to be more creative. In short you can have more of an impact, knowing less.
You could always go back to school to learn hardware, but I think that building software is more important. For example we have 2.8Ghz pentiums for $300 a chip but hardly any sofware which justifies the purchase of such a machine. Where is my next Photoshop which fuses 2D and 3D into one very easy to use program with an elegant interface. Seems like the only apps which push the boundaries these days are games, and that's just not enough. Having grown sick of this crap I am engineering my own natural media paint application which will push the boundaries of 2D and 3D not to mention be fun to use and do things that not many have seen before. Along with that I plan to have a very simple yet powerful user interface. Of course it will work on both Windows and Mac.
To answer your question the tools on the PC are more refined just like Mr.Sparkle said, and I would prefer working with them though I don't like M$ new direction with C# and .NET framework, it kills cross platform code which is why I only use C++, and COM instead of .NET. I tried games and didn't find it to be my cup of tea. Although, I do apply physics, scripting, and techniques for real-time 3D rendering in my own apps just like in games. My favorite area of research right now are 2D and 3D Bezier curves and their applications in 3D Free form deformations(organic animation), vector art, control, and subdivision. Many game developers are starting to use curves for having resolution independent 3D models and better flowing animation, and ATI even has a hardware curve renderer built in to Radeons. Ultimately, your career choice really depends on what your end goal is. If you like to be closer to the end product and have a direct impact on people then try software. If you like being the man waay behind the scenes and generally find math like Bessel functions, and electronics more interesting and would not mind getting to the bottom of each. It's either the C++ compiler or a CAD Engineering program for PCB design, either way you'll be sitting in a fairly dark corner of the universe with little immediate gratification from others regarding your work. BTW I only talk more about the computer engineering because I feel that it is being under-represented here, not because I like it more.
In software I even have my own preferences. For example I do not like working with command line tools like GCC, even if it is free. GCC is a UNIX based compiler tool set which is the most widely used one for compiling PS2 programs. There is also a Code Warrior compiler which I believe will get more popular among American and European developers because it offers a GUI and faster workflow.
A surefire way to test if you like hardware or software is to take the required Calculus course for each. If you can put up with the more complex engineering math then that's your ticket, if not try the simpler and more practical software Calculus. Remember, if you don't like your chances in a course early on you can easily transfer to another one. Also, hardware engineers get paid more than software ones, and game engineering salaries are too low by any engineer's standards.
seen
