Let the candidate choose their programming language

Hiring for Tech
July 27, 2020

Python code on a screen

In the context of an interview, most programming languages look the same. Photo by Chris Ried on Unsplash

Software engineering is much more about problem solving than writing down code, which is why we see the same concepts present in so many technologies. On the flipside, this also means a software engineer’s skills are largely transferable from technology to technology, especially when it comes to programming languages.

In her article The programming language doesn’t really matter, Ty Terdan breaks down why interviewers need to be flexible with the programming language a candidate uses. The article details how interviewers can be more accommodating:

This aligns with a theme I’ve brought up in my writing: allow candidates to show their strengths, instead of looking for their weaknesses. Allowing candidates to work with the technologies they are comfortable with may be slightly more work for the interviewer, but doing so expands the pool of qualified candidates your company can hire from.

Definitely read Ty’s article, as it also talks about what candidates can do when their interviewers aren’t as accommodating.

Is the programming language ever important?

Every rule has its exceptions, so I asked Ty: is it ever important to focus on or require a particular programming language in an interview?

I’m sure there absolutely are cases where you want to make sure a candidate is familiar with a language. But in 95+% of cases, it’s way more important to know the concepts that are used within a language. If you are hiring for game development, make sure your candidate is familiar with graphics libraries in general, even if they haven’t worked with any specific library. If you are hiring for embedded systems, you need candidates familiar with low level programming concepts. Often, you will indirectly get the language you want through the concepts needed.

Again, Ty’s response aligns with my experience. The one time I’ve seen a specific technology being important was when a past team hired a Node.js expert to optimize our usage of Node.js. On the flip side, once we moved toward other server technologies, this person moved onto a role that actually needed their expertise!

Accommodating different programming languages allows candidates to show their strengths, making it easier to hire highly qualified candidates. In fact, this principle applies to other technologies, especially frameworks. After all, if your employees only know one set of technologies, then how will you ever evolve your tech stack?