If you are looking to continue with gaming, C++ is a darn good place to start. You could also check out C# as it is used by Microsoft in XNA (XBox), Second Life, and by Unity on smart phones.
While I would not disagree with anybody about the math and reading you need to do, I think it is better to just roll up your sleeves and program. Read other people's code and then read so that you can understand why they are doing what they are doing.
If you think you know C++ well, the next step is to learn how to use it to make better software. For that, I would start with reading Effective C++.
If you really have a handle on C++ then perhaps this StackOverflow thread will answer your question about game books.
Personally, even if your goal is game programming, I would branch out from that to get a solid grounding as a developer.
Perhaps you should do a little web programming to get a feel for what that is all about. Maybe something like Ruby on Rails.
Alternatively, you could try to write a simple compiler or even an operating system to get a feel for what goes on under the hood and to learn that these too are just programs written by mortals.
Instead of writing your own, you could also get involved in an Open Source project. If I had the time, I would be all over spending time reading the code of Haiku and finding somewhere to contribute. Here is a list of open source game projects that you could consider joining as well.
Your chances of getting a decent job probably go up quite a bit if you know Java or .NET so those are also options. If you decide on .NET, I recommend checking out Mono.