Start by learning the basic concepts of programming. The initial language you begin to learn with doesn't matter, however, you should choose one that you will use in the future.
Start by learning about the compiler, linker, and preprocessor. Then you can begin to learn about data types and their sizes in memory, variables, functions, pointers (C++), references, flow control (loops, if's), arrays, sorting algorithms and the like, bitwise operations, classes, member functions, data members, constructors, destructors, polymorphism, function overloading, operator overloading, manipulating data on the stack and heap, etc... The list could go on forever. Just find a book that seems appropriate for your reading level. Programming for networks is a whole different field and you will have to read up on the specifics of that on your own.
Mathematically, you should understand the concepts of intermediate algebra, trigonometry (3D programming), general physics, and calculus.
After you become very comfortable with object oriented design, you can begin working with APIs such as DirectX or OpenGL.
It is going to take you well over a year to even get to the point that you can create a basic 2D game (not including the time it would take to make that 2D game), let alone a 3D mmorpg. My advice to you..... Go to college like the rest of us, but while you are working towards that, keep on teaching yourself whatever you can while keeping your expectations realistic..... And those expectations will become more realistic as you learn exactly what it will take to do what you want to.
Edit: DO NOT learn C before C++. C is a procedural language. C++ is an object-oriented language. If you start with C, you will learn habits that you will have to unlearn when you move on to C++. There are no colleges that I know of that even teach C now days.