What You Need to Know
This book assumes that you can program. You are going to be fairly lost if you can't write C code. However, the book uses some C++—enough to make a C coder just a little uneasy. But I will warn you if I'm doing anything weird. Also, there's a decent C++ primer in Appendix D,so check it out if you need a crash course. Basically, C++ is needed only here and there for examples when using DirectX.
Nevertheless, I've decided that I'm going to use C++ a little more on this book because there are so many things in game programming that are object-oriented, and it's sacrilege to force them to be C-like structures. Bottom line—if you can program in C, you should be fine. If you program in C/C++, you shouldn't trip out at all.
Everyone knows that a computer program is nothing more than logic and math. Well, 3D video games put the emphasis on the math part! 3D graphics is all math. Luckily for us, it's cool math! (Yes, math can be cool.) About the only thing you need to know is basic algebra and geometry. The vector and matrix stuff I will teach you along the way. Heck, if you can add, subtract, multiply, and divide, you will be able to understand 90 percent of what's going even though you may not be able to rederive it. As long as you can use the code, that's all the matters. (Well, that and if 7 of 9 is on Voyager tonight, but I think I'm switching to the Vulcan girl from Enterprise.)
That's really all you need to know. Of course, you'd better call all your friends and tell them that they won't see you for about two years, because you're going to be a little busy. But just think of all the movies you can rent when you're done with your training!