Will someone tell me what are the main things I should know.
Programming involves a lot of logic. And for games, you'll need quite a bit of maths,
I think the best way to learn programming is to start with something trivial and build upon it. Doing is more important than reading about programming in the beginning. This is what I've advised people in the past:
1. print something on screen.
2. create a loop which prints something on screen 10 times.
3. set a variable and print it on screen ten times.
4. change the variable each time in the loop (eg, experiment with N=N+1; or N++ or N=N*2; or whatever)
5. print out a 7 times table.
6. Make a program that tests if a number is divisible by 13.
7. Make a program that finds prime numbers.
8. Make a program that does numerical integration of a mathematical function (find the area under a curve)
9. Find how to plot pixels on the screen.
10. Draw some parallel lines, an array of boxes or concentric circles using loops.
11. Experiment with wireframe graphics. Make a rotating cube.
12. Read from the keyboard and mouse to allow the user to change how the cube is rotated.