neurocomp2003 said:
yeah but to write optimization code its better to learn C rather than depending always on C++ utility.
Besides in game development you see a lot of C/C++ convention blends...people still use malloc/realloc/memset and printf is so much more friendly then cout. I love to overload operators, and inheritance is a beautiful thing but i still rely on the basic C functions. A good book will teach both but a lot of books leave out those functions.
Oh c'mon this is not true. You DO NOT have to learn C to optimize code. Now, your point about the games is bcause most games are written in C but use a C++ like interface because game environments include a lot of 'objects'---creatures, textures, halls, pools, guns, etc.
Someone502 you need to decide what you want to do with your programming knowledge. Many projects (Windows, Linux/BSD kernels, Gnome...) are written in C. Windows GUI has a C++ layer; however, you can still access windows API's using C if you like (C++ is a little easier though IIRC---it's been years since I've done anything on Windows). There are projects out there that are 100% C++ though such as KDE and OpenOffice; moreover, as mentioned above game engine designers usually code in C but engine interfaces are typically OO because of the nature of modern games. If you want to work for Valve or Blizzard then a real good understanding of C++ is a must.
The thing about C++ is you still have full access to C functions so, if you want to learn C++ then just do that. Learn how to be a good OO programmer. Don't cloud your mind with C idioms or procedural programming styles if OO programming is your goal. You can learn C later if you want.
If you want to learn C then pretend C++ doesn't even exist.
A third choice is objective-C. Mostly a Mac OS X language but you can use it on most pretty much any system. gcc can compile objective-c so if you run Linux/unix you won't be left out of all of the fun Mac programmers have (Macs use gcc so it's no surprise that gcc on other systems can compile OC code).
http://www.toodarkpark.org/computers/objc/
Anyway, the best plan is to decide---using whatever arbitrary pro's and con's you need to use---which language is best for you i.e. do some research and then learn that language. Don't bother putzing around with learning intermediate languages because you usually add concepts and procedurtal idioms that you will not or cannot use in the language you wanted to leard to begin with.
As an aside, once you master one language(this takes a long time) then all other languages can be picked up in a matter of minutes or days instead of the weeks or months it will take you to learn the first.
Good luck.