It's perfectly fine to start out with C++. What you do need to learn beforehand is how to think in code. Or rather: know what you want to do, break it down into smaller processes, break it down, break it down, break it down, and write it all in a language you speak.
For example:
I want to sort a row of numbers.
How?
I want to look at the numbers, and I want to compare them with each other.
How?
Well I need to save the numbers somewhere, and then compare... and move them.
How do I save numbers?
Do an array of numbers, where each position has a number.
How do I compare?
Check position 1 with position 2... or position x with position x+1. I probably need to loop it to check other pairs of positions.
How do I move?
Save the number in position x in a temporary variable, replace position x with position x+1, and move the temporary variable to position x+1.
So what would this be?
Code:
save array with numbers
loop
check pos x & x+1
if pos x is larger than pos x+1
swap x and x+1 (x to temp, x+1 to x, temp to x+1)
go to next set in the loop
This would be "pseudo code", it can look a lot like real code, and it can look more like text.
But now it's fairly easy to look up stuff online in ANY progarmming language to do this think. You have to look up how to do a loop in C++, a loop in Java, a loop in C#... how to save an array of numbers, how to check positions in arrays... the language doesn't matter.
You'll learn this WHILE you're learning a programming language though, but do have this in mind and it'll be a lot easier to contine learning other languages later.