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 Overflow
🌐
Zero to Devops
zero2devops.com › blog › is-it-worth-learning-some-c
Is It Worth Learning C? — Zero to Devops
November 9, 2020 - To get the big reveal out of the ... programming is a great idea! However if someone is looking to take the first step on their path to learn coding I would not recommend they start with C....
🌐
Reddit
reddit.com › r/learnprogramming › should i learn c before trying to learn c++? (already have some python knowledge)
r/learnprogramming on Reddit: Should I learn C before trying to learn C++? (Already have some Python knowledge)
February 24, 2018 -

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++?

Top answer
1 of 14
145

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.

2 of 14
90

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.

🌐
Quora
quora.com › Between-C-and-C-which-one-is-better-to-learn-first-and-why-so
Between C and C++, which one is better to learn first and why so? - Quora
Answer (1 of 2): First off, don’t learn C first if your intention is to learn C++. If you learn C they will teach you about pointers and C style arrays and null terminated char arrays as strings and how an array usually decays to a pointer to it’s first element and how pointers to arrays ...
🌐
Udacity
udacity.com › blog › 2021 › 05 › should-i-learn-c-or-cpp.html
Should I Learn C or C++? | Udacity
September 27, 2022 - This makes the coding structure much more organized and easier to follow. Compared to C++, C is the simpler and ultimately faster programming language. C is procedural and does not support classes and objects, meaning it has less functionality ...
🌐
Medium
imaaduddinn.medium.com › c-vs-c-which-one-should-you-learn-3a0bbcddbe7b
C vs C++ | Which One Should You Learn? | by Imaad Uddin | Medium
May 1, 2024 - If you want to learn high-level programming, object-oriented programming, and build complex software systems, C++ is the best choice. If you are a beginner, you should start with C and then move on to C++. Learning C first will provide you with ...
🌐
Quora
quora.com › Which-one-should-I-learn-first-C-or-C++
Which one should I learn first: C or C++? - Quora
C is very close to the machine, and learning C is the basics of understanding how the machine actually works. If you do not learn C, likely you do not really know how the cpu works and will never be a good programmer.
Find elsewhere
🌐
Hacker News
news.ycombinator.com › item
You (probably) don't need to learn C | Hacker News
January 31, 2024 - The problem with those takes is that it always come from the people that already know it and had a lot of baggage that distorts it’s view that no one else should learn · Due to several reasons I always worked with high level languages and last year I started to learn C and C++ and how beautiful ...
🌐
Ned Batchelder
nedbatchelder.com › blog › 202401 › you_probably_dont_need_to_learn_c
You (probably) don’t need to learn C | Ned Batchelder
January 24, 2024 - I’m all for learning C if it will be useful for the job at hand, but you can write lots of great software without knowing C. A few people repeated the idea that C teaches you how code “really” executes. But C is an abstract model of a computer, and modern CPUs do all kinds of things that C doesn’t show you or explain.
🌐
freeCodeCamp
forum.freecodecamp.org › career advice
Do I need to learn C language? - Career Advice - The freeCodeCamp Forum
December 9, 2020 - Hey FCC campers, Well the C language is the father of programming, am wondering if i need to learn C even if am not gonna use it ! If yes why ? If not why ?
🌐
Sololearn
sololearn.com › en › Discuss › 2112612 › i-want-to-learn-c-should-i-learn-c-before-for-this
I want to learn C++, should i learn C before, for this?
December 26, 2019 - Sololearn is the world's largest community of people learning to code. With over 25 programming courses, choose from thousands of topics to learn how to code, brush up your programming knowledge, upskill your technical ability, or stay informed about the latest trends.
Top answer
1 of 15
110

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.)

2 of 15
70

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.

🌐
SSi People
ssipeople.com › 7-reasons-you-need-to-learn-c-before-c
7 Reasons You Need to Learn C Before C++
May 14, 2020 - Here are seven reasons why you should learn C before learning C++: C++ is typically regarded as a “superset” of C (in other words, it incorporates and builds on the basic concepts of C). C uses a more foundational and easily-graspable grammar. C contains fewer keywords than C++. C only supports procedural programming, while C++ supports both procedural programming and object-oriented programming.
🌐
Quora
cstdspace.quora.com › Is-it-important-to-master-C-before-learning-C
Is it important to master C before learning C++? - C Programmers - Quora
Answer (1 of 9): No in my opinion it can be also a problem. C is a very powerfull language. You can do a lot of things . But many of them aren’t the “C++ correct way to do the same thing”. Simple example. C11 has generic programming through macro ( _generic) .
🌐
Sololearn
sololearn.com › en › Discuss › 2911151 › which-programming-language-should-i-learn-first-between-c-c-and-c
Which programming language should I learn first between C,C# and C++?? | Sololearn: Learn to code for FREE!
October 25, 2021 - I think you first learn C then you go with either C++ or C# if you want to do cp then go for c++ and c++ is very fast language as compare to c and c# and C++ has huge library so you have not to write lone code if you implement some data structure and algorithm and ds and algorithm is also a plus factor for learn c++ otherwise it's your call.
🌐
Quora
quora.com › Should-I-learn-C-and-leave-C-or-learn-C-first-before-going-on-to-C
Should I learn C++ and leave C or learn C first before going on to C++? - Quora
Learning these complicated concepts ... the cart before the horse. Hence one should first learn all the language elements very thoroughly using C language before migrating to C++, C# or Java....
🌐
LinkedIn
linkedin.com › pulse › why-you-should-learn-c-your-first-language-saroj-kumar-sharma
Why You Should Learn C As Your First Language
March 26, 2023 - C, on the other hand, offers a simpler and more efficient way to interact with hardware. For those interested in building electronic products or using microcontrollers to automate tasks, learning C programming language is a valuable skill to have.
🌐
Hacker News
news.ycombinator.com › item
Ask HN: Should I learn C/C++ or Rust as my first systems programming language? | Hacker News
October 30, 2020 - To me, it seems Rust is so much better than C/C++ in many ways: lots of Python-like abstractions, rigid compile time safety checks... A modern language designed from scratch without a hodge podge of welded on features · Rust could also turn into something big, by the looks of it, in the next ...
🌐
Linus Tech Tips
linustechtips.com › software › programming
Should I learn C and C++ - Programming - Linus Tech Tips
August 9, 2022 - I don't particularly want to learn these languages but a YouTube channel I follow that does coding tutorials has done tutorials for them and I feel like it wouldn't be a bad idea just learning them anyways. What do you think? Is this a waste of time or actually sensible?