You Won't Learn That Here
In a controversial move, I don't believe this is a beginner topic! I think it is a major shortcoming of the community that we pretend this is something beginners should be able to figure out by themselves.
Before even attempting a reversing or exploitation problem a student should have a full understanding of C and assembly. It is very possible to fake it, and write buffer overflow exploits without knowing what a jmp instruction is (I certainly did), but we do a disservice to students by acting like this stuff is on the same level as the other materials taught in this course.
How to Learn C:
https://www.hoppersroppers.org/roadmap/training/c.html
How to Learn Reverse Engineering:
https://www.hoppersroppers.org/roadmap/training/hardstuff.html
How to Learn Binary Exploitation: