First read your prefered book on computer architecture, then try programming a little in some low level programming language.
Do some assembler and some C.
Try to understand how things work and you will realize how to exploit them.
I am no expert regarding this, but ROP is just a hackers trick based on call stack manipulation. You get the idea of how it works easily and see how they got this idea when you know how functions calls normally work (how they affect the stack, and how affecting the stack can be used to manipulate the return address and hence executed instructions).
So, I would say what you need to do first is learn some computer architecture, try some low-level programming language, understand how things work and also how system calls work and how are they compiled from C, C++, etc. Think on how to exploit that.