What you are saying now is why I would do c before cpp. You can learn all of the basics with C, and then move onto C++ seamlessly. I think it is better to pick up a language and learn 90% of it before moving on. This way one can see the different powers and ideas that went behind forming the language in the first place. I learned TI BASIC, BASIC, PASCAL, C, x86 assembly, 8051 assembly, scheme, C++, ADA, then PERL, in that order. When I got to perl, I could really appreciate the speed at which it would execute simple scripts, and sometimes not so simple scripts! It is powerful, easy to use, platform independentish, and actually does what you want it to do without having to make a lot of functions that do the "real work" in a program. (String manipulations, data structure overhead, etc.) Most of the time, I just want a program to work and be done with it. Perl is great for that, but a beginner should learn structure, orginization, and form before they get into the lazy programming style. Learning perl as a first language would make a large programming effort spaghetti code that would never run quite right.