Go is an OK language, but that's all it is: OK. It doesn't excel at anything or teach you any new paradigms, really. It was designed to be friendly for junior programmers so that they don't need much training to become productive.
C++ is a bit of a mess due to its long, personality warping, traumatic history. There are many awkward parts to it due to fundamental designs that have since been discovered to be bad (although we only know that through hindsight). So you have things bolted on like smart pointers, which give you reference counted memory management (and that really is the recommended way now, because the old way of purely manual memory management was a disaster).
Rust is an attempt to give the power of C++ without the mess. It's also a lot harder to grok from the start because they front-load you with a lot of required knowledge before you're able to do even the simplest of things.
If you have the ambition, I'd suggest diving into rust. The concepts you learn in there will cross over into many other languages, and you'll have a very strong foundation in ownership, transitional dependencies, and temporality in general (which you can get away with not knowing in most languages, but really should be aware of if you want to avoid some nasty bugs creeping in).