I specialize in Python, but I know a fair bit of Go, Elixir, PHP, and JavaScript (and its flavors).<p>That said, would learning C++ add to my [market] value as a developer, and/or would it allow me to do things I otherwise could not with my current set of languages? If not, is there any reason at all why I should consider C++?
C/C++ is still the tool of choice when you need to eke out max performance from the available hardware. That could be because the hardware is weak (maybe an embedded system) or because you need real time performance (game engines come to mind) or because you need to perform very large calculations (e.g. train neural networks, simulate fluid dynamics).<p>When the going gets tough, the tough reach for their C/C++ compilers. :)
If you don't know C, I would recommend to invest time in learning that first. Learning C++ would certainly not be a waste of time. However, if you want to be efficient about the use of your learning time, choose the technology/languages that would come in handy for what you would like to do next.<p>C++ is seeing a revival of sorts due to IoT/Automotive/Fintech software etc. So from a career perspective it would be a good investment of time (if, for instance, you are inclined to work in those fields).<p>However, keep in mind what is being called Modern C++ (c++11 and later) is a completely different beast than C++ which is uttered in the C/C++ sense.<p>My prediction is that the reality of C++ in the near future would be a mishmash of old and new C++ ...and it would go the Java way -- heavily adopted but a <i>lot</i> of bad code written by confused practitioners.
c/c++ adds to the market value of a dev iff that dev needs it for their job. Same story with every other language. Javascript won't help you get a ruby job for instance. You might consider learning C & assembly, because they'll give you a greater appreciation for what your computer is doing closer to the metal. You don't have to be good, but learning to do at least basic stuff can help you be better with other languages.
C++ is fundamentally different insofar as it has no garbage collection. Which means it's different enough that learning it will be educational (e.g. it means different forms of resource cleanup are possible: <a href="https://codewithoutrules.com/2016/03/10/compare-contrast/" rel="nofollow">https://codewithoutrules.com/2016/03/10/compare-contrast/</a>).<p>On the other hand, it's also a massive language, and modern C++ is very different than the legacy code bases you'll encounter in the real world. So it's a large time commitment to learn it well enough to code well in anger.<p>If you have the time try skimming a tutorial, and doing some exercises, enough that you can get the differences in mindset. But it's probably not the most efficient way to increase earnings, if that's all you care about.
It's always worth it to learn more languages. Every developer should learn C imho (it's a very widely used, influential language and it's pretty small). Seeing how C++ is essentially a superset of C, you might as well check it out after you learn C.<p>Also, don't focus on your "market value", focus on becoming a better developer. You're a craftsman, not a piece of merchandise - have some pride in your craft.
(not meaning to say you don't, I just liked the sound of that)
I concur with Rannath, if you don't have a C++ job, or you don't want to contribute to some C++ free software, my advice would be to learn C.
It's hard to answer this question without knowing what it is you are doing or want to do. Python + C++ can be a good combo in the computer vision, pattern recognition, machine learning, etc spaces. But for say a normal web app developer, C++ doesn't add much. I haven't written any C++ since school.