The simple answer to this question is "all of the above."
Interviewers for Google and Bloomberg will tell you their firms have similar philosophies on language. Largely language agnostic, using different things for different projects or use cases.
When you start out, you'll just be learning one language. Probably C++ or Java in an academic setting. I would recommend Python at Codecademy if you're a beginner.
Whatever that language ends up being, think of it as your starter Pokémon.
As you continue training, there are more Pokémon (languages) you'll encounter. Some you'll like, some not so much, and how much you use each will vary.
How much StackOverflow you need will vary.
Trying to make one language work for every situation will hurt you as a software engineer. You can (probably) do machine learning with PHP, but it doesn't have the libraries Python has for it. I have only the vaguest idea of how you'd start web development in C.
Sometimes I feel as if I haven't "mastered" any one language. But even the languages themselves keep changing over time (i.e. Java 9 is coming).
It's more about knowing enough to take on the projects you want to. I know Java deep enough for programming interviews, Python enough to bot online games, etcetera. There's not a point (or language) when the learning is done.