In all honestly, I can only speak for myself here. The learning approach I mentioned earlier was very useful, particularly syntax part. When you have never written a line of code before, syntax is everything, and learning it is one of the first fundamental steps for understanding what you are looking at. And when you switch over to some other language with a familiar syntax, learning that will be also a hell of a lot easier. I probably would have struggled with C++ if it weren't for C.
And yet, you didn't have to learn B in order to learn C. But yes, syntactically understanding one language will usually help in parsing and reading another language, and I have no doubt that your knowledge of C helped you when learning C++.
[quote name='Cornstalks' timestamp='1328671639' post='4910754']
[quote name='AllEightUp' timestamp='1328669158' post='4910744']
First off, learn "C" in the context of "C++".
But... why???
[/quote]
The question is "learn C before C++?", take the baby steps into C++ but learn the core language "FIRST". All the rest of your arguments get the same answer: "because you need to learn the basics first".
[/quote]
I know what the question is, but I don't get what you mean by "learn the core language." What "core language?" C++ is the core language of C++. Not C.
Do so in the context of C++ so you are not learning the wrong things since, as you say, the languages *are* different to a certain degree.
(emphasis mine) No, no, no. Learning C in the context of C++ would be learning all sorts of the wrong things. Nothing (well, okay, there are some things) drives me crazier than seeing someone pretend like C++ is C. Idiomatic C and idiomatic C++ are so massively different it's hard to even say where to start. It's harder to break a bad habit than it is to just make sure you start with the right habit.
The whole pointer thing was just a very common basic missed knowledge that continually comes up, so I suggest learning that specifically if nothing else.
Certainly, and it should be learned, but it can be learned in C++ just as easily as in C, since it's exactly the same in the two languages.
[quote name='Serapth' timestamp='1328710412' post='4910896']
[quote name='Cornstalks' timestamp='1328671639' post='4910754']
[quote name='AllEightUp' timestamp='1328669158' post='4910744']
First off, learn "C" in the context of "C++".
But... why???
[/quote]
The question is "learn C before C++?", take the baby steps into C++ but learn the core language "FIRST". All the rest of your arguments get the same answer: "because you need to learn the basics first". Do so in the context of C++ so you are not learning the wrong things since, as you say, the languages *are* different to a certain degree. The whole pointer thing was just a very common basic missed knowledge that continually comes up, so I suggest learning that specifically if nothing else.
[/quote]
Isn't it kinda like suggesting people learn French before learning English? They share a number of words and use the same alphabet, but are completely different languages. Sure, knowing one will make learning the other a bit easier, but it seems like a downright wasteful use of time.
[/quote]
Pretty much, though I think a better example might be suggesting learning Latin before learning French (seeing as Latin influenced French, kinda like C influenced C++). But they're completely different languages, and if your goal is to learn French, you're better off just learning French. Whether or not you want to learn Latin someday is entirely up to you, but being fluent in French does not require one to start with Latin first.
C++ is not the best language for learning pointers and fiddling with bits - C is better for that.
I'm sorry, but I fail to see why C is better than C++ in this case. I see them as exactly the same, seeing as there is no difference between pointers or bits in C and C++.
C++ is not the best language for learning object-oriented programming- C#/Java is better for that.
I'll agree with that.
C++ is the best language for learning C++.
This is most true.