I find it easier to start with C and then advance into C++. I think that if you can do stuff in C, you can definitely find it easier to learn other programming languages, such as C++ or even Java (but not Assembly ). C is a very good basis. Making the first steps into programming with an OO language, IMHO, could be very confusing - and sometimes could even lead to acquiring some very bad programming habits.