contents: improve SEO of coding interview pages

This commit is contained in:
Yangshun
2022-02-03 09:13:01 +08:00
parent e90fead671
commit fb606098af
14 changed files with 125 additions and 23 deletions

View File

@ -3,7 +3,7 @@ id: best-practice-questions
title: Best practice questions title: Best practice questions
sidebar_label: 🔥 Best practice questions sidebar_label: 🔥 Best practice questions
description: The best practice questions to prepare for algorithmic coding interviews by the author of Blind 75 spread across a 5-week schedule description: The best practice questions to prepare for algorithmic coding interviews by the author of Blind 75 spread across a 5-week schedule
keywords: [algorithm, interview, questions, leetcode, blind 75] keywords: [algorithm, coding, interview, questions, leetcode, blind 75]
--- ---
<head> <head>
@ -13,7 +13,7 @@ keywords: [algorithm, interview, questions, leetcode, blind 75]
Hey there, the author of Blind 75 here 👋! Hey there, the author of Blind 75 here 👋!
Practicing is the best way to prepare for coding interviews. Years ago, I curated a list of the most important 75 questions on [LeetCode](https://leetcode.com). Many other LeetCode questions are a mash of the techniques from these individual questions. I used this list in my last job hunt to only do the important questions. Practicing is the best way to prepare for coding interviews. LeetCode has over a thousand questions. Which should you practice? Hence years ago, I curated a list of the most important 75 questions on [LeetCode](https://leetcode.com). Many other LeetCode questions are a mash of the techniques from these individual questions. I used this list in my last job hunt to only do the important questions.
I [shared this list on Blind](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU) by extracting the questions from [my freeCodeCamp article](https://www.freecodecamp.org/news/coding-interviews-for-dummies-5e048933b82b/) to save peoples' time when revising and someone reposted this list on [the LeetCode forum](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions). It somehow blew up and became super famous in the coding interview scene, people even gave it a name - **Blind 75**. The Blind 75 questions as a LeetCode list can be found [here](https://leetcode.com/list/xi4ci4ig/). I [shared this list on Blind](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-100-LeetCode-Questions-to-Save-Your-Time-OaM1orEU) by extracting the questions from [my freeCodeCamp article](https://www.freecodecamp.org/news/coding-interviews-for-dummies-5e048933b82b/) to save peoples' time when revising and someone reposted this list on [the LeetCode forum](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions). It somehow blew up and became super famous in the coding interview scene, people even gave it a name - **Blind 75**. The Blind 75 questions as a LeetCode list can be found [here](https://leetcode.com/list/xi4ci4ig/).

View File

@ -1,9 +1,17 @@
--- ---
id: cheatsheet id: cheatsheet
title: Cheatsheet title: Coding interview cheatsheet
description: Things you should and shouldn't do during the coding interview
sidebar_label: Cheatsheet
keywords: [algorithm, coding, interview, cheatsheet, checklist]
--- ---
This is a straight-to-the-point, distilled list of technical interview Do's and Don'ts, mainly for algorithmic interviews. Some of these may apply to only phone screens or 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. <head>
<title>Coding interview cheatsheet | Tech Interview Handbook</title>
<meta property="og:title" content="Coding interview cheatsheet | Tech Interview Handbook"/>
</head>
This is a straight-to-the-point, distilled list of technical interview Do's and Don'ts, mainly for algorithmic coding interviews. Some of these may apply to only phone screens or 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.
#### Legend #### Legend

View File

@ -2,14 +2,30 @@
id: coding-interview id: coding-interview
title: Coding interviews title: Coding interviews
sidebar_label: Overview sidebar_label: Overview
keywords:
[
algorithm,
coding,
interview,
questions,
leetcode,
blind 75,
technical,
programming,
]
--- ---
<head>
<title>All you need to know about acing the coding interview | Tech Interview Handbook</title>
<meta property="og:title" content="All you need to know about acing the coding interview | Tech Interview Handbook"/>
</head>
Coding interviews are tough. But fortunately, there's a tried and proven method to get better at them. With a combination of studying, practicing questions and doing mock interviews, getting that dream job can become a reality. Coding interviews are tough. But fortunately, there's a tried and proven method to get better at them. With a combination of studying, practicing questions and doing mock interviews, getting that dream job can become a reality.
1. Decide on a programming language 1. Decide on a [programming language](./picking-a-language.md)
1. Study CS fundamentals 1. Study [Computer Science fundamentals](./study-and-practice.md)
1. Practice solving algorithm questions 1. [Practice](./study-and-practice.md) solving algorithm questions
1. Internalize the [Do's and Don'ts of interviews](./cheatsheet.md) 1. Internalize the [Do's and Don'ts of interviews](./cheatsheet.md)
1. Know what [signals and behaviors](./coding-signals.md) interviewers are looking out for 1. Know what [signals and behaviors](./coding-signals.md) interviewers are looking out for
1. Practice doing mock interviews 1. Practice doing [mock interviews](./mock-interviews.md)
1. Interview successfully to get the job 1. Interview successfully to get the job

View File

@ -1,13 +1,19 @@
--- ---
id: coding-signals id: coding-signals
title: Coding signals title: Coding interview signals
keywords: [algorithm, coding, interview, signals, behavior]
--- ---
<head>
<title>Signals interviewers look out for during coding interviews | Tech Interview Handbook</title>
<meta property="og:title" content="Signals interviewers look out for during coding interviews | Tech Interview Handbook"/>
</head>
The point of interviews is for interviewers to extract signals from certain candidate behaviors. In coding interviews, the signals can be broadly classified into the following categories: Problem Solving, Technical Competency, Testing, and Communication. The point of interviews is for interviewers to extract signals from certain candidate behaviors. In coding interviews, the signals can be broadly classified into the following categories: Problem Solving, Technical Competency, Testing, and Communication.
When interviewers take down interview feedback, these are likely what is on their feedback sheet. When interviewers take down interview feedback, these are likely what is on their feedback sheet.
Refer to the [Facebook's Onsite Interview Guide](https://www.facebook.com/careers/swe-prep-onsite) for more information. Refer to the [Meta/Facebook's Onsite Interview Guide](https://www.metacareers.com/swe-prep-onsite/) for more information.
## Communication ## Communication

View File

@ -1,9 +1,15 @@
--- ---
id: during-coding-interview id: during-coding-interview
title: During the coding interview title: During the coding interview
description: The coding interview can be divided into stages, follow these recommended steps for each stage to ace the coding interview
--- ---
Congratulations, you are ready to put your skills into practice! In a real coding interview, you will be given a technical question (or questions) by the interviewer, write code in a real-time collaborative editor (phone screen/virtual onsite) or on a whiteboard (onsite) to solve the problem within 3045 minutes. This is where the real fun begins! <head>
<title>What to do during the coding interview | Tech Interview Handbook</title>
<meta property="og:title" content="What to do during the coding interview | Tech Interview Handbook"/>
</head>
Congratulations, you are ready to put your practice to the test! In a real coding interview, you will be given a technical question (or questions) by the interviewer, write code in a real-time collaborative editor (phone screen/virtual onsite) or on a whiteboard (onsite) to solve the problem within 3045 minutes. This is where the real fun begins!
Your interviewer will be looking out for signals that suggest you fit the requirements of the role and it is up to you to display those signals to them. Initially it may feel weird to be talking while you are coding as most programmers do not have the habit of explaining out loud as they are typing code. However, it is hard for the interviewer to know what you are thinking just by looking at the code that you type. If you communicate your approach to the interviewer before you start coding, you can validate your approach with them and the both of you can agree upon an acceptable approach. Your interviewer will be looking out for signals that suggest you fit the requirements of the role and it is up to you to display those signals to them. Initially it may feel weird to be talking while you are coding as most programmers do not have the habit of explaining out loud as they are typing code. However, it is hard for the interviewer to know what you are thinking just by looking at the code that you type. If you communicate your approach to the interviewer before you start coding, you can validate your approach with them and the both of you can agree upon an acceptable approach.
@ -32,6 +38,7 @@ Some common questions you can ask:
- What are some extreme cases of the input? - What are some extreme cases of the input?
- Can I destroy the original array/graph/data structure? - Can I destroy the original array/graph/data structure?
- How is the input stored? If you are given a dictionary of words, is it a list of strings or a Trie? - How is the input stored? If you are given a dictionary of words, is it a list of strings or a Trie?
- If the input appears to be sorted, clarify if that is expected
After you have sufficiently clarified the scope and intention of the problem, explain your high level approach to the interviewer even if it is a naive solution. If you are stuck, consider various approaches and explain out loud why it will/will not work. Sometimes your interviewer might drop hints and lead you towards the right path. After you have sufficiently clarified the scope and intention of the problem, explain your high level approach to the interviewer even if it is a naive solution. If you are stuck, consider various approaches and explain out loud why it will/will not work. Sometimes your interviewer might drop hints and lead you towards the right path.
@ -50,8 +57,9 @@ Getting stuck during coding interviews is extremely common. But do not worry, th
- Think about how you would solve it without a program - Think about how you would solve it without a program
- You may spot a pattern and come up with a general algorithm for it - You may spot a pattern and come up with a general algorithm for it
- Recall past questions related to the topic, what similar questions in the past have you encountered and what techniques did you use to solve them? - Recall past questions related to the topic, what similar questions in the past have you encountered and what techniques did you use to solve them?
- Enumerate through the common data structures and whether they can be applied to the question. There really aren't that many - stack, queue, dictionary, heap, graph, etc. - Enumerate through the common data structures and algorithms whether they can be applied to the question. There really aren't that many - stack, queue, dictionary, heap, graph, etc.
- Dictionaries/maps are extremely common in making algorithms more efficient - Dictionaries/maps are extremely common in making algorithms more efficient
- If the input appears to be sorted (or partially sorted), binary search should be one of the first things to try
- Look out for repeated work and determine if you can cache those computations - Look out for repeated work and determine if you can cache those computations
- Trade off memory for speed - Trade off memory for speed

View File

@ -1,6 +1,7 @@
--- ---
id: interview-formats-top-companies id: interview-formats-top-companies
title: Interview format at top companies title: Interview format at top companies
description: Interview formats of the top tech companies. Know what to expect and prepare well for them
sidebar_label: Top companies sidebar_label: Top companies
--- ---

View File

@ -1,6 +1,7 @@
--- ---
id: interview-formats id: interview-formats
title: Interview formats overview title: Interview formats overview
description: Common interview formats of tech companies and what they entail
sidebar_label: Overview sidebar_label: Overview
--- ---

View File

@ -3,12 +3,21 @@ id: mock-interviews
title: Mock interviews title: Mock interviews
--- ---
<head>
<title>Improve your technical interviewing skills through mock interviews | Tech Interview Handbook</title>
<meta property="og:title" content="Improve your technical interviewing skills through mock interviews | Tech Interview Handbook"/>
</head>
Interviewing is a skill that you can get better at. The steps mentioned above can be rehearsed over and over again until you have fully internalized them and following those steps become second nature to you. A good way to practice is to find a friend to partner with and the both of you can take turns to interview each other. Interviewing is a skill that you can get better at. The steps mentioned above can be rehearsed over and over again until you have fully internalized them and following those steps become second nature to you. A good way to practice is to find a friend to partner with and the both of you can take turns to interview each other.
## interviewing.io
A great resource for practicing mock coding interviews would be [interviewing.io](https://iio.sh/r/DMCa). interviewing.io provides anonymous practice technical interviews with Google and Facebook engineers, which can lead to real jobs and internships. By virtue of being anonymous during the interview, the inclusive interview process is de-biased and low risk. At the end of the interview, both interviewer and interviewees can provide feedback to each other for the purpose of improvement. Doing well in your mock interviews will unlock the jobs page and allow candidates to book interviews (also anonymously) with top companies like Uber, Lyft, Quora, Asana and more. You can also book mock interviews for more specific roles such as Mobile, Front End, Engineering Management. For those who are totally new to technical interviews, you can even view [recorded interviews](https://interviewing.io/recordings) and see how phone interviews are like. Read more about them [here](https://techcrunch.com/2017/09/27/interviewing-io-hopes-to-close-the-engineer-diversity-gap-with-anonymous-interviews/). A great resource for practicing mock coding interviews would be [interviewing.io](https://iio.sh/r/DMCa). interviewing.io provides anonymous practice technical interviews with Google and Facebook engineers, which can lead to real jobs and internships. By virtue of being anonymous during the interview, the inclusive interview process is de-biased and low risk. At the end of the interview, both interviewer and interviewees can provide feedback to each other for the purpose of improvement. Doing well in your mock interviews will unlock the jobs page and allow candidates to book interviews (also anonymously) with top companies like Uber, Lyft, Quora, Asana and more. You can also book mock interviews for more specific roles such as Mobile, Front End, Engineering Management. For those who are totally new to technical interviews, you can even view [recorded interviews](https://interviewing.io/recordings) and see how phone interviews are like. Read more about them [here](https://techcrunch.com/2017/09/27/interviewing-io-hopes-to-close-the-engineer-diversity-gap-with-anonymous-interviews/).
I have used interviewing.io both as an interviewer and an interviewee and found the experience to be really great! [Aline Lerner](https://twitter.com/alinelernerLLC), the CEO and co-founder of interviewing.io and her team are passionate about revolutionizing the technical interview process and helping candidates to improve their skills at interviewing. She has also published a number of technical interview-related articles on the [interviewing.io blog](http://blog.interviewing.io/). I have used interviewing.io both as an interviewer and an interviewee and found the experience to be really great! [Aline Lerner](https://twitter.com/alinelernerLLC), the CEO and co-founder of interviewing.io and her team are passionate about revolutionizing the technical interview process and helping candidates to improve their skills at interviewing. She has also published a number of technical interview-related articles on the [interviewing.io blog](http://blog.interviewing.io/).
## Pramp
Another platform that allows you to practice coding interviews is [Pramp](https://pramp.com/). Where interviewing.io matches potential job seekers with seasoned technical interviewers, Pramp takes a different approach. Pramp pairs you up with another peer who is also a job seeker and both of you take turns to assume the role of interviewer and interviewee. Pramp also prepares questions for you, along with suggested solutions and prompts to guide the interviewee. Another platform that allows you to practice coding interviews is [Pramp](https://pramp.com/). Where interviewing.io matches potential job seekers with seasoned technical interviewers, Pramp takes a different approach. Pramp pairs you up with another peer who is also a job seeker and both of you take turns to assume the role of interviewer and interviewee. Pramp also prepares questions for you, along with suggested solutions and prompts to guide the interviewee.
Personally, I am not that fond of Pramp's approach because if I were to interview someone, I would rather choose a question I am familiar with. Also, many users of the platform do not have the experience of being interviewers and that can result in a horrible interview experience. There was once where my matched peer, as the interviewer, did not have the right understanding of the question and attempted to lead me down the wrong path of solving the question. However, this is more of a problem of the candidate than the platform though. Personally, I am not that fond of Pramp's approach because if I were to interview someone, I would rather choose a question I am familiar with. Also, many users of the platform do not have the experience of being interviewers and that can result in a horrible interview experience. There was once where my matched peer, as the interviewer, did not have the right understanding of the question and attempted to lead me down the wrong path of solving the question. However, this is more of a problem of the candidate than the platform though.

View File

@ -1,8 +1,27 @@
--- ---
id: picking-a-language id: picking-a-language
title: Picking a language title: Picking a programming language
sidebar_label: Picking a language
description: There are multiple programming languages you can choose from for coding interviews, which should you pick?
keywords:
[
algorithms,
programming,
language,
coding,
interview,
python,
java,
c++,
javascript,
]
--- ---
<head>
<title>Which programming language is best for coding interviews? | Tech Interview Handbook</title>
<meta property="og:title" content="Which programming language is best for coding interviews? | Tech Interview Handbook"/>
</head>
Before anything else, you need to pick a programming language to do your interviews in. Most companies will let you code in any language you want, the only exception I know being Google, where they only allow candidates to pick from Java, C++, JavaScript or Python for their algorithmic coding interviews. Before anything else, you need to pick a programming language to do your interviews in. Most companies will let you code in any language you want, the only exception I know being Google, where they only allow candidates to pick from Java, C++, JavaScript or Python for their algorithmic coding interviews.
## Some languages are more suited for interviews ## Some languages are more suited for interviews

View File

@ -1,8 +1,15 @@
--- ---
id: self-introduction id: self-introduction
title: Self introduction title: Self introduction
description: Tips and techniques on how to leave a lasting impression on the interviewer through your self introduction
keywords: [interview, self introduction, impression, best]
--- ---
<head>
<title>How to do a killer self introduction in an interview | Tech Interview Handbook</title>
<meta property="og:title" content="How to do a killer self introduction in an interview | Tech Interview Handbook"/>
</head>
Interviewers want to work with candidates they like. Leave a good/deep impression and it will increase your chances of success. Most of us are not strangers to self introductions as we meet new people now and then and have to introduce ourselves every once in a while. However, self introductions in interviews are slightly different from real life - you need to tweak it to your advantage - tailor the self introduction to the role and company you are applying for! Your self introduction evolves as you grow and are at a different stage of your career. Interviewers want to work with candidates they like. Leave a good/deep impression and it will increase your chances of success. Most of us are not strangers to self introductions as we meet new people now and then and have to introduce ourselves every once in a while. However, self introductions in interviews are slightly different from real life - you need to tweak it to your advantage - tailor the self introduction to the role and company you are applying for! Your self introduction evolves as you grow and are at a different stage of your career.
When being asked to introduce yourself, you can rephrase the question into: When being asked to introduce yourself, you can rephrase the question into:

View File

@ -1,11 +1,27 @@
--- ---
id: study-and-practice id: study-and-practice
title: Study and practice title: Study and practice
description: Mastery of Computer Science fundamentals, identifying question patterns, practicing good coding style is the key to improving in coding interviews
keywords:
[
algorithm,
coding,
question,
pattern,
computer science,
coding style,
interview,
]
--- ---
## Recap computer science fundamentals <head>
<title>Efficient ways to study and practice for coding interviews | Tech Interview Handbook</title>
<meta property="og:title" content="Efficient ways to study and practice for coding interviews | Tech Interview Handbook"/>
</head>
If you have been out of college for a while, it is highly advisable to review CS fundamentalsAlgorithms and Data Structures. Personally, I prefer to review as I practice, so I scan through my college notes and review the various algorithms as I work on algorithm problems from LeetCode and Cracking the Coding Interview. ## Recap Computer Science fundamentals
If you have been out of college for a while, it is highly advisable to review Computer Science fundamentalsAlgorithms and Data Structures. Personally, I prefer to review as I practice, so I scan through my college notes and review the various algorithms as I work on algorithm problems from LeetCode.
This [interviews repository](https://github.com/kdn251/interviews) by Kevin Naughton Jr. served as a quick refresher for me. This [interviews repository](https://github.com/kdn251/interviews) by Kevin Naughton Jr. served as a quick refresher for me.
@ -19,7 +35,21 @@ Next, gain familiarity and mastery of the algorithms and data structures in your
### Practice coding questions ### Practice coding questions
Practice coding algorithms using your chosen language. While [Cracking the Coding Interview](http://www.crackingthecodinginterview.com/) is a good resource for practice, I prefer being able to type code, run it and get instant feedback. There are various Online Judges such as [LeetCode](https://leetcode.com/), [HackerRank](https://www.hackerrank.com/) and [CodeForces](http://codeforces.com/) for you to practice questions online and get used to the language. From experience, LeetCode questions are the most similar to the kind of questions being asked in interviews whereas HackerRank and CodeForces questions resemble competitive programming questions. If you practice enough LeetCode questions, there is a good chance that you would have seen/done your actual interview question (or some variant) on LeetCode before. If you are more of a visual person, [Coderust](https://www.educative.io/collection/5642554087309312/5679846214598656?aff=x23W) explains the common algorithm questions through step-by-step visualizations which makes understanding the solutions much easier. Practice coding algorithms using your chosen language. While "Cracking the Coding Interview" is a good resource for practice, I prefer being able to type code, run it and get instant feedback. There are various Online Judges such as [LeetCode](https://leetcode.com/), [HackerRank](https://www.hackerrank.com/) and [CodeForces](http://codeforces.com/) for you to practice questions online and get used to the language. From experience, LeetCode questions are the most similar to the kind of questions being asked in interviews whereas HackerRank and CodeForces questions resemble competitive programming questions. If you practice enough LeetCode questions, there is a good chance that you would have seen/done your actual interview question (or some variant) on LeetCode before. If you are more of a visual person, [Coderust](https://www.educative.io/collection/5642554087309312/5679846214598656?aff=x23W) explains the common algorithm questions through step-by-step visualizations which makes understanding the solutions much easier.
### Broaden exposure
Gain a broad exposure to questions from various topics. In the second half of the article I mention algorithm topics and practice questions for each topic. If you can spare the time, do around 100200 LeetCode questions of varying topics and you should be good. If you are short on time or not sure where to start, the [Best Practice Questions](./best-practice-questions.md) page tells you the best LeetCode questions to practice.
### Identify question patterns
As of writing, LeetCode has thousands of questions available. Which should you practice? It is not a good use of time to practice too many questions as after a while, you will realize that some questions are variants of one another and involve using similar techniques you've seen before. The trick here is to identify the question pattern and the technique you can use to solve variants of this question. Once you're familiar with a pattern, you'll be able to solve dozens of problems with a technique. Some techniques include - sliding window, two pointers, matrix traversal. The ["Grokking the coding interview" course by Educative](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) shows you more techniques.
:::tip Expert tip
Learn and understand patterns, not memorize answers!
:::
### Space/time complexities ### Space/time complexities
@ -33,8 +63,4 @@ Read up on the recommended coding style for your language and stick to it. If yo
Find out and be familiar with the common pitfalls and caveats of the language. If you point them out during the interview and intelligently avoid falling into them, you will usually impress the interviewer and that results in bonus points for your feedback, regardless of whether the interviewer is familiar with the language or not. Find out and be familiar with the common pitfalls and caveats of the language. If you point them out during the interview and intelligently avoid falling into them, you will usually impress the interviewer and that results in bonus points for your feedback, regardless of whether the interviewer is familiar with the language or not.
### Broaden exposure **The key to interview success is practice, practice and more practice!**
Gain a broad exposure to questions from various topics. In the second half of the article I mention algorithm topics and practice questions for each topic. If you can spare the time, do around 100200 LeetCode questions of varying topics and you should be good.
**Practice, practice and more practice!**

View File

@ -39,7 +39,7 @@ Alice is an Engineering Manager with 10 years of professional experience. Her ba
Hence the amount of bonus you receive can be highly variable and senior employees get a higher proportion of their total compensation from bonuses. Hence the amount of bonus you receive can be highly variable and senior employees get a higher proportion of their total compensation from bonuses.
## Equity/Stocks ## Equity/stocks
Equity is what differentiates a tech job from a non-tech one. Equity means a share of the company; this signifies ownership and motivates employees to work in the best interests of the company. They can be a significant portion of one's compensation, sometimes even more than the base salary, especially for senior employees. Equity is what differentiates a tech job from a non-tech one. Equity means a share of the company; this signifies ownership and motivates employees to work in the best interests of the company. They can be a significant portion of one's compensation, sometimes even more than the base salary, especially for senior employees.

View File

@ -145,6 +145,7 @@ export default React.memo(function SidebarAd() {
path.includes('coding') || path.includes('coding') ||
path.startsWith('/best-practice-questions') || path.startsWith('/best-practice-questions') ||
path.startsWith('/cheatsheet') || path.startsWith('/cheatsheet') ||
path.startsWith('/mock-interviews') ||
path.startsWith('/algorithms') path.startsWith('/algorithms')
) { ) {
return ( return (

View File

@ -274,7 +274,7 @@ function HowToUseStep({index, title, ctaLink, contents}) {
</div> </div>
<div class="card__footer"> <div class="card__footer">
<a <a
class="button button--secondary button--block" class="button button--primary button--block"
href={useBaseUrl(ctaLink)}> href={useBaseUrl(ctaLink)}>
Read now Read now
</a> </a>