From 077bc448b8ba4ecbc9d063cdf269986430d9e2fc Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Sat, 14 Oct 2017 15:36:46 +0800 Subject: [PATCH] Improve cheatsheet --- preparing/cheatsheet.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/preparing/cheatsheet.md b/preparing/cheatsheet.md index f89cdd5a..1029e492 100644 --- a/preparing/cheatsheet.md +++ b/preparing/cheatsheet.md @@ -3,14 +3,16 @@ 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 ["How to Prepare"](./) section. + ### 1. Before Interview **Do's** - Prepare pen, paper and earphones/headphones. -- Find a quiet environment with good internet connection. +- Find a quiet environment with good Internet connection. - Stay calm and composed. -- Familiarize yourself with the coding environment - CoderPad, CodePen, etc. +- Familiarize yourself with the coding environment (CoderPad/CodePen). Set up the coding shortcuts, turn on autocompletion, tab spacing, etc. - Dress comfortably. Usually you do not need to wear shirt and tie. ### 2. Introduction @@ -33,29 +35,29 @@ This is a straight-to-the-point distilled list of technical interview Do's and D - 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. -- State and explain the time and space complexity of your approaches. -- If stuck, think about related problems you've seen before and how they were solved. Check out the [tips](../algorithms) in this section. +- 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](../algorithms) in this section. **Don'ts** - 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 **Do's** -- Practice good coding style. Clear variable names, consistent operator spacing. +- 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. - Practice whiteboard space-management skills. -- Demonstrate mastery of the language. -- Let the interviewer talk. Usually if they speak, they are trying to give you hints or steer you in the right direction. +- Demonstrate mastery of your chosen programming language. **Don'ts** @@ -63,6 +65,7 @@ This is a straight-to-the-point distilled list of technical interview Do's and D - 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 @@ -86,10 +89,10 @@ This is a straight-to-the-point distilled list of technical interview Do's and D **Do's** -- Ask questions and ask good questions! Pick some questions from [here](../non-technical/questions-to-ask.md). -- Ask questions that are tailored to the company. +- Ask questions. More importantly, ask good and engaging questions that are tailored to the company! Pick some questions from [here](../non-technical/questions-to-ask.md). - Thank the interviewer. **Don'ts** - End the interview without asking any questions. +- Ask about interview performance. It can get awkward.