Try Matasano's Microcorruption CTF. It is designed for people with no experience. You will do the same things the author of the post did.
uctf strips away the layers of complexity related to a specific environment, giving you a clean place to learn the first principles. Whereas, if you tried this on a Gameboy, you must learn a lot of domain specific things, and learn how a computer works at a rather low level. For example: once you have built an exploit payload or two, it isn't so magical how using an inventory of items that are represented with integers can become code.
I discovered Microcorruption thanks to another HN post and I love it. It's one thing to read about things like buffer overruns and stack smashing, but another thing entirely to do them yourself.
I've gotten to the second or 3rd level with it. I just wish they gave a little more hints as to what I could learn about to help progress along with the levels.
Usually if you can figure out the type of vulnerability you are going after, you can search for it and then use the first principles of that bug type and apply it to the current level.
The first few levels are just to get you used to thinking in machine code, reading and thinking in hex, and used to reversing. They are a little tougher for some, depending on your background.
That's good to know! My background is in CS, so I've done a bit of computer architecture and assembly(been quite awhile though). Very new to reversing; I've tried out Lena's tutorials and decided to give this a shot instead. I'll keep that in mind :)