Originally posted by: gopunk
C++ is such a behemoth language with myriad issues that I'd never recommend it to anyone learning programming from scratch. Arguably, Python, Java and C# are more sane choices. If anyone is wondering, I actually like C/C++; I just don't have the patience & dedication for those languages anymore when Java suffices most of the time.
i completely disagree, all 3 of those languages are high level, which is NOT what people should start out with. should kids learn to add and subtract, or should they learn how to use a calculator first? i choose the former. it may be easier, but i think it's important to get the nitty gritty down before you take any shortcuts.
yes, i know C and C++ are shortcuts too, but you know what i mean.
You can disagree, but most of the programming world doesn't follow your reasoning. At least where I learned CS, let's call it the MIT/Stanford/Berkeley school of thought, you start from as high a level as possible (*cough* Scheme) and eventually work your way down to electrons. But ignoring university academia for a second and concentrating on programming alone, nobody teaches ASM to beginning programmers anymore. You work from the highest level of abstraction to lower levels to hide complexity that the student does not currently need to know. If you're right, then basically computer programming education is broken worldwide.
Your analogy doesn't really map well to layers of abstraction in computing. The reason higher-level languages are usually chosen early is they are easier to grasp, covering the fundamentals. While core C isn't so bad, dig a little deeper and some students get mired. C++ isn't nearly as easily defended; while it has been a commercial success, everybody knows it's no paragon of programming languages.
Anyhow, my point wasn't so much that you should learn Python before C. But rather of all the languages mentioned, C++ has to be near the bottom of my list for teaching beginners. I'm a weanie and don't write any C++ code these days, but like I said, I used to like the language a lot so I have some clue what I'm talking about.

While you could teach a limited subset of C++ to beginners, you still lack an interactive interpreter and strong class libraries to make learning easier. Yeah standard C++ now has a good library (nowhere nearly as complete as Java) but first you'd have to teach templates.