isnt it really old? do people still use it for real things?
Yes, of course, why not? C++ is state of the art for a lot of applications.
Yes, there are more modern languages, but they also have their own drawbacks. Scripting (JS, python, ...) for example is normally slower than compiled languages, and most script languages don't have strong typing and other compile time error checking that can lead to failures that aren't possible with C++.
A lot of modern languages (for example C# with .NET, Java) use managed code and a virtual machine where the code runs. This of course has some advantages like platform independent applications (but platform independent applications are also possible with C++ without a lot of work) or a little bit easier memory management - but easier memory management doesn't mean that you don't have to plan your memory management what is a big misunderstanding of a lot of people that use such languages. Yes, of course, you don't have to explicit delete your objects, but of course you have to manually empty all references that you don't need anymore because the garbage collector cannot know what you don't need in the future.
Of course in C++ you have to be more carefully when doing your memory management than on C#, Java, Python or something else, but modern C++ also has very good tools for most of the use cases to build good and reliable code.
For example some drawback of applications building based on .NET or Java is that they are slower if code is executed the first time (so the JIT-Compiler has to compile it), and that the garbage collector when activated needs ressources what can be a real problem on time sensitive applications.
Also these systems are not usable for system applications for example kernels, drivers, libraries with direct hardware access and so on.
Most open source software, operating systems and similar is written in C or C++.
At the moment there is no really good alternative for C++, I think the only interesting language for this could be Rust at the moment.
I also think that it is not bad to use C++ for learning. To learn C++ is hard, of course - but with C++ you learn how to manage your memory and to work carefully because C++ revenges on errors that other "modern" languages will ignore.
But when learing programming with C++ it is really important to learn how to code object oriented - because C++ also allows other programming styles that at the first moment seam to be easier, but will lead to more complicated code.
Which language is the best depends on the task - there is no language that is the best for all problems.