I spent some years only learning C++ from online websites and YouTube videos. I went over basic stuff like variables, functions, pointers, references, and so on, as well as OOP concepts like classes, operator overloading, inheritance, virtual functions, and so on, and I did some template exercises. But every time I move on to the next topic, I find myself forgetting what I learned before. Then I noticed that I needed to make software that covered all those C++ concepts (I know some programmers may have gone through this and decided to do what I'm going to do now).

I'd like to know if there is such a thing as minimal software designed to cover most of the C++ concepts that work together, and it must be small software; (not writing an operating system). I know this question sounds strange, but I'm going to give it a try and just want to gain some time if someone has done this before. Thank you all; I may be lucky if someone there designed such a thing.

  • $\begingroup$ Are you looking for a project that you can do or a program that you can study? Or something else? $\endgroup$
    – Buffy
    Nov 28, 2022 at 0:47
  • $\begingroup$ @Buffy I'am looking for a lightweight software to train my C++ skills. this software have to cover all c++ core concepts and it was designed for educational purposes. $\endgroup$ Nov 28, 2022 at 1:06
  • 2
    $\begingroup$ Note that this is a bit akin to asking for a sport that lets you practice on all of the balls used in different sports -- projects require different structures, and non-trivial projects can be approached in many different ways. There is no sport that helps you practice with shuttlecocks, bowling balls, tennis rackets, and curling brooms. (I am probably making my point too strongly, but I hope you see what I mean.) $\endgroup$
    – Ben I.
    Nov 28, 2022 at 16:16
  • $\begingroup$ @Ben. I would say it is more like asking for a small star: The core concepts of C++ are huge. A better approach will be to learn 4 other languages first. And before that, learn one language well. $\endgroup$ Feb 12, 2023 at 23:10

2 Answers 2


I've written a C++ (and Fortran2008) textbook for an engineering audience. In addition to teaching the things that I think they should know, it has a good number of programming projects that are designed to exercise their C++ skills. https://theartofhpc.com/isp.html

  • 1
    $\begingroup$ I did read one of your OpenMP lectures. I appreciate that you wrote this answer. Thank you. $\endgroup$ Nov 28, 2022 at 21:41

Why your are struggling

C++ is hard, very hard. C++ is 10 times bigger than C (this was true 10 years ago when C++ was a lot smaller). It is very hard to learn, and very hard to use even after you have learnt it.

When I programmed it C++, I found it faster to first write the program in another language, then translate it manually into C++. (not just compared with my self, this made me faster than others in the team).

It is better to separate learning to program from learning the language. There are examples of teachers teaching one language, then at the end of the course, teaching how to translate into C++ and 2 or 3 other languages. This was done more quickly and more successfully that taking the shorter route and teaching C++ direct.

Therefore, learn all of these concepts in a language that is much much easier to learn. Then if need it learn the language.

Some suggestions

  • Scratch (first language)
  • Berkeley snap (1st or 2nd language, depending)
  • Python (used my many schools, but not perfect) (used by real programmers)
  • Lisp (A very simple language, can learn in a few minutes, so you can focus on learning to program) (use the resource design and interpretation of computer programs — available in book and video form)
  • Rust (Fastest growing language by use. It makes C++ obsolete. It was designed to be fast, but also safe, and easy to use compared to fast low-level languages)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.