mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-07-10 13:48:59 +08:00
Convert cheatsheet to table
This commit is contained in:
@ -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.|
|
||||
|
Reference in New Issue
Block a user