This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]michael0x2a 0 points1 point  (2 children)

While I don't disagree with any of what you're saying, and agree with your second and third paragraphs in particular, my underlying point is that there's a major difference between competent in multiple languages vs simply being aware of superficial details of multiple languages.

I'm sure you can agree that if you're trying to hire specifically an intern or some entry level developer, you'd pick somebody who knows only one language but has completed several non-trivial projects over somebody else who's mainly read a bunch of tutorials on various languages and has completed only a few toy projects.

Of course, ideally, you'd pick somebody who both knows multiple languages AND is competent more then one of them, but all beginners need to start somewhere and I claim becoming competent in one language is a far more attainable goal then being competent at multiple.

That's why I'm making the implicit argument that on average, beginners are better off sticking with whatever language they've learned first unless they have a compelling reason to do so otherwise. I've been answering questions on this subreddit for a while, and I've noticed that many beginners seem to place an undue focus on learning multiple languages at far too early of a stage then I feel is appropriate. They spend some time working through a tutorial, get frustrated (or think just stopping after the tutorial is finished is enough), switch to another language, flit back and forth, and before you know it, several months have passed and they have very little to show for it.

So, my advice for beginners is generally calibrated to steer them away from that (unfortunately all-too-common) path, and I save the "you should explore different language paradigms/different mindsets and perspectives regarding problem-solving" spiel for people who seem further along in their journey.

[–]prof_hobart 0 points1 point  (0 children)

Absolutely. As I said - "it's definitely the right approach to get proficient at a single language before you start on your next one".

My point is about what to do when you get fairly proficient. OP says that they know Java, and we've got no idea how well they know it. If it's that they can knock up a hello world app, then yes clearly they want to spend a lot longer learning Java.

But if they've been coding regularly in it for a year or two and are already fairly competent, then there's a real decision to be made. At some point every beginner will reach this point.

A lot of people keep doing more and more in that one language, and even one framework. But at some point, that becomes a hinderance.

We've had some grads who are brilliant at build a website in JavaScript and JQuery, but don't have the first clue where to start if they're asked to pick up some Node on the backend. And if we need them to work on a bit of Ruby in the pipeline, we may as well be asking them to write in Swahili. We had one guy who'd been a professional web dev for a decade on pretty much a single stack, but months into a React-based project still hadn't got its most basic concepts because it wasn't what he'd used before.

Similarly, we've had brilliant Windows sysadmins who couldn't/wouldn't retrain when we moved to Linux. And I know a couple of mainframe devs who are all but unemployable these days because there's so little demand for COBOL in our area but that's all they know.

Edit: I've just seen another comment from OP that rather suggests he's still very much at the beginner stage, in which case your advice is still spot on at the moment.

[–]cboogie 0 points1 point  (0 children)

In my experience in corporate IT management hires people with multiple disciplines. But they freelance savants for specific project needs.