Live data from Hacker News

The case for language agnostic hiring

alphalist.com

111–120 of 124 posts

Re: The case for language agnostic hiring

#111
post #28

I agree to an extent. A good software engineer should understand the fundamentals and be able to adapt to most environments. Unless... your team is doing something very unusual. I like to think of it as a professional sports team (let's say basketball). If you have a chance to sign a skilled player who is an all-star, 7 feet tall, and can hit 3 pointers you sign him and it will probably work out!

In a football team, if you sign a fantastic player and you place them in a position where they can't thrive, they will leave after a counterproductive year. There are plenty of historical examples of it... Just imagine Neymar playing as a center back ;) The same happens if you hire a C developer for a Node.js gig, game developer for writing a mobile app, or someone who's been building React design systems all their l…

Yeah good point! Some sports teams are more specialized than others! I love the analogy because you're absolutely correct. Some software teams are much more specialized and closer to football than basketball.

You can also see it in basketball where even though the positions are less specialized than football, you sometimes have a coach who demands things run a certain system (Phil Jackson's triangle offense is a good example). Sometimes a great player just can't be effective in that system.

But take a coach who is more flexible, and they could make it work.

But which is better?? It's hard to say since there are great arguments on both sides. I think it basically comes down to having the right coach with the right team at the right time.

Re: The case for language agnostic hiring

#112
post #72

Earlier quoted context omitted.

Nobody said frauds can’t live comfortably.

Why on earth would somebody earning their pay by providing value and doing the job they were hired for be a fraud? Not all programming jobs require a PhD in computer science. There's plenty of people out there writing line-of-business software, and that's the stuff that makes the world work.

Sorry, poor choice of word. I meant dilettante, not fraud.

Re: The case for language agnostic hiring

#113
post #93

Elixir, Haskell et al. require concepts that are not required at all in e.g. Java. The functional programming module at my university had the highest failure rate after the math and statistics classes. Even something like C can require new concepts. I was a tutor for a university C programming course and students that had no problems with Java struggled hard with direct memory manipulation, pointer arithmetic etc., b…

I respectfully disagree. I think CS students struggle with this because they have a general lack of experience rather than a specific lack. I've found that I pick up "new" concepts like functional programming easier now than in college. I chalk this up to being able to link like concepts in the brain as you learn and are exposed to more post-college. New concepts aren't usually completely novel or original. Chances a…

Eh, I respectfully disagree to your disrespectful disagreement. Things are just different, there is no way around that.

Citing past experience is cheating, if you had already encountered X before to the point that learning it in detail is a negligible cost to you, then you're not truly unfamiliar with X, you amortized (part of) the cost of its learning over the past encounters.

There is no way, and I mean no way, a e.g Java programmer is going to be productive in a Haskell without a 3/6/9-month (depending on how much learning is "productive") learning phase where they are, most of the time, a "read only contributer". Java and Haskell are just too different computing machines entirely. Bad practices here are good practices there, good practices here are bad practices there, how I can describe it? It's literally programming a different abstract machine, they both eventually compile down to electrons but the journeys they take are vastly different.

I think the post title must contain an implied "And be prepared to mentor them while they are being unproductive". In the jumpy 3-years-at-most-per-job world of most tech jobs, that's unacceptable for employers unless they're really desperate.

Re: The case for language agnostic hiring

#114
post #35

>You might be looking for a specialist but you don’t want to attract people who are only interested in particular languages. Because that person’s narrow focus will hinder their growth. Exactly what I have been witness to was this taken to the test. Result: * You hire devs who do not like (or worse: hate) working in the language of the shop. They scold at the application they have to maintain and run, they do not con…

I like the suggestion of having an explicit hard requirement that employees be willing to use and engage with the existing tech stack. It makes it easier to point to the requirements and say “you signed up for this”. I’m surprised, perhaps naively so, that devs apply for roles featuring languages they actively don’t like (or even hate). What’s more understandable is a dev picking up a new language/tech stack on a job…

This.

Re: The case for language agnostic hiring

#115
I think domain knowledge has been under-estimated in general. Which I think applies to tools too, such as programming languages. Knowing the affordances, the options, the libraries available, etc -- matters.

Developers aren't interchangeable widgets.

Sure, a really good engineer will be able to learn a new language. I don't actually disagree that it can make sense to hire developers who aren't yet expert in the language they are using, sometimes it does.

But a really good engineer learning a brand new language to them will still take a year or two until they approach the productivity and quality of decision-making of a really good engineer who was already well-experienced with the language. Will a really good engineer learning a brand new language be more productive than an inexperienced or poor engineer who has messed with the language for a year? Sure, ok.

General programming aptitude matters a lot; but experience with the tools they will be using matters too, it isn't irrelevant.

Re: The case for language agnostic hiring

#116
post #82

Earlier quoted context omitted.

If you need to understand what Python is doing under the hood, you’ll have to have some understanding of pointers. Not having a decent mental model of what’s happening a few levels below severely limits the kinda of problems you can solve.

That's a bit harsh. I'm familiar with C/C++ and how pointers work, but that part of my mental knowledge never comes into play when I write python code, whether Django or not. And I've written substantial code in these two environments, they don't really intersect. I mean, maybe once in a couple years you'd run into some weird problem that requires deep knowledge to solve, but "severely limits" might be a bit of an ov…

When the OP said they "have no idea how pointers work", I took that to mean they don't know know anything about how memory works. Why does does copying this array, not copy the contents of the array. Why does accessing a random value in a linked list take so much longer than accessing a random value in array. What happens when I reassign a local variable.

Developing an underlying mental model of what's actually happening is so much more effective than treating a programming language like a black box.

As far as "severely limits", there are many jobs where you could spend your entire wiring together libraries and asking more senior developers for help when you run into edge cases. But if you want to be one of those people who gets called in to help, you need a basic understanding of memory indirection. You don't need to understand pointer syntax in any specific language, but you need to have some understanding of what happens when you type x = [1,2,3].

At many tech companies, I doubt you could even make it passed the interview without a basic understanding of what a pointer is.

Re: The case for language agnostic hiring

#117

I think domain knowledge has been under-estimated in general. Which I think applies to tools too, such as programming languages. Knowing the affordances, the options, the libraries available, etc -- matters. Developers aren't interchangeable widgets. Sure, a really good engineer will be able to learn a new language. I don't actually disagree that it can make sense to hire developers who aren't yet expert in the langu…

>learning a brand new language to them will still take a year or two until they approach the productivity and quality of decision-making

I don't agree unless we're talking about something like Rust or C++. Python, Java, and JavaScript are all very easy to pick up once you understand the concepts they share. I would expect any developer to at least know the basic syntax of Python for instance even if they don't write it daily.

To me, if somebody only knows one language but they're an expert in it, it indicates a lack of ambition, curiosity, and willingness to face new challenges which are desirable traits to look for when hiring. And unfortunately for such people there's polyglot experts out there that can be hired for the same price.

Re: The case for language agnostic hiring

#119

When a company I'm interviewing for a role at is quoting Uncle Bob, that is a huge red flag for me.

What exactly does that signal to you?

Essentially, that they have no idea what they're asking, while making a big effort to appear like they do.

Re: The case for language agnostic hiring

#120
post #35

>You might be looking for a specialist but you don’t want to attract people who are only interested in particular languages. Because that person’s narrow focus will hinder their growth. Exactly what I have been witness to was this taken to the test. Result: * You hire devs who do not like (or worse: hate) working in the language of the shop. They scold at the application they have to maintain and run, they do not con…

I like the suggestion of having an explicit hard requirement that employees be willing to use and engage with the existing tech stack. It makes it easier to point to the requirements and say “you signed up for this”. I’m surprised, perhaps naively so, that devs apply for roles featuring languages they actively don’t like (or even hate). What’s more understandable is a dev picking up a new language/tech stack on a job…

> devs apply for roles featuring languages they actively don’t like

Then that's their problem, not the employer's fault. If you know what stack is being used when applying for a job, and you despise said development stack, then why apply for the job?

But there are other developers out there who aren't that fussed about what development stack they might be working with. Often there are other attractions to the role such as compensation, paid time off, etc.

> What’s more understandable is a dev picking up a new language/tech stack on a job and discovering they don’t like it.

This happened to me once, but I held my nose and just got on with the job.

Post reply on HN