Disclaimer: I judge these things not from a game developer's perspective. Writing games is only a part of the things that interest me, and I currently make my income in a large corporate environment, so keep this in mind when you read further.
Basically I agree with what SculptureOfSoul said. C++ only excels at being the worst of all available options and has also already entered the COBOL-phase of languages. Unless you want to write that 'next-generation-killer-3D-engine-that-finishes-off-id-software-and-unreal', (which could be done in the even faster C or Pascal languages, by the way), I can hardly see any use for C++ for --new-- projects.
If you want to learn something useful about developing for Windows, buy Charles Petzold's "Programming Windows". The earlier editions use the C language and focus on the Windows API only (which is a good thing). The most recent version of the book is based upon C#, which quickly has become --the-- language of choice for Windows development.
If I were still interested in Windows, I'd code exclusively in C#.NET and wouldn't bother with anything else. That language and framework are the future for Windows and the industry around it, and that pretty much ends the discussion when we are talking about that platform only.
But since I do not believe that in five to ten years from now Windows and Microsoft will still be the big boys on the block, I'm investing my time elsewhere. So-called scripting languages like Python have only just begun to gain momentum and they are the future of application/software development. Nobody except for maybe some geeks is interested in low-level nitty-gritty stuff; productivity counts and cost reduction and the shortest way from inception to shipping. Languages like C and C++ don't give you that, and Java and C# also fall short in that category - although they are much more developer friendly, they're also too verbose and get in your way too quickly compared to Python or Ruby.
Anyway. Enough language bashing for today. And if you really think that C++ is a good language to learn concepts, remember what Alan Kay said.
Basically I agree with what SculptureOfSoul said. C++ only excels at being the worst of all available options and has also already entered the COBOL-phase of languages. Unless you want to write that 'next-generation-killer-3D-engine-that-finishes-off-id-software-and-unreal', (which could be done in the even faster C or Pascal languages, by the way), I can hardly see any use for C++ for --new-- projects.
If you want to learn something useful about developing for Windows, buy Charles Petzold's "Programming Windows". The earlier editions use the C language and focus on the Windows API only (which is a good thing). The most recent version of the book is based upon C#, which quickly has become --the-- language of choice for Windows development.
If I were still interested in Windows, I'd code exclusively in C#.NET and wouldn't bother with anything else. That language and framework are the future for Windows and the industry around it, and that pretty much ends the discussion when we are talking about that platform only.
But since I do not believe that in five to ten years from now Windows and Microsoft will still be the big boys on the block, I'm investing my time elsewhere. So-called scripting languages like Python have only just begun to gain momentum and they are the future of application/software development. Nobody except for maybe some geeks is interested in low-level nitty-gritty stuff; productivity counts and cost reduction and the shortest way from inception to shipping. Languages like C and C++ don't give you that, and Java and C# also fall short in that category - although they are much more developer friendly, they're also too verbose and get in your way too quickly compared to Python or Ruby.
Anyway. Enough language bashing for today. And if you really think that C++ is a good language to learn concepts, remember what Alan Kay said.