About a year ago, I started learning C++ through Sam's Teach Yourself C++ in 21 Days. Now I'm about half way through the book (hehe, I took a year to cover ten days), and I want to start something new. While this book explains C++ concepts pretty well, it lacks bigger example applications that use those features. For example, I learned operator overloading and I know how to use it effectively, but I have no idea as to where this feature would be useful in a real application. I'll still finish reading this book, but I want something new to learn at the same time to keep me interested.
Also, this is my first year in Computer Science in college, and I have to admit that C++ programming class is ridiculously easy for me (and thus boring). We'll not be covering object-oriented programming for another two semesters! Also, we won't be even learning Win32 GUIs, instead we'll learn Visual Basic...
I started to learn Win32 programming recently by myself though, through this site, and I love it, but I'd prefer a book over tutorials.
I don't know what book to choose though. Ultimately, I want to learn 3D DirectX game programming, but I want solid foundations in C++ and Win32 programming first. Also, I want to start on 2D DirectX before moving on to 3D. I think Beginning C++ Game Programming would be too easy for me (I already wrote a console Tic Tac Toe game by myself). I'm considering Tricks of the Windows Game Programming Gurus, or maybe Introduction to 3D Game Programming with DirectX 9.0, but like I said, I'd prefer a 2D book to start with. Or I could focus on Win32 first, maybe Programming Windows.
So my question is: should I buy another C++ (or STL) book and keep writing more complex console applications, or a Win32 book, or a basic 2D DirectX game programming book? And which book would you recommend accordingly? My preference would be a book that covers Win32 and 2D DirectX game programming. Also, the books should be in C++, I don't really know C.