Pickzell wrote:"C++: How to Program: 3RD Edition" by Deitel and Deitel. I hate it, it's a reference book whereas the title says "How to Program."
My experience with the Deitel books has spanned the spectrum of "excellent" to "piss poor" and back the other direction. At university, my first operating system course was taught using (Harvey) Deitel's "Operating Systems, 2nd Edition". This was before the mass capitalism of the "How to" series. I echo your sentiment to that C++ book. My suggestion is to avoid a Deitel book with a stupid anthropomorphized ant on the cover. Now, having said that, I do have a copy of their "C++ for Programmers" from the Developer Series and I think that one is pretty decent (7 of 10). They cover a wide range of basic and advanced topics in C++. My one gripe is that some explainations or examples are not explained well enough for one to truly understand a concept. If I could only have one C++ book this might be it. I'm too far along in my C++ exposure to need a "21 days" book, but not enough to understand the "really advanced shit."
As for programming books in general... I think I have too many. I collect books like they're a dying breed and don't have the time to plow through all of them. My biggest pet peeve is that I'll flip through a book and sense that it might be worth the money, get it home and begin to read it, then realize that (under closer inspection) the author is a true douche nozzle who doesn't know shit about what he's talking about.
I'd hate to pump GyroVorbis's ego
but I've learned more concepts from his videos than most of those "game programming" books. LusikkaMage's intro vids are another example of how an indie developer seems to know more than those "professional to professional" hackjobs out there wasting paper. My quick test to rule out a potential purchase - look in the table of contents for a chapter on pointers. No chapter - no purchase. If an author of a C++ instructional book leaves out pointers, he doesn't know the language and it's a disservice to one's edjukation to not get exposure to those bastardly pains in the ass.
Too many people starting out in programming see games such as WoW, LOTR, DDO, World of Goo, etc. and think, "Hey, I'm gonna do that! I'm gonna have the most kRad Hax0r video game ever! It'll be epic." As we all know, they have no idea what they're saying. They have no clue how hard this is and how much time it takes. One doesn't jump from "Hello World" to a 10,000,000 subscriber MMOG without some serious blood, sweat, and tears. And a budget. And a team. And a publisher. And a distributor.
As much as they don't want to hear it or believe it... "Do Pong first. Then Tetris. Then Donkey Kong. Then a mini-Mario." Walk, don't run. As a lone developer, I have shit to show anyone of my progress. My work on the engine is slow and methodical. I write a ton of test wrappers. I diagram my classes (using doxygen), I document my code (with comments), I make UML my bitch. Of course, I studied software engineering so that was all beat into my head... Eventually, though, I think my Pong will be epic. Then I'll work on my MMOP (massively multi-player online pong).
Oh. This was about books......
C++ for Programmers, Deitel, ISBN-13: 9780137001309
The Mythical Man-Month, Brooks, ISBN-13: 9780201835953
3D Game Engine Design, Eberly, ISBN-13: 9780122290633
Game Physics, Eberly, ISBN-13: 9781558607408
Essential Mathematics for Games and Interactive Applications, Van Verth, ISBN-13: 9780123742971
The last three are hardbound textbooks that go into the heavy shit of theory, linear algebra, and 3D concepts. Best if you've had college calculus first. "Mythical Man-Month" is about software engineering and teams and how they fail. A good read for anyone who thinks collaborative programming is simple or that project management is "da bomb".
-Capt Jack