Peter Norvig's "Teach Yourself Programming in Ten Years", linked under... ahem http://norvig.com/21-days.html
Peter Norvig's "Teach Yourself Programming in Ten Years", linked under... ahem http://norvig.com/21-days.html
However, in the article, Norvig himself points out the worthiness of learning several languages, and doesn't claim that you have to get on a ten year treadmill for any individual one, or even a subset. My impression was that Norvig was really targeting the people for whom whatever-language-in-a-fortnight-and-a-half would be their first exposure to programming at all.
As you gain more languages, provided you are judicious in choosing, so shall your learning of each of those languages be more rapid than the prior.
Does a month per language seem a bit rapid? Yeah, it kind of does, depending on the time spent in study and tooling. The pragmatic programmer guys suggest learning a new language every year; that seems wholly attainable. In reality, the author studied a language to what he considered a sufficient level in a quarter. That also doesn't seem that unreasonable, depending on the level of mastery desired. Could be that both perspectives have more than a grain of truth.
What matters more professionally is Frameworks, SDKs, Libraries, etc.
For example I'm not a big fan of C#, or static typing, but Unity's C# (And UnityScript/BooLang) framework is pretty good to be ignored.
It depends. Frameworks and SDKs cannot overcome shortcomings of your language and/or language implementation (and often you don't have the luxury to switch gears, because there is only one reference implementation).
When I studied Erlang's support for concurrency, I realized how hard it would have been trying to do that in another language. Yes, you could somewhat manage to replicate that, but:
- your language implementation could lack microthreads, thus impacting how concurrency would scale;
- you may need to follow some protocol in using the framework, otherwise you could fall into one of many pitfalls, which aren't there in the language you're using as a model.