My advice for language choice on interviews.
Posted by commonsearchterm@reddit | ExperiencedDevs | View on Reddit | 24 comments
One bit of advice I'm going to throw out into the void for whoever needs to hear it.
If you get to pick your language for a coding interview, you better know the one you pick well and how to write idiomatic code.
I've been giving coding interviews where everyone keeps writing in python ("because it's easy"), despite their day job not being in python, and it makes them look incompetent. As an interviewer I can only judge whats in front of me. If you struggle with error/exception handling, don't know built in things to import, weird variable names etc, this is my only view into you as a programmer as the interviewer. If you write python and it looks like, go, typescript/js, Java, your probably going to fail.
Goingone@reddit
Yes, it always makes sense to pick the language you are most comfortable with (if allowed to).
That being said, failing a candidate for not knowing a Python built in module is kinda lame.
suprjaybrd@reddit
not always, if ur competent, the highest level language provides significant advantages. verbose and strict typed languages are much slower to write out in an interview setting, ive seen plenty of folks chew through time because they chose c++ etc.
Business-Row-478@reddit
Especially when most interview questions are more conceptual / about breaking down the problem. If the interviewer isn’t familiar with stuff in c++ stdlib it also might just look like gibberish to them, even if you are doing everything optimally .
commonsearchterm@reddit (OP)
It depends. if there something in itertools, you can describe it and it'll help and you forgot the exact params or the name is weird or something, ill give it to you. If you don't know you can import json, that's concerning.
PeterPriesth00d@reddit
This is a terrible take. Why are you judging a candidate based on whether they know what the standard library modules are called for a language during an interview? Who cares if they know something you can just google or look up using AI? It’s such a non issue.
You should be trying to evaluate how they solve problems not how much arbitrary information they can recall under pressure.
You are part of why interviews in our industry are garbage.
commonsearchterm@reddit (OP)
it actually isn't. If you need to look up some basic things, it means you never really learned it or internalized it. So when you do go to look it up, you might not understand what you are looking up and pick the wrong solutions. This isn't hypothetical, Ive watched people do this.
Thanks for that. Anyway, people do actually do really good on these interviews. Should we lower the bar so bottom tier candidates feel like they can have a chance?
lawrencek1992@reddit
It sounds like your opinion of doing good means that someone doesn’t need to look up syntax and knows imports available to them without dbl checking. You and I don’t assess “good” in the same way. I couldn’t care less about that. I care about whether they can write readable and maintainable code and whether or not they can solve a problem and iterate effectively on the solution.
Responsible-Hold8587@reddit
I don't judge interview code on whether it's idiomatic because the companies they worked for may have significantly different style guides and ideas of what idiomatic code looks like.
I judge whether it is objectively difficult to understand, not whether they use snake case or camel case.
breesyroux@reddit
You are good at this. Unfortunately OP is still giving good advice because he is not and that will be true for plenty of people running interviews
bashar_al_assad@reddit
Even with a good interviewer, interviews are already stressful enough. Doing them in a programming language you're not completely comfortable with at that current point in time is going to do nothing but add to your stress and make it more likely that you make mistakes.
commonsearchterm@reddit (OP)
Python has pep8 which is mostly followed for all of these style issues and questions of what is idiomatic.
The interview is your chance to give your best impression, the code you write will be the only way you can be judged and it'll be assumed to be the best of what you can do.
If you come into an coding interview and what is being perceived as "this is the best of what Im capable of doing" is, sloppy code and that's shows your unfamiliar with the language and the ecosystem. How are you giving me and the rest of the hiring committee the confidence that you'll learn, if after a few years of professional coding, your performance looks bad? If you write in a language 40 hours a week, for years, why are you picking a different one for the interview?
Were not buddies in the interview, your trying to convince a group of strangers that you don't suck at your craft.
There are good programmers out there that don't struggle with these things.
Business-Row-478@reddit
Python is widely used and understood by many. It also has tons of extra language features compared to other languages and can be used much more like pseudocode.
Responsible-Hold8587@reddit
Maybe their last job didn't follow pep8, I don't care. They can learn whatever style guide we want once they earn the job.
I interview enough people that fail the interview for way more important reasons. I could raise the bar further and fail basically everybody who interviews looking for the perfect candidate, but we will never hire anybody and just waste everybody's time.
And I hate to go there, but maybe others will appreciate the irony of you making a big point about how unfamiliarity with language is immediately disqualifying while you misuse the word "your" multiple times :)
commonsearchterm@reddit (OP)
Grammar posts are for when you have nothing else to say. Good thing we're developers and not English teachers though.
Solving the problem is the bare minimum. Everything else makes your case as a candidate stronger. If you want to increase your chances of being hired, then you should do what you can. Or wrote shit code then complain online becasue your not getting hired.
People are coming to these interviews and doing very well though. Some do poorly but ensure me they write another language all of the time.
If you give interviews then you should know plenty of people don't struggle with writing good code in their language if choice.
True_Skin7151@reddit
I've always found candidates struggling with syntax with java/c++ etc. I would prefer to write in scripting languages like ruby or python. Allows them to focus on interview questions rather than syntax which is useless for me.
PS: I do allow people to choose any language they want The only condition is that it has to work on coderbyte.
Visual_Counter5306@reddit
How can someone struggle with c++ / java syntax?? They are the most logical and the most simple syntaxes out there.. do these dudes ever saw golang or rust?
True_Skin7151@reddit
People are used to basic structures available to them. IDEs telling the method names/signatures.
Visual_Counter5306@reddit
I think english is the best, regardless your mother language..
yolk_sac_placenta@reddit
I had a livecoding interview recently which was at a company that said their interviews are language-agnostic and I could choose any language I want. I chose Ruby because I most recently worked at a rails shop so I was current in it. Well, they said in couldn't use that and I actually had to use Go for their "language agnostic" interview. That's okay, I've done plenty of Go but it has been a good two years, so I grinded some LC in Go to shake the dust off. I didn't love the idea but it's what I was handed.
Well, when the interview started it turned out the interviewer thought the Go program was incomplete or incorrect, so I actually had to do it in Python. I've also written plenty of Python over the years but it's been quite a while and I was pretty cold. I basically got my hands around the issue, but I was tripped up by little syntactic differences like
next(a keyword I would use in Ruby) being syntactically correct but a noop; so I had a bug when I used it instead ofcontinue. (I found and fixed this and "passed" this interview by the way).I didn't choose the language, but this is exactly the kind of "don't write X in Python" problem you're objecting to, and I have to say, I think it's bogus. It's a "problem" that's fixed in, like, two days of use in your job environment; in the "real job" it wouldn't even lint; the actual editor I used would have painted it if I weren't in some wonky web terminal. So why would you reject someone who understands the assignment and how to program against it because they don't know some piece of language trivia? Let alone something like how Python's godawful imports work or who allow a camel case variable name to offend your sensibilities? Or who have to look up a particular language's opinion on how to spell switch/case/when/try/catch/begin/rescue/maybe?
phoenixmatrix@reddit
Yup. We changed our interview process to be very free form, and let the candidates pick their environment, language, etc.
I'm used to people complaining online that they can't solve something because its a fake environment, not a real problem, not real conditions, etc. But the amount of time someone will start by pulling a framework in that they've never used before is...telling.
chikamakaleyley@reddit
"the one you know best"
Sometime last year i applied for a frontend role, but ultimately i ended up interviewing for a fullstack role (fe leaning) for placement in a candidate pool
that wasn't really communicated to me well and as far as I knew i was still going for the FE role. When the interview arrived I found out that I would be taking both FE/BE assessments, but I made it clear to them that I was told it would be for the frontend role.
Regardless, I crushed the FE part and I guess since the interview understood my situation (maybe this has happened before) he sounded like my FE assessment was good enough and that the BE assessment was just fundamental and they wanted to code the solution in Java
I said "well if this is an assessment for my Java skills then it's not gonna be a good one, I just haven't written it in a while (maybe a yr and a half)." Still the interviewer sounded okay to end the call but the last moment i said
The question was just to write the class def of a Queue. I even wasn't exact in my JS class syntax but I for sure knew a Queue and its methods and could build it all out.
I ended up passing that round, passing the final, and got approved for the pool and made an offer after my first match call. Strong team in a F500, amazing benefits.
I tend to think if I just didn't offer to try the BE assessment, that I wouldn't have been moved on.
dashingThroughSnow12@reddit
Really? People do that? TIL.
For coding interviews I use Java mainly. It is ingrained in my brain. I’ve had dreams in Java. Multiple times. It would be hard for me to imagine going into an interview in a language I’m unused to.
There was one time where (I think it was Coderpad) I started in Java but when they gave me the question I swapped to ECMAScript. I had happened to know a handful of built-ins that made the problem trivial.
I only have a few thousand hours of actual coding experience for ECMAScript. Probably nearing 10K in Golang. It definitely felt like a flyer to pull out ECMAScript with so little practical experience on the keyboard with it.
reyarama@reddit
ECMAScript is just JS, right?
joebgoode@reddit
Pick your best language for general live coding interview.
Always pick Java / C++ / Python for DSA interviews. No point in using anything beside that for LeetCode.