Again, it's not the question of whether you can learn just as well by other means, or whether you can benefit from other programming experience before getting into C++. Of course, you can. The question is, what gets you most experience in limited time
, and the answer is, C++.
It's just a difference of syntax for the most part at that level.
It's what looks like just difference in syntax at that level. But as I've stated a couple of times already, it actually goes significantly deeper.
C++ forces you to program a certain way because a compiler expects certain things of you. If you understand why, you are a better programmer for it. But even if not, it still forces you into better practices. Variable declaration makes you more aware of memory usage and makes you think in advance about your algorithm. Way C++ handles arrays makes you consider the way they are stored in memory. Ways you use headers makes you aware of the relationship between compiler and linker, as well as force you to structure your object model more elegantly.
These are just some of the things you learn without even realizing you are learning them with C++. With Python, each of these has to be separately instructed on. There is no other way to get that knowledge to the student. As a result, you end up either wasting more time or not learning some of these things.
If you have all the time in the world, you have all kinds of options. But that's not the case most of the time. Unless you started programming as a kid, you are competing against people who did. You need to catch up and do so fast. Python just doesn't cut it for that.
Oh, and there are ways to test out of introductory classes. Advanced Placement courses are one option. Back when I went to school, these were still C++. Last I've heard they've switched to Java, which isn't the worst substitution by far. Most universities will also give you credit by exam on some low-level courses, but you have to talk to people about it and make sure it's all in order. Finally, you can simply get around these courses by getting approval to take higher level courses without pre-requisites, and substitute the hours from higher level courses for the hours you need. You typically need instructor's permission for that, but I haven't been denied once in 3 different departments.
In fact, this is the sort of thing you should be doing. The very first CS course I took at uni was data structures, and overall, the only freshman/sophomore level classes I was taking were for the English/Liberal Arts requirements that every university seems to have. I know there are a lot of people out there who have no idea what they'll be doing in college, and maybe for them the intro courses make sense, but if you have some idea of what you plan to do, there is no reason not to take care of all that while still in high school.