Late to the comments, but personally a specific skill that went a long way especially for harder interviews was practicing graph problems (such as DFS/BFS) for two reasons.
First, the code for a standard recursive DFS/BFS is relatively straightforward (e.g. little to no pointer manipulation) once I understood the underlying logic. At the same time it’s a pretty common pattern in algorithm interviews, so I felt that investing time and effort in it provided very good value.
Second, it helped me improve with more advanced patterns like dynamic programming (DP) and union find because they build off of DFS iteratively. These are admittedly more niche types of questions, but can come up in more challenging loops. Even though basic DFS is usually not the most optimized solution, it’s a great breakthrough to get us started somewhere. So despite not being completely comfortable with DP problems, starting them off with DFS helps me approach them more methodically.
Ryan 🤝 Me, agreeing that Python is a lot easier than C++
I think HackerRank might also be good for practicing interview coding questions. Using and knowing both Leetcode and HackerRank is a good strategy to improve your odds at getting the job.
Glassdoor might also be good for looking up what kind of questions other people have experienced in the technical interview.
Also, focus on your soft skills too. It's not a good idea to focus solely on the technical aspect. Work on communicating clearly, having humor in the interview process, and overall being fun and easy to work with.
Desensitized to the process is such strong advice. Being yourself and staying calm is something I just learned from an ex- Principal Engineer at Facebook. It helped with my approach now after failing two interviews at the same company. Now I see... You have to become numb to the process. Haha
Awesome post as always Ryan!
Late to the comments, but personally a specific skill that went a long way especially for harder interviews was practicing graph problems (such as DFS/BFS) for two reasons.
First, the code for a standard recursive DFS/BFS is relatively straightforward (e.g. little to no pointer manipulation) once I understood the underlying logic. At the same time it’s a pretty common pattern in algorithm interviews, so I felt that investing time and effort in it provided very good value.
Second, it helped me improve with more advanced patterns like dynamic programming (DP) and union find because they build off of DFS iteratively. These are admittedly more niche types of questions, but can come up in more challenging loops. Even though basic DFS is usually not the most optimized solution, it’s a great breakthrough to get us started somewhere. So despite not being completely comfortable with DP problems, starting them off with DFS helps me approach them more methodically.
Hope this extra bit of information is useful!
100% agree, I feel like DFS and BFS show up in many places aside from graph traversal problems
Ryan 🤝 Me, agreeing that Python is a lot easier than C++
I think HackerRank might also be good for practicing interview coding questions. Using and knowing both Leetcode and HackerRank is a good strategy to improve your odds at getting the job.
Glassdoor might also be good for looking up what kind of questions other people have experienced in the technical interview.
Also, focus on your soft skills too. It's not a good idea to focus solely on the technical aspect. Work on communicating clearly, having humor in the interview process, and overall being fun and easy to work with.
Agreed! Looking up past interview questions on Glassdoor also helped me. Thank you for sharing with everyone :)
Awesome post!
Thank you Nico :)
This is an insightful and useful post, Ryan!
Thank you John :)
What do you think about the actual book, “Cracking the Coding Interview”?
The first part of the book is a decent overview of the process. For algorithm question practice, leetcode.com is better
Desensitized to the process is such strong advice. Being yourself and staying calm is something I just learned from an ex- Principal Engineer at Facebook. It helped with my approach now after failing two interviews at the same company. Now I see... You have to become numb to the process. Haha