Everyone who prepares for an interview asks the same question:
“What are the best websites that can help me pass the coding interview?”
“How can I land a $100,000 Job?”
It seems that there are so many programming websites online and of course it’s impossible to prepare with them all. Over the past I was asked countless times to recommend preparation resources, so in this post I’ve manually selected 9 websites that I think can boost your chance of getting hired given a short period of preparation time.
This is the online course from Coursera and taught by Stanford. For people who don’t have a solid computer science foundation or are not familiar with basic data structure/algorithms, this is one of the best starting points.
The course covered a bunch of fundamental principles of algorithm design: divide-and-conquer methods, graph algorithms, practical data structures (heaps, hash tables, search trees), randomized algorithms, and more.
- Algorithms: Design and Analysis, Part 2
- Algorithms, Part I (Princeton)
- Analysis of Algorithms (Princeton)
Although we are talking about website, this book is really a great resource for people to get started with coding interviews.
If you don’t have any interview experience, you’ll definitely be surprised about the gap between data structure/algorithms you learned and real interview questions. It’s not necessary to finish all questions in this book I would say, but you should have a better understanding of what you should expect in an interview, what types of questions are asked and what are common ways to solve them.
You’ll be surprised about how helpful this single page site is. Over the past I’ve seen so many candidates having trouble with big-o analysis. In fact I would still be hesitant about this kind of candidates even if they solved the interview questions correctly.
I can’t emphasize enough the importance of big-O analysis for both time and space as you’ll use them for sure in your interviews and real life projects as well. You don’t need to do the math to prove everything, but you should definitely be able to analysis the efficiency quickly and explain them clearly.
One of the most popular sites that have tons of interview questions, discussions and online judge.
If you have enough preparation time, I would highly recommend you practice all of them at least once (Yes, it’s worth to do that twice!). You may not need to submit your solution for all questions, but it’s better to do so for the following types of questions:
- Topics you are not familiar with (e.g. you are not comfortable with tree data structure)
- Type of questions you failed previously
- Questions you spend longer time to solve
Even if you don’t have time to submit all solutions online, it’s always better to write down your solution on a paper/whiteboard at least. I never trust solution explanation without solid code.
Glassdoor was founded at 2007 and is a website where employees and former employees anonymously review companies and their management. So you can find all kinds of information about a company including average salaries by level, reviews, recruiting info and of course interview questions.
For interview preparation, you can just ignore all the other sections and search for interview questions of your target company.
The best way to use Glassdoor is always after you already have a target company, e.g. you will have a Facebook interview in few weeks. At that point, you can spend most of your time on questions from past interviews of that company.
- Contents on Glassdoor are generated by users so that some questions may be vague and no standard solution is given. You should check the comment or do some Google search by yourself.
- Don’t try to memorize the answers without understanding, which will never work.
- Better to use a timer when practicing to track your speed. Normally you are expected to finish 1-2 questions within 45min.
Gainlo is a new website that allows you to have mock interviews from experienced interviews who are working at top companies like Google, Facebook, Linkedin, Amazon etc. and get real feedback to improve.
Technical interview doesn’t only evaluate your coding ability, but a variety of skills and abilities like communication skills, analysis ability etc.. Also many people will feel nervous solving a problem when someone is looking over his shoulder, thus he may even fail in the simplest questions.
This is exactly why it’s very helpful to have mock interviews that creates the same intense and nervous atmosphere without risk of failure.
There are two recommended ways to use this service:
- Schedule mock interviews within the middle of your preparation. You should already be familiar with most of the basic stuffs about interview and feedbacks from experienced interviewers can help you adjust your future preparation plan.
- Schedule mock interviews few weeks before your real interview. It’s a great opportunity for you to practice and conquer nerves.
It’s a aggregation of lots of resources about programming including coding questions, articles, book etc.. There are few ways you can use it for your interview preparation:
- Go to “Algo” sections and practice with coding questions. What’s cool about this site is that answers are provided by itself rather than some random people, so you don’t need to search by yourself.
- It’s very likely that you are not familiar with particular topics like linked list, then it’s highly recommended to go check the corresponding section at GeeksforGeeks to practice with them.
- Also I would suggest you try to solve the problem by yourself first instead of jumping into the solution immediately. Writing down solid code is also required.
I was quite impressed the first time I visited this blog. In fact the blog is like a book!
It contains a lot of interesting coding questions with very detailed analysis and solutions. The author Harry He is a very experienced engineer and interviewer, and most of the questions are manually selected from Google, Amazon, Facebook, Microsoft, etc..
Similarly the blog categorize questions into different topics like binary tree, string and so on, which allows you to further practice with topics you are less confident with.
You don’t necessarily need to finish everything on each website, which in fact is infeasible.
The smartest way is always taking advantages of the most valuable part of each site and be clear about which site to use at different stages of preparation.
Try to filter out topics you are already very familiar with or things you don’t need and be efficient with time.
Any other sites you would recommend?