To all those who were bashing the Lego (specifically the NXT 2.0 block) and calling it a "toy", please see this "toy" in action:
LEGO’s Used to Aid in Synthetic Bone Generation
Image-guided therapy and medical robotics tutorial using a LEGO Mindstorms NXT robot and 3D Slicer
Also, never ever diss an easy programming language, I know
ladder logic which is strictly used for programmable logic controllers and are highly used in manufacturing high-end voltage or high-end current applications like hospital sterilizers or X-ray machines (I tend to use examples form the medical field because this is where my expertise lies).
Anyway, back to the main subject of the thread, I think that in order to delve into the world of robotics, you should learn the basics of electronics. Try to familiarize yourself with the breadboard, basic electronic components like the resistor, capacitor, diode, transistor, etc..., sensors (basic at first like the photocell), and actuators (such as motors), and then try building some basic circuitry (I have a
post that might help get you started). Try building some really basic robots like the
beetle bot or other bots on the
Instructables website and the following tech magazines: Servo Magazine (I see it already mentioned),
EPE (Everyday Practical Electronics), and
Nuts and Volts. It will allow you to get familiar with soldering and what not.
As for hardware programming, if you're familiar with C or C++ (I'm guessing you are sine you're a CS major), then microC and Arduino language are a good start for they are high level programming languages used to program microcontrollers without the hassle of assembly.