Never learn C or C++ first. For mainstream programs, learn either Java or C# first - they help you out by making the code about the what you are trying to program rather than the mechanics of how data moves around in the program. Once you understand Java or C# it's easier to move into C and C++.

If you start off in C or C++ you will find it difficult because there are lots of gotchas that they introduce (like pointers) are really unhelpful to battle if you're not entirely sure on your feet.