This is meta-level post, about technique or general strategy for a tech interview. It’s not good enough to know all the material, you have to be able to get the interviewer to believe that too!

As the problem is being explained, be sure to make mental, or better yet, whiteboard notes on the corner. Ask questions up front, to expand the problem and your double-check your understanding. Repeat back the question in the way you understood it. This will help ensure you start to answer the actual question they asked.

Always explain what you’re doing and why, give the explanation of the algorithm and then start coding. You probably do not have the time to pseudo code the algorithm, unless it is going to be a complicated one.

When blog posts out there say “state any assumptions”, I now realise what they mean. Even if you think you know the “answer” they are looking for, don’t just slowly work towards it, you may be wrong and run out of time.

Just say:

I think this will be the answer, but let me see if I can prove it!

If you were right, great for you! They may let you continue then at some point say “I see you’re heading to the right answer, lets move on to something else”. If you never mentioned it, you wouldn’t be able to short-cut that question.

If your answer was wrong, they may guide you in a different way, sparing you that lost time. Take those hints they give you, or any pieces of information you are not using. Ask, “what am I not seeing about this”. They only tell you pertinent pieces of information, so use them.

If the interviewer repeats a point that you haven’t used yet, it must be critical for some reason, ask if you are going in the wrong way.

Remember that like TV or Radio, you need to be talking all the time as you are coding and thinking. No dead-air time. If you are not verbalising what you are doing, they don’t know, they can’t help, and they may loose interest.

The only way to work on these skills in advance, is with a friendly coach. Find a peer to work with.