If you already know a programming language well, learning basic assembly will do more for your 'hacking/reversing' skills than learning another language.
There is an AMAZING youtube series for learning basic assembly. The guy really takes his time to explain everything, even draws pictures on a whiteboard.
After that you'll learn about creating detours or something. How windows manages virtual memory and how you can access/change it.