I suggest learning at least the basics of assembly, and you'll need to learn about how memory works. You'll need to understand memory very well. It's not too complicated; Basic hacks just modify the memory in another running program, such as a game. Learn how to make your own stand-alone programs. C++ programs typically don't depend on much to run, just the standard template library that comes with the compiler. C# runs on the .NET framework, or mono, but they're still pretty much stand-alone because most windows pc's have .NET. You'll need to learn about some functions in the Windows API to make memory hacks on Windows. If you want to hack 3D games, you'll need to learn the respective graphics library that the game uses. Direct3D is what most games use, so learn about that. Like what functions draw what, and how they do it. What data structures they handle, etc. Honestly, just get a memory scanner and mess with that to learn about memory. Also, read C++ books and pay extra attention to the parts that go over the stack and heap, and pointers and memory. Learning some assembly will help you understand how it all works on an even lower level, so it might be a good idea to do that, though not entirely necessary.
Also: A good memory scanner is Cheat Engine. It comes with a tutorial program that teaches you about memory.