diff --git a/preparing/cheatsheet.md b/preparing/cheatsheet.md index eb46d162..350bfa96 100644 --- a/preparing/cheatsheet.md +++ b/preparing/cheatsheet.md @@ -7,92 +7,77 @@ For a detailed walkthrough of interview preparation, refer to the ["Preparing fo ### 1. Before Interview -**Do's** - -- 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. Usually you do not need to wear shirt and tie. +|| Things | +|-|-| +|**Do's**|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. Usually you do not need to wear shirt and tie.| ### 2. Introduction -**Do's** - -- 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. - -**Don'ts** - -- Spend too long introducing yourself. The more time you spend talk the less time you have to code. +|| Things | +|-|-| +|**Do's**|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.| +|**Don'ts**|Spend too long introducing yourself. The more time you spend talk the less time you have to code.| ### 3. Upon Getting the Question -**Do's** - -- 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](../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. +|| Things | +|-|-| +|**Do's**|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](../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, 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 your chosen programming language. - -**Don'ts** - -- 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. +|| Things | +|-|-| +|**Do's**|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 your chosen programming language.| +|**Don'ts**|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 -**Do's** - -- 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. - -**Don'ts** - -- Immediately announce that you are done coding. -- Argue with the interviewer. +|| Things | +|-|-| +|**Do's**|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.| +|**Don'ts**|Immediately announce that you are done coding.| +||Argue with the interviewer.| ### 6. Wrap Up -**Do's** - -- Ask questions. More importantly, ask good and engaging questions that are tailored to the company! Pick some questions from [this list](../non-technical/questions-to-ask.md). -- Thank the interviewer. - -**Don'ts** - -- End the interview without asking any questions. -- Ask about your interview performance. It can get awkward. +|| Things | +|-|-| +|**Do's**|Ask questions. More importantly, ask good and engaging questions that are tailored to the company! Pick some questions from [this list](../non-technical/questions-to-ask.md).| +||Thank the interviewer.| +|**Don'ts**|End the interview without asking any questions.| +||Ask about your interview performance. It can get awkward.|