Then don't buy out of date books. You don't want to start reading a book that halfway through says something about keeping textures small because most cards don't have more than 32MB of memory. :)
Then you know the book is quite out of date. I highly recommend Game Code Complete 2nd edition. It's not full of hacks that appear to work and it's not full of algorithms that only work on a supercomputer. It is by far the best beginning game programming book I've read. Another very good book for DX is Introduction to 3D Game Programming with DirectX 9.0 by Frank Luna. The website for the book is www.moon-labs.com and he has a second edition coming out which will focus on shaders. All of my terrain code and inspiration for the terrain code has come from that book. Of course I've modified it, but I started with his examples. If you are interested in terrain and outdoor rendering you can go to www.vterrain.org which has links to tons of sites about that very thing.
As well awesome books to have are any of the ShaderX books, Game programming Gems, GPU gems, or any of the gems series of books. Excellent resources.
For game audio I recommend DirectX9 Audio Exposed and while the author of Game Code Complete does not like DirectMusic for sound, I don't see an issue with it since you can get the DirectSound interfaces from the DirectMusic interfaces.
Read as many books as you can and you will get an overall feel for where you fit into the scheme of things. Some things you will like and some you won't. The important thing though is don't waste your time learning stuff that is outdated b/c tech changes so fast. Heck the Frank Luna book is nearly outdated now b/c of the popular use of shaders. His second book is going to address shaders more and more.
Right now I see no need to learn every function of the fixed function pipeline because you can write a 30 line pixel shader to do everything the FFP can do only faster and more precise.
I do recommend getting some 3D math books geared towards 3D games and algos so you can understand the math behind the transforms. This is very important. You don't want to be caught asking yourself...now how do I get object A to shoot at object B w/o understanding the math involved. Most of the math is done for you in D3DX but you should still understand it so you can begin to apply the math to your own situations.
Graphics are simple nowadays and I mean that with every word. With shaders, models, etc, etc, anyone can produce a pretty scene. It takes a programmer to manage all the resources, process the script, perform memory house keeping, etc, etc. In essence it takes a programmer to make the game. Graphics are just the very tip of the iceberg.
If I were starting out from scratch the first books I would buy would be ones about C/C++ and design patterns. This is probably the most important part of code whether it be games or not. Design patterns can help you out a lot or they can be your worst enemy. You should learn C/C++ inside and out and maybe even a bit of assembly to the point of understanding how the stack works and how the CPU executes your code. I didn't say write entire programs in assembly because that would be stupid. But understanding it a bit won't hurt. There is enough information in Randall Hyde's Art of Assembly language programming to give you the tools you need. It is for 16-bit real mode, but moving to 32-bit is not that big of a jump....and it's a hell of a lot easier for the most part.
So I reckon I'm saying don't focus on one aspect but moreso the big picture. Games are a lot more than graphics. There is a lot going on under the hood that you never see.