Remix.run Logo
leptons 4 days ago

>Knowing two languages isn’t all that bad. Most developers learn many languages during their careers and switch between them without a thought.

One of the most revered programmers in my circle, who's been coding since the early 1970's asked me once, "how many programming languages do you know?". I started rattling off a few, and he stopped me. He said "I only really know the last 2 languages I used".

Jack of all trades, master of none. If someone asked me to code in PHP, Perl or any of the dozens of languages I've used in the past today, just no way. No thank you. Yeah, I used to be very proficient with lots of languages, but no way am I going dust off those brain cells. Assembly is probably the only language I can really get into on different platforms without a huge cognitive context switch, because it's just straight forward, no kooky abstractions.

That said, I've used Javascript for front-end, back-end as well as database (mongo), and it was absolutely great to not have to context switch constantly. I've also done lots of different systems with a wide variety of other languages glued together, and it hasn't been as effortless as using one language for everything. YMMV.

dave_sid 2 days ago | parent | next [-]

If he can only remember two programming languages then he wouldn’t stand a chance in today’s dev ops, t-shaped, m-shaped world I’m afraid. Imagine asking him to help setup an CI pipeline, or some infrastructure but he’s worried learning a bit of Terraform will make him forget his second last language. You just can’t be like that these days. You have to be a jack of all trades and a master of all trades. That’s just where we are and it’s not going to change anytime soon.

wiseowise 4 days ago | parent | prev [-]

Many times this. I'm always skeptical if people saying they know 5+ programming languages beyond surface level.

dagmx 3 days ago | parent | next [-]

A lot of language concepts are shared and abstract. It’s not hard to know many languages proficiently.

I do agree a lot of people over estimate how much they know, but I work with multiple people who know at least 5 languages well.

For me myself, only counting things I’ve shipped at scale, I’d know C, C++, Swift, JavaScript, Python, Rust, MSL, HLSL, GLSL, MEL. There’s enough in common between them that I think it’s quite doable.

wiseowise 3 days ago | parent [-]

> A lot of language concepts are shared and abstract. It’s not hard to know many languages proficiently.

Every language has thousands of papercuts. It is hard to know many languages proficiently beyond surface syntax level, period.

> I’d know C, C++, Swift, JavaScript, Python, Rust, MSL, HLSL, GLSL, MEL

Shipped !== know. I've touched dozens of languages over my career and every time I've had my ass kicked by some esoteric knowledge of specific quirk in std of %lang%. We have a different definition of "know".

dagmx 3 days ago | parent [-]

Now you’re just shifting the goalpost.

You initially said beyond a surface level and now you’re talking about esoteric quirks.

Pick one. Of course nobody has the same definition as you if you’re shifting the line and simultaneously not defining what you mean.

You don’t need to know every aspect of a languages corners to be proficient in it. If that were true, there’s only a handful of people on this planet who’d be proficient in a single language let alone multiple.

wiseowise 3 days ago | parent [-]

> If that were true, there’s only a handful of people on this planet who’d be proficient in a single language let alone multiple.

This was indeed my point from the start.

dagmx 3 days ago | parent [-]

I’m just trying to understand what your bar is for “knowing a language”

Is there a language you’d feel comfortable saying you know every single aspect of, without exception? Down to every compiler and implementation quirk?

wiseowise 3 days ago | parent [-]

Yes.

pjmlp 3 days ago | parent | prev [-]

When you work in enterprise consulting, it suffices to know a language good enough to deliver.

It is common practice to be thrown at random projects regardless of the programming project.

What is valued is the soft skills, and the ability to swim when thrown into the cold water, no matter how.

Yes it kind of sucks, however the Pandora box is long open and only an implosion of the capitalist enterprise culture would fix it.

leptons 3 days ago | parent [-]

Sure, I can "swim when thrown into the cold water", but you have to be a masochist to like that kind of job. It sucks. I won't do it if I don't have to, and luckily I don't have to.

pjmlp 3 days ago | parent [-]

It pays better than the alternatives and some freedom moving between technologies, which tend to be product development with an expiration date, until the company gets acquired or decides to offshore the team.

Contrary to product companies you also get to jump technologies without having an HR department sending the application into the garbage because one doesn't tick all the boxes on a specific stack.