In my opinion, "Learn a new language every year" is not bad advice if you don't translate it to, "Master a new language every year."
I think that languages (frameworks, libraries, databases, ...) are part of our world; casting a glance at them is OK and beneficial.
New languages tend to solve problems in different ways. They bring their lot of features that might make you reconsider the way you work using your main language.
It's like learning a foreign-language grammar and get a better understanding of your own.
I agree that there are other skills that matters more until you are fluent, but in the end a broader knowledge broadens your mind (and I think that it's perfectly OK to stop at a Hello World of some kind).
I think the post itself rather translates to “Learn a new language every year is bad advice if you don’t translate it to master a new language every year (which of course no-one can)”.
Maybe ... I still wanted to put forward a different opinion.
Maybe not entirely different (because I haven't learned a new language every year), but shed some light on the advantages of "just trying out" a new language with a Hello World! example.
Let me ask you this: imagine a group of programmers who you work with now or have worked with in the past. Now imagine they all worked for you in a company that you personally owned. Would you require them to try out a new language every year and pay them to do it? Do you think it's that important? Might it be true that some of your programmers would benefit more from using that time to learn something else?
I'm not sure that it's the right question to ask. What I would do is irrelevant.
Everyone has different sets of skills that make them individuals. With every new experience, we shape our vision of what we do.
I did some hiring in the past, and I might have hired someone because (as additional "talents") they were funny, because they liked board games, or because they liked reading.
People in my team have asked for training of many different kinds, spanning from computer languages to design, to communication skills. To this day, I've done my best to say yes whenever I could. I have also let them dedicate some of their time to whatever they liked. Not because I thought that they would, in a day, dramatically improve at programming, but because they would enjoy it and that in the end, it would benefit the company (and my team). To me, the key is to let people decide, and if they feel like learning a new language, I'm okay with it.
Now, let's focus back on languages. In my current company, we mainly use Java and PHP, but ... someone saved the day when he was able to tweak the swagger code generator (written in Scala), someone was able to save the day thanks to her go skills when she quickly wrote a program with parallel tasks, someone was able to save the day when he configured Jenkins using Groovy, someone debugged a PHP extension (written in C), and someone just had fun with colleagues showing them a game prototyped with Unity.
Are they "better" programmer? No.
Was it useful for the company? Yes.
Would I hire them "because they know five additional languages?" ? No.
They just happen to have developed an appealing amount of knowledge and skills, sometimes by learning a new language.
Yeah, I totally agree. And thanks for treating your programmers as humans; I'm sure they appreciate it.
I think it's the "... or you're not a good programmer" part where the concept go off the rails.
I agree. Not learning a new language every year doesn't make you a bad programmer.
Yes, Eljay-Adobe's correct. It's this pressure to do it just to consider your self a "real" programmer or a "good" programmer that bothers me.
Thanks for your comments.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.