You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tech-interview-handbook/preparing/cheatsheet.md

4.0 KiB

Interview Cheatsheet

This is a straight-to-the-point distilled list of technical interview Do's and Don'ts. Some of these may apply to only phone screens on whiteboard interviews but most will apply to both. I revise this list before each of my interviews to remind myself of them and eventually internalized all of them to the point I do not have to rely on it anymore.

For a detailed walkthrough of interview preparation, refer to the "Preparing for a Coding Interview" section.

1. Before Interview

Things
Prepare pen, paper and earphones/headphones.
Find a quiet environment with good Internet connection.
Stay calm and composed.
Familiarize yourself with the coding environment (CoderPad/CodePen). Set up the coding shortcuts, turn on autocompletion, tab spacing, etc.
Dress comfortably. T-shirts and jeans are acceptable at most places.

2. Introduction

Things
Introduce yourself in a few sentences under a minute or two.
Mention interesting points that are relevant to the role you are applying for.
Sound enthusiastic! Speak with a smile and you will naturally sound more engaging.
Spend too long introducing yourself. The more time you spend talk the less time you have to code.

3. Upon Getting the Question

Things
Repeat the question back at the interviewer.
Clarify input format and range.
Work through a small example to ensure you understood the question.
Explain a high level approach even if it is a brute force one.
Improve upon the approach and optimize. Reduce duplicated work and cache repeated computations.
Think carefully, then state and explain the time and space complexity of your approaches.
If stuck, think about related problems you have seen before and how they were solved. Check out the tips in this section.
Ignore information given to you. Every piece is important.
Jump into coding straightaway.
Start coding without interviewer's green light.
Appear too unsure about your approach or analysis.

4. During Coding

Things
Practice good coding style. Clear variable names, consistent operator spacing, proper indentation, etc.
Defensive coding. Check for nulls, empty collections, etc.
Explain what you are coding/typing to the interviewer, what you are trying to achieve.
Type/write at a reasonable speed.
Write in a modular fashion. Extract out chunks of repeated code into functions.
Use the hints given by the interviewer.
Demonstrate mastery of your chosen programming language.
Demonstrate technical knowledge in data structures and algorithms.
Practice whiteboard space-management skills.
Remain quiet the whole time.
Spend too much time writing comments.
Use extremely verbose variable names.
Copy and paste code without checking.
Interrupt your interviewer when they are talking. Usually if they speak, they are trying to give you hints or steer you in the right direction.
Write too big (takes up too much space) or too small (illegible) if on a whiteboard.

5. After Coding

Things
Scan through your code for mistakes as if it was your first time seeing code written by someone else.
Check for off-by-one errors.
Come up with more test cases. Try extreme test cases.
Step through your code with those test cases.
Look out for places where you can refactor.
Reiterate the time and space complexity of your code.
Explain trade-offs and how the code/approach can be improved if given more time.
Immediately announce that you are done coding.
Argue with the interviewer.

6. Wrap Up

Things
Ask questions. More importantly, ask good and engaging questions that are tailored to the company! Pick some questions from this list.
Thank the interviewer.
End the interview without asking any questions.
Ask about your interview performance. It can get awkward.