There is no need to learn C before learning C++.
They are different languages. It is a common misconception that C++ is in some way dependent on C and not a fully specified language on its own.
Just because C++ shares a lot of the same syntax and a lot of the same semantics, does not mean you need to learn C first.
If you learn C++ you will eventually learn most of C with some differences between the languages that you will learn over time. In fact its a very hard thing to write proper C++ because intermediate C++ programmers tend to write C/C++.That is true whether or not you started with C or started with C++.
If you know C first, then that is good plus to learning C++. You will start with knowing a chunk of the language. If you do not know C first then there is no point focusing on a different language. There are plenty of good books and tutorials available that start you from knowing nothing and will cover anything you would learn from C which applies to C++ as well.
Please see further reasoning in this answer.
Answer from Brian R. Bondy on Stack OverflowI have done quite a bit of programming in Python and Java, and a bit of Common Lisp. I'm in my sophomore year of undergrad, and I'd like to learn a more low-level language.
You (probably) don't need to learn C
Do I need to learn C language?
programming languages - I don't know C. And why should I learn it? - Software Engineering Stack Exchange
Should I learn C before trying to learn C++? (Already have some Python knowledge)
It all boils down to what you are willing to create using them,
at the end of the day, they are all tools, no one better than the other at all times, it depends on you to choose the right tool for the right job.
Python is an outstanding language for a beginner, providing libraries from front end development like Django to back end development.
C is and will always be the best language, since I started out with it but now I have come to realize that it has it's shortcomings too. C is better suited for low level programming and kernel development where speed is the key.
If you are willing to use C++ in the future, then start out with it, and not with C, even though they might sound same, they are completely different in the way they perform things,
C++ is a good overall language but it too has it's caveats.
Lastly, remember to learn to be a better programmer who can think in any situation and get the solution, the syntax is just there to express those solutions.
More on reddit.comVideos
There is no need to learn C before learning C++.
They are different languages. It is a common misconception that C++ is in some way dependent on C and not a fully specified language on its own.
Just because C++ shares a lot of the same syntax and a lot of the same semantics, does not mean you need to learn C first.
If you learn C++ you will eventually learn most of C with some differences between the languages that you will learn over time. In fact its a very hard thing to write proper C++ because intermediate C++ programmers tend to write C/C++.That is true whether or not you started with C or started with C++.
If you know C first, then that is good plus to learning C++. You will start with knowing a chunk of the language. If you do not know C first then there is no point focusing on a different language. There are plenty of good books and tutorials available that start you from knowing nothing and will cover anything you would learn from C which applies to C++ as well.
Please see further reasoning in this answer.
I love this question - it's like asking "what should I learn first, snowboarding or skiing"? I think it depends if you want to snowboard or to ski. If you want to do both, you have to learn both.
In both sports, you slide down a hill on snow using devices that are sufficiently similar to provoke this question. However, they are also sufficiently different so that learning one does not help you much with the other. Same thing with C and C++. While they appear to be languages sufficiently similar in syntax, the mind set that you need for writing OO code vs procedural code is sufficiently different so that you pretty much have to start from the beginning, whatever language you learn second.
The advantage to knowing C is that you have a very good idea of how a computer works. Not just how your programming model works, but how memory's laid out, and suchlike.
The only level below C is the assembly spoken by a particular CPU.
(I'd add that knowing C also lets you appreciate how much less work you have to do in a higher level language. And hopefully an appreciation of the cost involved in working in that higher level language.)
I don't think any of the answers here are really what the OP was looking for, so I'm going to throw in my own opinion.
Look, I'm an unapologetic C snob. My attitude is that if you don't know C, then to some extent you don't really know what you're doing as a programmer. So, I think I'm the sort of "biased" person you're talking about here.
However, in practice, whether or not you really know what you're doing as a programmer doesn't necessarily prevent you from developing really awesome, useful software using high-level tools. I mean, the creator of Stack Overflow, Jeff Atwood, apparently doesn't even know C, and yet I would say Stack Overflow is a pretty damn good web application.
Whether or not you decide to learn C (or C++, or assembly) depends on what type of programmer you want to be. If you just want to develop cool web apps or business apps, that's fine - no real need to learn C. But if you want to really excel at what you do - if you want to work on really cool projects that push the state of the art, then you really need to take yourself seriously enough as a programmer to really understand how computers work. Since C is essentially the OS lingua franca, as well as the language that powers just about everything else (from the Linux kernel to most Java VMs, to the Python and Ruby interpreters, SQL databases, web servers, and just about every device driver), an intimate understanding of the language goes a long way.
Not to mention that knowing C (or C++) opens up a huge opportunity for contributing to large open-source projects that impact millions (or hundreds of millions) of people. Want to work on improving the Python interpreter, or the Chromium web browser? Well, you need to know C for the first and C++ for the latter.
That's why comparing C to dead natural languages like Latin or outdated technologies like the horse and carriage is completely wrong. A large portion of our 21st century software infrastructure is powered by C code, which is why C remains as relevant today as ever.
So, whether or not you should learn C really depends on what you want out of your career as a programmer.
The title tells all. I'm comfortable enough in Python to complete working scripts even though I'm still learning something new every day, and I understand, for example, what "hashable" and "subscribable" mean. So would it be a good idea to learn C before tackling learning C++?
It all boils down to what you are willing to create using them,
at the end of the day, they are all tools, no one better than the other at all times, it depends on you to choose the right tool for the right job.
Python is an outstanding language for a beginner, providing libraries from front end development like Django to back end development.
C is and will always be the best language, since I started out with it but now I have come to realize that it has it's shortcomings too. C is better suited for low level programming and kernel development where speed is the key.
If you are willing to use C++ in the future, then start out with it, and not with C, even though they might sound same, they are completely different in the way they perform things,
C++ is a good overall language but it too has it's caveats.
Lastly, remember to learn to be a better programmer who can think in any situation and get the solution, the syntax is just there to express those solutions.
Simple answer. No. C and C++ are different enough that learning C won't help you too much with C++.
C++ is going to be much easier to learn (albeit still very difficult).