I already have an intermediate understanding of Python and want to learn either C or C++ to a basic-to-intermediate level—not necessarily become an expert. Which language would be the better starting point, and what are the main reasons for choosing one over the other?
4 Answers
Choose based on your goal. C is a good choice for learning low-level programming and core computer concepts, while C++ may be more practical if you specifically want to work with existing applications, game engines, performance-heavy software, or larger modern codebases. Just keep in mind that C++ is considerably broader and more complex than C.
Learning C isn’t required before C++, but it can make the transition smoother. Also, don’t choose C solely because operating-system kernels use it—your own projects and interests matter more. If you want a modern alternative for systems programming, Rust is worth considering later, although it may not be the simplest first language after Python.
Start with C. It has a smaller language core and gives you a strong understanding of fundamentals like memory, pointers, data representation, compilation, and how programs interact with the system. Once those ideas make sense, moving into C++ is much less intimidating because you’ll understand some of the concepts beneath its abstractions.
If you don’t have a specific project in mind, C is probably the better first choice. It helps build a clearer foundation and gives context for why many features and design choices exist in C++. You can then learn the parts of C++ that are useful to you instead of trying to absorb the entire language at once.

I took this route after learning Python and found it worked well. C teaches the memory model without burying you under as many language features, so C++ felt easier to approach afterward.