Whiteboard coding interviews suck.
I've been there many times, on both sides of the table
I've struggled and I've seen others struggle
I will help you increase your chances of getting a great offer
This is not just another 'How to pass the Google interview' guide.
Thread
I've been there many times, on both sides of the table
I've struggled and I've seen others struggle
I will help you increase your chances of getting a great offer
This is not just another 'How to pass the Google interview' guide.
Thread

This is what I did
My own ideas based on my experiences as an interviewee and an interviewer
I did this while I had a 9-5 job, studying for months.
I don't have a degree in CS.
I probably studied too much, but if you know what you want
you do whatever it takes
My own ideas based on my experiences as an interviewee and an interviewer
I did this while I had a 9-5 job, studying for months.
I don't have a degree in CS.
I probably studied too much, but if you know what you want
you do whatever it takes
This thread is focused on whiteboard coding interviews.
I'll create another one for systems design, but the same ideas and methods can be used to prepare them.
I'll cover:
Mindset
How to practice
Tech knowledge
More resources
Let's get started with mindset
I'll create another one for systems design, but the same ideas and methods can be used to prepare them.
I'll cover:




Let's get started with mindset
A. Mindset
1. Interviewers are human
Don't put them on a pedestal
Focus on what you can control:
Some interviewers enjoying torturing candidates. They’re a minority, but this may happen
Some interviewers would not hire some of their colleagues
That's why...
1. Interviewers are human




That's why...
2. Focus on the process
The results will come
After every problem/interview:
What did I learn?
What went well
Went needs to be improved (from CS topics, your preparation, your communication, etc)
Self-reflection is a great teacher
The results will come
After every problem/interview:



Self-reflection is a great teacher
3. Apply to multiples companies in reverse order of preference
Better position to negotiate
Reduce the pressure you put on yourself
Give you more opportunities to practice



B. How to practice
1. Emulate the interview setup
Time yourself
No distractions - phone, internet
Don't look at the solution
Think out loud
Mock interviews are good too. Find a friend (virtually too) and practice!
1. Emulate the interview setup




Mock interviews are good too. Find a friend (virtually too) and practice!
2. Keep a log of common mistakes you make
This is an extremely underrated tip
You need to know where you usually underperform so that you can fix it
Go through the list often.
Review them and practice mindfully to make sure you do no make them during your interview
This is an extremely underrated tip
You need to know where you usually underperform so that you can fix it
Go through the list often.
Review them and practice mindfully to make sure you do no make them during your interview
3. Iterations
1st focus on quantity
To detect patterns, go through many problems:
What algorithm/DS is good for this type of problem?
Why?
Learn Big O analysis
Then on quality (no need to solve 5784 problems)
Code on Notepad
For on-site -> On Paper or whiteboard
1st focus on quantity
To detect patterns, go through many problems:



Then on quality (no need to solve 5784 problems)


You need to be in good coding shape
You can't afford to spend 5 minutes to write a while loop
Be very comfortable in your preferred programming language (you can usually choose it)
You can't afford to spend 5 minutes to write a while loop
Be very comfortable in your preferred programming language (you can usually choose it)
C. What you should know
Do not base your preparation on memorizing solutions.
This will likely lead to you giving the perfect solution to the wrong problem.
I'll enumerate the main topics you should be familiar with
You must know them cold if you target at FAANG companies
Do not base your preparation on memorizing solutions.
This will likely lead to you giving the perfect solution to the wrong problem.
I'll enumerate the main topics you should be familiar with
You must know them cold if you target at FAANG companies
1. Data structures
Theoretically and how to use them in code
Arrays
Strings
Lists
Stacks and queues
Trees (and tries)
Binary search trees (balanced)
Hash tables
Sets (disjoint sets too if you can)
Graphs
Theoretically and how to use them in code









2. Algorithms
Binary search
Sorting
Recursion
Divide and conquer
Dynamic programming
Greedy
Alg on strings
On graphs (very important)
DFS
BFS
Minimum spanning trees: Kruskal and Prim
Shortest path: Dijkstra and Floyd-Warshall
Discrete math can help.







On graphs (very important)




Discrete math can help.
3. Programming languages
I've always used C++, but the following good for interviews too:
Python
JavaScript
Java
Since most interviewers know them
Most candidates tend to go for Python
Whichever you choose, make sure you know it well
I've always used C++, but the following good for interviews too:



Since most interviewers know them
Most candidates tend to go for Python
Whichever you choose, make sure you know it well
D. Resources I used
Introduction to algorithms
You don't need to go through the whole book, but it's a good complement to the course in the next tweet
Introduction to algorithms
You don't need to go through the whole book, but it's a good complement to the course in the next tweet
MIT courses on algorithms https://twitter.com/CodingLanguages/status/1274635167919943680?s=20
The canonical Cracking the coding interview.
I did not start here though.
I only completed the problems in the last 2 sections,
after I finished the book coming in the next tweet.
I did not start here though.
I only completed the problems in the last 2 sections,
after I finished the book coming in the next tweet.
Elements of programming interviews
This is an excellent book
I keep coming back to it before every interview
The questions are hard, so you will be very well prepared
There are C++, Python and Java versions
This is an excellent book
I keep coming back to it before every interview
The questions are hard, so you will be very well prepared
There are C++, Python and Java versions
For more problems, I only used @LeetCode https://www.leetcode.com/
You'll have more than enough with the free problems
You'll have more than enough with the free problems
I recommend checking out my thread on top mistakes you want to avoid in a coding interview
All this comes from my experience. I would love to get more suggestions from you.
Don't forget to contact me when you land your next job!!
Good luck https://twitter.com/CodingLanguages/status/1282288332203003905?s=20
All this comes from my experience. I would love to get more suggestions from you.
Don't forget to contact me when you land your next job!!
Good luck https://twitter.com/CodingLanguages/status/1282288332203003905?s=20