The examples are hyperbolic I agree to that, but the gestalt is exactly the same. I am speaking only to the line "learning the hard stuff first makes every language after that so much easier"
or your later comment of
"
starting with the more complicated language is the easiest method".
This is simply not true. It is all a matter of perception, and frankly self deception. There is nothing so specifically special about programming, compared to so many other skills you learn in life, although people really like to believe there is.
Here is the reality of it ( to use your example of ), going from C++ to Java *seems* easier, as you have already learned the majority of the difficult aspects in what is a traditionally more difficult language. That you had a hard time learning didn't magically make this process quicker, in fact quite the opposite. Again, I am not making the claim that C++ is harder than Java, that is subjective/personal and subject for a different thread that has been argued ad nauseum.
However, if your personal experiences are with X, which was a difficult subject to master, then you learn Y with much greater ease, you are going to conclude that you succeeded in learning Y faster because of the lack of difficulty you encountered while learning X. This is where the fallacy comes in. The first thing you learn, on almost any subject, is almost always going to be the most difficult part, while each successive topic is going to be progressively easier to learn, even if the domain itself is considered more difficult. This is why it takes months to years to master an initial programming langauge, while often takes weeks or even days to master a new language. Intentionally looking to start with the difficult bits is doing you no favor!
Again, I am not getting into the nitty gritty langauge debate over if C ( or C++, Java, or whatever else ) is or is not a hard language to learn with, that is not the crux of this argument. Learning in reverse order of (personal) difficultly, is an exceptionally bad way to go about learning, as is evidenced by the way pretty much ever single subject in every single topic is currently taught.
You are right, all people learn differently. This is why I am not getting into the whole conversation of if C is or isnt difficult to learn, I have my opinion on that topc, and a great deal of it is subjective. ( Ironically too, my stated objectopn to learning C first has nothing to do with difficulty, as is clear if you scroll up ). However, until you have learned a subject yourself you really can't make a judgement call on the difficulty of learning something, so we make societal judgements on relative difficulty. They may not apply to everyone, but they do apply to the majority.
Simply put, if you are trying to learn to program and are finding say C++ exceptionally difficult, and you tried say Python and found the process much easier, continuing to learn in C++ "because it will make learning in the future easier", is overwhelmingly WRONG.
/EDIT: Editor is borked, no matter what I try, I cant reformat that one extra newline at the top after the quote.
Edited by Serapth, 25 May 2012 - 01:35 PM.