Reverse engineering is a good idea when you are learning programming.
But before reverse engineering you have to know the basics (variable declariation, conditional statements, loops, etc)
I don't see what is your problem/difficulty when programming? Creating an algorithm? The language syntax?
I think the first thing you have to know is the creation of the algorithm, then it is just syntax.
If you can understand math and physics, then programming is going to be easy for you (in my opinion).
I didn't have trouble because i learned it in my high school and had advantage over the others.