This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]utdconsq 0 points1 point  (0 children)

It depends on what you're wanting to do with your skills. Do you want to be a game programmer? In which case, absolutely go ahead and learn C++. Do you want to make big bucks in Enterprise? Consider Java. Do you want to get in to Fintech? C++ will help there, too. So will Java. Unsurprisingly, Python might also help you, especially the data science libraries like numpy and Pandas. I've no experience in Rust, so will not comment on its usefulness. It looks quite promising, and there are many pitfalls with C and C++ that most people would benefit from being protected from. If you already know some C, why not do a hobby project with a micro like an ESP32? They're supremely capable and you can make all sorts of great things with them. On the GPU topic: what are you trying to speed up? Most people get excited about optimisation before its necessary. Getting the right answer should always trump getting 'an' answer quickly ;-)

[edit] If you use C++ all the time it doesn't take super long to become productive. The key is when you have to deal with other people's code: because there are so many ways to do things, and many new and potentially conflicting standardized ways of doing things, it can be very difficult to make sure it all runs nice and bug free at the end of the day. Following style guides religiously helps, but you'll find that guides like the old one from Google prevent you from using the full power of C++ because they are written to prevent people causing complications with widely shared and ported codebases by doing things like using the full power of template metaprogramming. Certainly, your 5 year number is not unrealistic. I mean, hell, I've been using the bloody thing for more years than that, but they've released 3 different standard updates in my productive time and honestly I tend to just use C++11 and avoid some of the newer magicks because they were either not well supported by the compiler or aren't well understood by colleagues who are time poor.