If you are in the Debian or *-buntu or Mint family of distros, check out the build-essentials
A quick search turned up Linux ... Development
that might be helpful.
As I posted earlier, I have taught C++ at the university level. I'll help where I can. To that end I have some questions.
Are you able to program now? In which languages and environments?
If you are not programming now, C and C++ might be a large bite for an
initial sortie into programming. I've taught complete rookies C and C++
but there were a few challenges. (grin) There were challenges teaching
veteran programmers too.
The 'C' language is procedural: do this, then this, ... , etc.
The "++" of 'C++' is a play on the C-language expression: "C=C+1".
In other words, a little more that 'C'. There are two distince families of
"little more" (what cajuns call "lagnaippe") to worry about.
- better and stronger data typing and information hiding
- object oriented features
You can benefit a lot from C++ without getting too involved with "objects".
They bring a lot to the table but not without costs. Thinking objects is
a different approach. For example, you don't update the data file. Instead,
a data file is a persistent representation of some group of objects.
Each object has a method (function or sub-routine) that it uses to store or retrieve itself.
Have you thought about a simple project to use to learn with? I find that a small
personal project is very helpful and effective.
Best of luck,