I have been lucky to crack the interviews at Google, Facebook & Amazon at different times in my career.
Difficulty Level :
I found Amazon interviews to be more difficult than Facebook interviews but less difficult than Google interviews.
Is it worth?
Totally yes! Amazon/Google/Facebook is one place where they let you do things on your own. If you are someone who wants to learn beyond, definitely a worthy place, otherwise it is going to be a horrible journey if you want solutions to be easily available.
For technical jobs, Amazon asks questions in a data structure, algorithm, and coding. Here are my thoughts on how you can become proficient in them.
Data Structures & Algorithms :
I gave a lot of importance to building the technical depth of data structures during my university.
To build technical depth and learn how to solve problems gradually,and Cracking the coding interview book are good resources. I solved all the problems from cracking the coding interview book and went through around 200 questions on .
Real Interview Questions :
To practice further, solve real interview questions from companies that you are targeting.is a very good resource for that. I solved around 100 easy, 300 medium and 50 hard problems from .
Coding speed :
Many people think that interviewers would challenge them with a couple of questions and if they provide the answer may be with code, and then it was done. So it’s all about whether they can solve the problem or not.
People don’t realize the importance of coding speed until they fail several coding interviews in a row with a very similar reasons. People were pretty good at coming up with solutions, however, it could take them half an hour to complete the code. There are many people with the same frustration.
Normally, candidates will be asked one to two questions per interview (~45min) and most likely coding is required. In other words, we only have less than 20min per question (removing “trash time” in the beginning and end), which is more challenging than it seems to be.
In addition, a lot of people don’t even pay attention to coding speed. They don’t have the mindset that finishing the code in a short period of time is equally important as solving the problem itself. This is because if we don’t have enough time to code in an interview, it’s as bad as we fail to solve the problem.
Coding speed != Typing speed :
Some people think that in order to speed up coding, we need to improve typing speed or writing speed on a whiteboard. But in reality, typing speed is really not important at all.
A couple of reasons for slow coding:
- Sometimes candidates are not clear enough in my mind when coding. In other words, they don’t even have a concrete solution before rushing to code.
- Candidates are just slow in coding. For example, it could take them a long while to implement a recursion since they’ve got to go back and keep “refactoring” the code.
- Candidates are right too fast on a whiteboard or an editor but the result was too bad while coding on paper.
- Candidates keep making bugs and keep thinking about them while coding other parts.
Mock Interview :
Depending on how you learn stuff, you can take mock interviews throughout or take a mock interview at the end. It’s a great experience for you to practice in a way where you can’t fail. Personally, a mock interview is the most effective approach.
I did several mock interviews during my preparation, sometimes with a friend, sometimes I took paid service and interviewed with professionals. There are many such services available online. I usedwhich provides mock interviews along with and objected-oriented design interviews.