well one reason could be that a lot of code is still written in c and c++ and for example on the TU-Vienna if you study technical mathematics or physics they teach you C and C++ in the first two semesters.
rust and go will still need some time to take a more important role in low level coding and until then they will remain and even after that there will be years of migrations and legacy code left :D .... every language that reaches "industrial standard" is here for a long time ! :)
Everyone's answer are great.
One thing I would add is:
C and C++ - you dont have a string class. you have to manage pointers. ITS SUCH A PAIN - however on the flip side - you can learn a lot about class constructions this way too. Some may argue that it is not needed however root basis languages are very helpful (also considering it is core to Linux boxes).
Another similar trend would be why learn jquery when angular and vue does everything for you. A) that is not true b) you will always be able to appreciate and refactor code that spawn from the root programming into the more modern one.
At the University of Concordia during my 4 year stay I saw them flip from C to C++ to Java in terms of intro to OOP. C was harsh - C++ was rough and Java after a while you appreciate it only because you went through C and C++.
If you are asking this question due to a time factor, my answer is still the same: you will know more about how internally other languages work if you know the the parents of the language (ever wonder why memory management is important ... its about them pointers and other things)
Guong Le
web-dev
Marco Alka
Software Engineer, Technical Consultant & Mentor
Question: Why shouldn't you?
Simple fact: Most software today is still written in C and C++. I use Gentoo Linux at home, and nearly all software I install uses gcc to compile C/C++ sources. There is some Python and Perl mixed in and I use Java for things like WebStorm, but without C/C++, my computer would not work. Don't forget about other every-day appliances, like smart devices and IoT. If you want to program for embedded, C is the way to go (though work is done to get an even better experience out of Rust).
Another simple fact: Our big operating systems (and kernels) today rely mainly on C/C++. Windows, macOS, Linux, BSD. There are a few newcomers, like NodeOS and Redox, which do not use C/C++, and I am quite excited about seeing them grow. However, if you want to grasp how your platform works at a low level (or even extend it), you will need C/C++ most of the time.
While the Hashnode community might be quite opinionated with all the web devs, outside of web development, C and C++ have a very important role. As a result, if you plan to make it as a developer on a system or application level, you should learn C/C++. It will help you write very performant and low-level code when it really matters and better understand lots of APIs (for example DirectX, OpenGL, Vulkan in the graphics corner). Also, it will definitely further your horizons!
So, even in 2017, with lots of JS everywhere and new languages which try to replace C and C++, these languages are still very very common and important. I would even say, they will stay relevant for years to come, if not decades!