I was recently asked by a job seeker whether they should be honest about already knowing how to do a coding question. In short, my answer is "no." Don't just jump into the discussion yet, let me nuance my reply before you disagree. And I do expect disagreement.
My answer hinges on three points:
- Admitting you know the question puts you at an unfair disadvantage
- There's nothing dishonest about not saying you know it
- It doesn't seem to matter
The advice focuses on a question in a coding interview. Say, for example, you're at Google, and they ask you to code the search through a dice matrix for words (a game like Boggle). This actually happened to me, and I foolishly said, "hey, I did that game before." Then I got a new question. One I failed on.
My "honesty" hurt me. I effectively punished myself for knowing how to code something. That doesn't sound right. Why should you be at a disadvantage for knowing something?
In preparation for an interview, you'll likely do many small coding challenges. Some of these could end up being interview questions, or minor variations thereof. Your preparation should be an advantage, not a disadvantage.
It's not dishonest
Unless the interviewer asks if you know the question, there's no expectation that you volunteer that information. This isn't some moral quandary -- it's not like if see Sarah looking for her glasses, and you know where they are. Clearly not helping Sarah makes you a bit of a bad person, as you lose nothing by helping.
But the dynamic in an interview is different. The interviewer does not need to know whether you know the question -- it's not relevant to their assessment. Plus, you lose something by volunteering information. It's not a win-win or even zero-loss situation.
It's a similar reason why the right against self-incrimination is enshrined in law in many countries. There are some situations where volunteering information will only get you in trouble.
Funny thing, I've had a few people admit to me that they'd know my question. Over on interviewing.io, where I give pre-screening and practice interviews, my question shows up in the showcase. Some people have said they'd seen my showcase.
I said, "okay" and proceeded to ask the same coding question.
It didn't seem to make a difference, as the candidates did not excel at the question. They revealed their coding ability just the same. Perhaps they remembered something that helped, but isn't that what programming is? Taking bits of knowledge, you already know and applying them.
Even if you know the question, you still have to write the code, and you still have to explain it. You still have to demonstrate your understanding.
Don't admit you know the question -- well, maybe you can if you don't like the current question and just want a new one. I see no value in admitting that you've already coded something before. It can put you at a disadvantage, there's nothing dishonest about withholding that information, and it doesn't seem to matter.
Keep in mind that the question you get comes down to luck anyway. Why should you be punished for preparing and knowing the question?
I'm working on some interview classes over at SkillShare. Follow me there to keep updated. Hopefully this month I should have something up.