That's actually a hard question to answer, as there's no particular why, it's more that I think being able to code at this point is essentially like being able to read back when literacy was still not widespread, it's something that will become more and more important and if you don't understand it you're doing a disservice to yourself. As for why C++ from what I understand it's the most versatile, so if I don't have an exact goal it just makes sense to go for a more flexible option as the various fields I looked up seem to all mention it as a good option while other languages might be widely applicable they aren't as universal.
Math is something I like, it's partially why I could get the degree that I did as I was shit at the subject but had enough of a fundamental understanding of math to stumble my way through. I would be interested in looking into machine learning and AI, but that's further down the line. I'd also say not having exact reasons is a big part of the problem, as I took Java back in college as an optional set of courses and liked it but don't really use it beyond the rare occasion and html I haven't used at all with the rare exception of inspecting code on websites for minor bug fixes when bored. That's why I want to find a language I can just find more application for and really grind at, as so far it's been a sort of learn the basics and then meander with low improvement unless I'm actually working on something where I need to apply those skills and that's not particularly common these days.
If you enjoy math I'd suggest learning Haskell, or some other functional language like Clojure. The abstractions Haskell provides are a ton of fun if you are someone who enjoys thinking abstractly and learning abstract concepts. I know for me thinking in terms of pure functions comes much more naturally than thinking about state.
For example, a basic Fibonacci sequence, the "hello world" of Haskell.
Code:
fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Read in plain english, the definition is "the first two numbers of the Fibonacci sequence are 0 and 1. Every other number in the Fibonacci sequence is the sum of the precious two". It's comically simple.
Also don't let retards tell you Haskell can't be fast. The GHC is called state-of-the-art for a reason, and there's a reason a bunch of compilers are written in Haskell, it's pretty fucking fast. Just learn when to use eager evaluation and make sure recursive functions are tail recursive. It gets compiled down to be GOTOs and you won't get a stack overflow (like you will with deep recursion in most languages).
There are other great functional language too, Clojure is great and it's on the JVM. F# is on .NET and is similar to Haskell. The metalanguage (ML) family of languages are cool too but getting old.
Rust takes pretty heavy inspiration from the ML languages and Haskell. It's a great choice if you want to have a greater degree of control than Haskell over memory (functional languages generally use more memory), while still using some of the great abstractions Haskell has like typeclasses (Rust's Traits), and Rust has iterators/closures for writing in a functionalish style at times. Rust is great for large systems and for making games.
If you want to go into machine learning stuff basically your only choice is Python. There are ways to make Python a not totally awful language to use though. Basically my Python style has become pretty reliant on dataclasses and protocols and interfaces and trying to avoid OOP like the plague.
If you go the ML route, there are a bunch of directions that can go. Numpy and Pandas are pretty mandatory to learn. I mostly do NLP stuff, where I frequently use modules like Spacy, Gensim and NLTK. For "Deep Learning" Tensorflow is great (Keras is a great place to start), I don't have much experience with Pytorch. Scikit-learn has a lot of your basic ML stuff that is very valuable to have in your daily toolbox.
Oh and uh I guess if you want to make websites or some frontend shit you can subject yourself to JavaScript and the constantly changing web frameworks. Idk that sounds like literal hell so I don't do it much.