I think you need to have a specific purpose before you start doing embedded work. What I mean is that embedded work tends to have specialized hardware that is trying to achieve a niche that general purpose computers currently can't fill ( or are too expensive to use ).
If you were to buy some embedded hardware, you would eventually get the "hello world" app running in some sort of console environment ( either telnet or some sort of UART or through JTAG or USB ) but then what? Why kill yourself to get the boot up/drivers etc etc running "hello world"?
One specific purpose that I am looking into is Software-Defined-Radio. You might want to try implementing in code a simple FM or AM radio on an embedded device because that would give you a specific goal and it would be really fun to get that working ( and a good reason to kill yourself to get the embedded system alive! )
There is nothing quite like bringing alive some sort of previously dead blank hardware and seeing it power on from your main() function all the way to something useful ( like FM or AM radio ).
- http://www.wired.com/science/discoveries/news/2006/06/70933?currentPage=all
- http://en.wikipedia.org/wiki/Universal_Software_Radio_Peripheral
- http://www.ettus.com/orderpage.html , seems kinda expensive
Be aware that software defined radio hardware will cost a little more than expected...