Earlier quoted context omitted.
> [...] allow software developers less movement between companies. > How many times have you seen a job advert and you think oh wow that looks interesting, I'd like to work there... Oh wait, they use X on the backend, I don't have any previous commercial experience with X so damn, I can't join the company. Wait, just who are you, then? An intern fresh out of high school? Or do your circumstances impair your ability t…
I've been programming for 14 years in about 10 different programming languages... It's a struggle for me to list them all (let alone learn them). I only really needed two of them; all the others were a waste of time because they're so similar to each other. Learning new languages is not hard for me, I can pick up a new one in a single day and my code could fool someone into thinking that I've been doing it for a whil…
That's still very little. You can take a look at my site (in profile, the "Languages" page) where I listed PLs which I learned. There's 126 entries on that list (to save you a couple of clicks). I'm not boasting - just offering a different perspective.
> all the others were a waste of time because they're so similar to each other.
If they are so similar, then learning them should be very easy and quick, no?
> I can pick up a new one in a single day and my code could fool someone into thinking that I've been doing it for a while (if you ignore development speed)...
In a single day? So it's not that much effort, is it? Assuming, of course, you won't hit the language which is different enough and your intuitions and experience become useless.
> you can only truly master a language or framework after working with it full time for a couple of years.
You're wrong, in part.
It takes a lot of time to master your first language and a few others in the beginning. Later it can take quite a lot of time to learn your first language with a paradigm you're unfamiliar with.
But languages are similar to each other, can be classified into types and studied in bulk. With enough languages (and frameworks) learned you develop an intuition of what happens and how. With enough different languages known, you develop an intuitive feel for what's the best way of solving a problem in a given language. There's also a bit of theory to be learned, but once you have it down there's really nothing that can surprise you.
Personally, I've had the hardest time when learning J. There are exactly two other languages which are similar (APL and K) and they both are even harder to get into. So the reverse is also true: if you don't know enough about a certain kind of languages, you're going to have a hard time.
In the end, I think we disagree on what we consider mastery. I don't believe you have to remember all the finest details of implementation to say you've mastered the language - as long as you can easily drop down to the compiler or interpreter source, read it and understand without effort. It's all pretty easy then, believe me.