One of the first questions I get from people preparing to interview is: what programming language should I use during my interviews?
I think people ask this question expecting to hear a revelation about one language secretly being the best for interviews. But the answer is, perhaps frustratingly, simpler than that:
You should use whichever language you’re most comfortable with.
Okay, it’s slightly more complicated than that. You should know which languages the job you’re applying to uses, either from the job description itself or from your early conversations with your recruiter. Don’t be afraid to ask this directly. “What languages does this position use?” and “What language should I expect the interview to be in?” are both valid questions that you should ask as early as possible.
Most likely, you’ll be given a few languages to pick from. And you should pick whichever one you’re most comfortable coding in.
I mentioned this above, but it bears repeating: you should ask what languages, frameworks, and libraries are used by the position you’re interviewing for.
You can get some idea of this ahead of time by searching “what programming language does __ use?” or by visiting this Wikipedia article: Programming languages used in most popular websites.
Most big tech companies use pretty much every language you can think of in one way or another. Different parts of a big tech company might also use different stacks: Google Maps uses a different stack than Google Cloud, for example.
But don’t rely only on what you read on the internet about a company. If you’re interviewing for a company, ask them directly! They’ll be able to tell you exactly what you’re interviewing for, whether that’s a generalist position (in which case you’ll probably be able to pick any language you want) or something specific (in which case you might be asked to stick to whatever language they use).
It can be tempting to list every language you’ve ever heard of on your resume, but this can backfire if you’re asked about it in an interview.
Here’s an actual conversation that happened in one of my Google interviews:
I answered honestly, which resulted in my interviewer and I laughing together and then moving on. I might have tried to bluff my way through, by claiming to know C++ better than I did. But I’m sure my interviewer would have asked me a follow-up question about C++, and I would have been toast.
While you’re thinking about which language you’re most comfortable with, I’ll also mention that knowing a framework can be helpful, especially if the position you’re interviewing for uses it. But you should also know the fundamentals of your language.
As an interviewer, one of the most common reasons I’ve recommended against hiring candidates is because they could only code in one specific framework, but they were lost without it. Knowing a framework is a nice bonus, but you should be able to explain what it’s doing behind the scenes.
For these tutorials, I’m going to use Java, mostly because it’s what I know the best. I’m not implying that you should use Java, unless you already feel comfortable with it. The concepts I talk about should apply to pretty much every language, so don’t get too hung up on the syntax.