R4ndom’s Beginning Reverse Engineering Tutorials
thelegendofrandom.com
thelegendofrandom.com
Admittedly I didn't learn from any tutorials myself. Pick up a debugger, find a mission (say, a trainer or a crack), learn assembly language and go for it worked for me! I did get schooled a bit by Katja who once sent me a .TOS with a symbol table that exploited my debugger, however - I didn't see that one coming! (They don't make 'em quite like that anymore.)
Knowing, especially these days, how compilers mangle what goes in to what comes out helps: it's not always obvious to human eyes.
If you're wishing to learn what's most hard to teach, it's more of a thought process - +ORC called it seeking. Seeking meaning behind what you see; not just reversing the code you read, but divining the higher-level intent behind it. I suppose experience gives you that, but you can still be thrown a few curveballs even when you've seen everything.
I always had a soft spot for rep movsb.
The canonical intro book I recommend is Practical Malware Analysis (No Starch), with their debugging and IDA books as supplements :) http://www.nostarch.com/malware