Skip to content

re: "Learn at least one new language every year" is bad advice VIEW POST


One a year is perhaps overkill, but the need to learn multiple languages should not be understated. You simply cannot become a good programmer unless you've done work in multiple languages, preferably ones that serve different domains, paradigms, and/or markets.

I think the sentiment of "one per year" likely comes from what may just happen during the course of a career. You won't likely master, or even signficantly use, all those languages, but you'll certainly be exposed to a lot.

If I look at the languages I've used, somehow, over my career it probably works out to about one language per year -- depending on what you consider languages. Very few of these I set out to actually learn though, most of them just happened to appear in my work, or hobbies, and I picked it up as I went.


You simply cannot become a good programmer unless you've done work in multiple languages...

That's a pretty strong statement. Is there a chance that you're confusing correlation with causation? "Lots of good programmers know multiple languages, therefore you must know multiple languages to become a good programmer?"

That sentence sort of makes sense when you say it but if you replace a few words but keep the logical structure, it doesn't sound right: "Lots of great athletes own multiple houses, therefore you must own lots of houses to become a great athlete."

In other words what if knowing multiple languages is an effect of being a good programmer, not a cause?


There are a variety of different ways to approach programming problems. Different paradigms and different methodologies. Each language and tool tends to specialize, or cater to a different approach. If you stick with a single language, or single tool, you'll simply not be exposed to these other approaches.

You'll be missing significant programming knowledge. Thus it's not correlation; it's causation. Until you actually use these other languages and tools you'll continue missing this knowledge and thus won't be a good programmer.

You could however be on the path to being a good programmer. One obviously has to start somewhere, and it's still to say that if you know only one language you have to be a bad programmer. It's not like I'd ever actually evaluate somebody based on the number of languages they know. Maybe I will meet somebody that impresses me one day and only knows one language.

I've never met a good programmer who didn't know multiple languages so you may very well be correct. But I'm still interested in the correlation vs causation question.

Anybody know of research pointing either way or know a good programmer who only knows one language?

Maybe we won't count SQL, HTML, XML, etc. as languages. So someone who does web dev and only knows PHP would count as knowing only one language?

I do consider all of those languages. I've written a series of articles about various paradigms.

Indeed, I'd say somebody who's done modern web development, full stack, who claims to only know PHP is most likely incorrect. Each of those you mentioned, like SQL and HTML, and let's also include JavaScript, and if we're generous: CSS, those are all different ways of looking at a problem. That's exactly what I'm after when I want people to learn other languages: these other approaches to solving a problem.

Now, it's quite possible to hack around in all of those and get a site working without really understanding why. Or it's quite possible to over-apply PHP and ignore all those other bits. Thus simply using these bits isn't enough to be a good programmer, but truly understanding all the bits probably is.

I'm surprised by how often you and I seem miles apart when we first comment on something but then when we peel back the layers, and maybe define some terms, we end up pretty close to each other.


code of conduct - report abuse