there are so many job listings for c++ in big tech, but it feels like it's hard to gain proper c++ experience without already being on those projects. it's sweet that those c++ systems are probably critical and actually do cool things, but if I wanted to be a c++ guy there, it's hard to get the experience without already being there I feel. c++ actually doesn't look too bad with RAII?
but maybe it's a dying breed anyway, so I should just learn rust/go/zig/etc
C++ is still the de facto standard language for new high-performance, high-scale software. It isn’t going anywhere.
Learning Rust is probably onone of the more accessible ways to get this kind of experience. It won't teach you everything you'd need to know to write C++ professionally, but it teaches a lot of the it, including a lot of best practices that it's otherwise hard to learn outside of a professional environment.
It's a dying breed in that it's being outgrown by others and the niches where it's the best choice are getting fewer, but it's not going away soon either.
For example high performance multithreaded code is now largely written in languages that are better for concurrency correctness, because the added development speed translates to added runtime performance by letting you iterate more in the same timeframe/budget.
A good understanding of the how the C/C++ memory safety bugs happen and lead to vulnerabilities is important to learn if getting into it.
C++ rules in the gaming industry, HFT, HPC, language runtimes.
Speaking of which what do you think all the languages that build on top of GCC and LLVM, depend on?
To me, using a programming language that lets me manage memory on a problem where it was important to me (because constraints or performance or whatever) has always been eye opening. go feels like a different thing there, but I suppose cgo can get you into the realm.
CUDA is an extension of C++ just like C++ is an extension of C. Deployed CUDA is growing exponentially. C++ is definitely not a dying language!
This will probably run foul of some purists but Unreal Engine is a large C++ project with a vast amount of documentation, community, examples, and serves a lot of use cases.
It's not standard C++ but also it illustrates why lots of projects go that route.
Because it's niche, it might not be resume fodder but it will scratch the itch if you just want to play with C++.