"C++ was developed in the 1980s, based on the C language, but with a bottom-up approach. C++ uses object-oriented programming (OOP) concepts like classes, objects, and polymorphism. Data is considered more important than process. It also has useful OOP features like data hiding for security.
However, C++ is not a true OOP language, because it is quite dependent on the procedural fundamentals of C. Like C, it compiles into binary and is executed natively. Being powerful and fast, it is chosen for intensive gaming applications. However, running natively means a single error could cause a total computer crash and data loss.
C# is the latest toolset, based on C++ code. Developed by Microsoft towards the turn of the 21st century, it is a .Net language, and in some ways, similar to Java. This high-level language is first compiled to a middle language, and then into direct binary. Thus, you can consider this code to be interpreted in run time. C# is compatible with most operating systems, and programming is simplified thanks to built-in functions. Note that this may be a disadvantage if you are a serious programmer, because the abstractness takes away some degree of control from you.
C# is slower than C or C++ because it runs on a virtual machine rather than a native one. Programming errors may destroy the virtual machine, but your computer remains unharmed. The speed difference goes unnoticed on the super-fast computers you have today."
I started with C++ and HGE (Haaf's game engine) but I recommend C++ only if you enjoy pain as it is very hard to understand at the beginning but in the long run C++ is better than Java or C#, in my opinion.