I don't know. "specializing" in a couple of OO languages and a couple of functional languages sounds like way more work then necessary. You might be familiar with a couple of languages and a master at 1, but to master 4 or more programming languages at the same time is going to be very time consuming.
Yeah this isn't something where a brute force attack is going to work. One of these a year, or one every six months, should be doable for most people. But definitely don't try the whole shebang at once.
And I wouldn't look at it as work. More like nerd-traveling: you get to see a lot of neat and unusual things, and when you're done, you appreciate home a lot better and have a better perspective on things. Having said that, I'd be sure you solve a few non-trivial problems. Traveling is no fun if you just take pictures and don't get out and participate.
In general, if you haven't tried a new way of making solutions in the last five years or more, you're sucking wind in this biz. That's advice just about _keeping up_, getting ahead is an even tougher game.
Well, a language a year is really far off from mastering 4 languages or so. I have used a handful of languages over the past 4 years and while I can say that I mastered them fairly well when I was using each one individually I can no longer claim mastery of all. The truth is that you get accustomed to a new language, a new way of thinking and you quickly forget how to even do basic things in the other languages you once mastered.
Ah yes, the time of pain -- the time when you're back in a language you did a while back and you just know it's going to hurt for a while until your brain gets re-tuned.
I think C++, for me, is the hardest to re-tune to. There's just so much stuff going on. And it's one of those languages where the code constructs themselves can lead to a lot of crazy complexity. Was that a multiple inheritance and a virtual base class, or just an interface? Do I have any friends? If not, do my parents have any friends? Are my operators overloaded? Is this a volatile method? If so, better stand back!
I'm not saying to code like this, but C++ stuff, even when written well, can just get gnarly as heck. You enter this entire zone and mindset when you're there, at least I do. Some other languages, like Java, are not that tough to come back to.