I think both C++ and Java provide you with very strong fundamentals, particularly WRT object oriented programming. I loved C++. I learnt it all the way through college, too bad I could never put it to use after graduation.
Now, should be Java be taught in colleges/schools as an introductory language?
Many of the non-programming people I've met go "Dude, Java is so tough!" and they hate programming because of the way it was introduced to them in high school/college and they never code for life.
Let's face it, Java (and C++ to a certain extent as well) only drive people away from programming when taught as an introductory course.
A simple example to print hello world in JavaScript is a matter of opening the chrome dev console and writing console.log('hello world'). You can then teach them how to build a chrome extension and get people hooked to coding.
On the other hand, a hello world in Java is not that straight forward. Post installing Java, you come up with a convoluted program (for a beginner, i.e) and end up with System.out.println('hello world'). The poor newbie goes, "Oh man, this is indeed tough".
That being said, Java is an excellent language, I did catch up on Java in a failed attempt to become an Android engineer (I think I am going to be doing Backend and DevOps work for a long long time to come, so the switch to client side development isn't happening anytime soon), one year into my first job. I think learning Java is a very nice way to pick up OOP, which by extension helps you build better software, no matter what language you code in. It's just that Java should never be taught to a beginner, IMHO.
Of late, I've been coding only in JavaScript and honestly have forgotten everything about every other language I used to know, may be except for Ruby. I can build anything using JavaScript now and it's a beautiful language. So, as long as the JavaScript ecosystem is good, I am going to be happy.