Here's a good place to learn C if you're looking to learn things really thoroughly (which is important if you want to really get into it, but not so much if you're only planning on taking a passive interest in programming is a side hobby): http://www.computerscienceforeveryone.com/Course_1/
Of course, that's teaching C and not C++, but again if you're looking to really get into C++, you'll probably want to learn the ins and out of C first, since C++ is very directly based on C syntax and language quirks.
that's teaching C and not C++, but again if you're looking to really get into C++, you'll probably want to learn the ins and out of C first, since C++ is very directly based on C syntax and language quirks.
C++ is a superset (though not a strict one) of C, however learning C is almost certainly a poor way to learn C++, partly for that very reason.
C and C++ are different languages. C++ is not dependent in some way on C, and is in fact a fully specified language of it's own. C++ does share much of the same syntax and semantics, but this does not mean you need to learn C first anymore than you should learn C# before you learn VB.NET.
In learning C++ you will learn the relevant parts that are in the C language. If you know C that gives you a headstart, but if you don't know C there is no reason to focus on a different language.
I correct my previous wording - "it's good to learn the C part of C++ before trying to incorporate most of the more advanced facets of the language." I'm sorry you felt the need to write an entire post based on a linguistic nitpick, but it is what it is and I'm sure I've done equally silly things without realizing it.
I correct my previous wording - "it's good to learn the C part of C++ before trying to incorporate most of the more advanced facets of the language."
There is no "C part" of C++. That is what a Strict superset means. C++ has cosntructs that are source-compatible with many parts of C, but it has no "C part" anymore than Ruby, as a strict superset of Python to the same degree, has a "Python part".
There is zero reason to Learn C first because any reasonable book or tutorial teaching C++ is going to cover the basics needed. C++ tutorials don't instantly assume you know C.
If a persons Goal is to learn C++, they should Learn C++. Suggesting people learn C because C++ is a strict superset of C++ is the same as suggesting people learn Python before they learn Ruby because Ruby is a strict superset of Python. The difference is that nobody does the latter almost entirely because the names don't present the confusing visage of being different versions of the same language. C's syntax and semantics are a subset of C++'s, but programming in C is not a subset of programming in C++. For example:
int main()
{
double sq2 = sqrt(2);
int s = sizeof('a');
}
This is C. it is not, however, C++. In fact, it doesn't even compile in C++.
I'm sorry you felt the need to write an entire post based on a linguistic nitpick
It was not a linguistic nitpick. You posted a link to a series of articles/videos that teach C.
They don't want to Learn C. They want to learn C++. Would you link Python Tutorials if they were asking how to learn Ruby?
That all being said, knowing C and some of its (albeit awful) intricacies is good to know just on the basis of programming in general (memory management, ADTs with pointers, etc). You don't need to know it for C++, but it doesn't hurt and can be helpful having that background.
http://www.computerscienceforeveryone.com/Course_1/
Of course, that's teaching C and not C++, but again if you're looking to really get into C++, you'll probably want to learn the ins and out of C first, since C++ is very directly based on C syntax and language quirks.
C++ is a superset (though not a strict one) of C, however learning C is almost certainly a poor way to learn C++, partly for that very reason.
C and C++ are different languages. C++ is not dependent in some way on C, and is in fact a fully specified language of it's own. C++ does share much of the same syntax and semantics, but this does not mean you need to learn C first anymore than you should learn C# before you learn VB.NET.
In learning C++ you will learn the relevant parts that are in the C language. If you know C that gives you a headstart, but if you don't know C there is no reason to focus on a different language.
There is no "C part" of C++. That is what a Strict superset means. C++ has cosntructs that are source-compatible with many parts of C, but it has no "C part" anymore than Ruby, as a strict superset of Python to the same degree, has a "Python part".
There is zero reason to Learn C first because any reasonable book or tutorial teaching C++ is going to cover the basics needed. C++ tutorials don't instantly assume you know C.
If a persons Goal is to learn C++, they should Learn C++. Suggesting people learn C because C++ is a strict superset of C++ is the same as suggesting people learn Python before they learn Ruby because Ruby is a strict superset of Python. The difference is that nobody does the latter almost entirely because the names don't present the confusing visage of being different versions of the same language. C's syntax and semantics are a subset of C++'s, but programming in C is not a subset of programming in C++. For example:
This is C. it is not, however, C++. In fact, it doesn't even compile in C++.
It was not a linguistic nitpick. You posted a link to a series of articles/videos that teach C.
They don't want to Learn C. They want to learn C++. Would you link Python Tutorials if they were asking how to learn Ruby?