After you get a feel for how a basic stack overflow works, go to exploit-db and recreate as many exploits as possible. Meaning, down load the vulnerable software, try to find the bug your self and recreate the exploit. It’s the best practice you can get.
I also highly recommend downloading “Freefloat FTP Server” there are a hundred buffer overflows in it and its a fantastic way to practice.