Once that experience is there, then yes, I agree that its usually not difficult to learn a new language.
So I think his choice to stick with what he knows and focus on learning algorithms was a good one. He could learn Java or Go or Ruby prior to the interview and then find out that he was placed on a project developing in Python, assuming he took the job. Languages are generally easy to learn and teach; best practices, algorithms, design patterns, etc. are what's hard.
In contrast, I run into a lot of frontend developers that came from the opposite direction: HTML, then CSS, then Javascript. Their relationship to different languages and how it can be useful to their skillset is completely different from mine. If they are uninterested in learning any other language, it's likely because:
* They have no experience to say it will be useful to them, since they are planning to continue to develop in Javascript for the foreseeable future. * The other "languages" they know (HTML & CSS) are NOT helpful in their JS skillset. So by extension, they have experience teaching them that learning other "languages" isn't helpful.
I'd be skeptical too if someone that didn't code in my language of choice was saying that I should expend effort when my experience says otherwise: it sounds too much like an ivory tower someone speaking pompously.
Now, in my case, I DO know other languages and I know how they can benefit me. (Even language experiences I hated, such as my 5 years as a Java dev, were certainly instructional and useful in my current practices). But that's BECAUSE of my experiences, not DESPITE them. So I can see how someone with a different experience would respond differently. (Heck, I tend to look down on all strict-typing languages because of my Java experience, despite hearing from others that Java is not a great example to learn from).
That said, I also try to use a lot of unit tests, so there HAVE been more than a few pre-prod issues having to do with types. I just view the time spent on these as still less than what a strictly-typed language would require. Fixing the 1 in a 100 situation that is quickly exposed in a test is less effort than being verbose 100 times.
I will admit that there are some test cases that typing would make much easier - but not enough to yet sway me. I'll also say that strong typing (ala Python) is far less painful to me than static typing (ala Java).
I'll try to keep an open mind, but until I start seeing production bugs that make it worth more development pain, it's unlikely to occur.
* I'll also note that I think my web experience makes me prefer coercion, because everything has to keep switch to/from strings. Though I'm sure the strict-typing crowd will see that as evidence that typing has all the more need to be enforced :)
Also you can encode your logic in types - The Curry-Howard Correspondence (https://en.wikipedia.org/wiki/Curry–Howard_correspondence) says this is always possible in sufficiently advanced type-systems. While this goal hasn't been realized in mainstream programming languages, we have been moving towards it for a long time.
So when you say that you only have logical errors, not type errors and can't recall any type issues, do keep in mind that those are exactly the kind of things type-systems aim to solve.
But I can't blame you since Java and similar languages provide the only mainstream experience of static types.
I wonder if it's what is expected from college graduation (we saw all these topics there after all) or if I'm late to the game but it's quite a joy nonetheless.
But fact is: JavaScript the opposite of a small little niche.
Not because you can do everything with JS (which you probably can't) but because a few things you can do with it are considered rather valuable at this moment.
Switching to a different language isn't that big of a deal for a advanced programmer.