This book purports to be for the programmer who wants to write a game. But actually the author sells himself short! The principles that he describes here as best practices for developing games, can be applied far more broadly. To any program that has a GUI for real time human interaction.
For example, he tells how automated build scripts are vital and how milestone builds and multiple projects are useful. But all this of course applies equally well to any code project with several programmers involved. The chapters on debugging/testing are also quite general in scope, and useful in explaining that this is a discipline, in and of itself.
The book specialises to code examples in C++ for the various Microsoft OSs. In no small part because most desktops are running these operating systems, and if you are in a commercial effort, you go where most of your customers are. The choice of C++ is good and realistic. For games with a quick response time, compiled code is usually faster than interpreted. But then why not C, you might ask? Because C is procedural and scales badly when the source code gets over 100 000 lines. C++ is a much better choice.
The coverage of 3D graphics is only the bare minimum, as the author points out. For any application using 3D, you need at least another book, dedicated purely to the algorithms in that field, to be used in tandem with this book.