Stay away from C#. It's actually a pretty good language, but the .net framework is terrible and all that microsoft server shit is terrible. I had to develop one site in it, never again.
PHP has actually evolved into a pretty powerful language, but most of the PHP code out there is awful. You can cowboy code some sloppy script and it will run, which is why it's attractive, but trust me you don't want to work on a legacy system built like that.
Java is kind of the gold standard of classical object oriented programming languages. It's stable and there are tons of people using it. The big problem with it is it's really not the *best* language for anything so don't expect any real growth in the job market. It's used in all the colleges too, so you've got to compete with a fresh crop of graduates every year in a job market that's shrinking.
IMO if you want to learn how to think, you need to focus on design patterns not a programming language. I also think classical OOP languages poison the mind when it comes to engineering.
I highly recommend checking this out. In here you'll literally learn 90% of what you need to as an engineer:
Learning JavaScript Design Patterns
Javascript is great to learn on because it involves a lot less code, but more thought. Even if you go on to use Java or something, knowing a language is nothing. If you understand what your real purpose is as an engineer. You do it in the abstract first then make it work within the constraints of your tools.
Also, here in New York as an entry level java programmer you might start at $40,000 but no half competent Node developer isn't going to be offered a $100,000 job. That's just where the world is at.