To add on to what the takashiakir said.
Start with a programming language, specifically C ++. There are plenty of forums around the internet (I wont link them here) where you can learn. You want to start small, build a calculator, make a simple game like minesweeper. You need to understand how systems work and how coding class games work, Specifically entities and the math required for interaction with the game world.
Next you want to learn how to reverse engineer. CE, IDA, any debugger really will help. You not only need to understand how the code operates but you need to know how to reverse engineer it so you can manipulate it. This step will take a very long time. I highly recommend learning to reverse engineer simple games, change the timer, a simple health editor value, find a function you know exists.
If you want to make a cheater in CSGO with ESP / aimbot The Following things you'll need to learn:
-hooking entities
-d3d drawing functions to draw boxes
-basic math (trigonometry for the aim angles)