If you are sitting for the onsite interview, please check this blog on how to pass amazon onsite interview.
A few years ago, I managed to successfully pass the Amazon online coding test. It was extremely challenging. In this blog, I am explaining how I prepared my self for it.
Purpose of the Coding Test
The purpose of the online coding test is to identify candidates who may do well on the onsite interview. It basically measures how good of a problem solver, and a coder you are. There are some questions to judge whether you are the correct cultural fit for the company.
Exam / Test
Amazon uses an online coding tool for the test. Your recruiter will send you a link to the exam. You can always follow the link and look around to get familiar with the tool. You should be even able to do some practice tests. You can take an exam in most of the popular programming languages (like Java, C++, Python, Ruby…).
The test has two coding questions. You will have 90 mins to complete both questions. After 90 minutes tool will auto submit your code and close the window. The tool should provide few tests, which you can use to validate you code. You can always add extra tests to improve the accuracy of your algorithm.
Cultural question is given after the coding exam. These questions are MCQs and not timed.
Brush up your algorithm knowledge before the test. I would recommend Sorting, Searching, Hashing, Tree Traversal, Graph Traversal, and Dynamic Programming algorithms. Get familiar with data structures like Linked Lists, HashMaps, Trees. Do not waste your time looking at too complex data structures/algorithms like the red-black trees.
Language – Choose Wisely
If you are familiar with several languages use the one with most API support. For example, if it’s C vs Java, choose Java. This will help you to save time.
Be ready to take the full advantage of language-provided data structures and algorithms. For example, if you are planning to code with Java, get familiar with the Java Collections framework. Get familiar with data structures like Maps, Lists, LinkedHashMap, Priority Queues, TreeSets, and TreeMaps; and the methods available in the API classes. Also, check utility methods available in the Collections and Array classes; also Comparators.
Learn to Calculate Time / Memory Complexity
You are usually asked to provide the time/memory complexity of your code. So another area of study if you don’t remember how it is calculated.
Practice Practice Practice
The practice is the key. Do as much as practice questions you can. There are several online web sites which provide practice algorithmic questions. Make the best use of them.
Start your preparations as soon as you got the message from the recruiter. Generally, the link to the coding test expires within 1 – 2 weeks.
During the Exam
You can access the internet during the exam. You are allowed to use your own IDE. This useful because it compiles a bit faster and provides auto suggestions. But the risk is if you couldn’t submit your code on time, you don’t have anything to show.
Time is Precious
50% of the exam is about time management. Problems you get are complex enough to make it difficult to finish both within 90 minutes. If the first question is an easy one, don’t spend too much time on it. Finishing both questions is far more important than brushing up the code of the first problem.
If you are running out of time, prioritize the important bits of the algorithm. For example, if you are going to implement a sort, you should prioritize the Comparator since it’s going to be to the core logic of the program.
Write Good Code
This is the first time Amazon is going to see your code. So try to give the best first impression. Follow basics; use meaningful variable/method names, move the redundant code to functions. Try to create classes instead of using complex collections. Write comments where needed. Try to output the best program you can.
Do not Brute Force
You may be tempted to solve some problems by brute force. But try to provide an optimal solution as possible. Brute force solutions will not raise any eyebrows. So only be used as a last resort.
After coding questions, you will have to answer a questionnaire which evaluates whether you are a good cultural fit for Amazon. Don’t worry this questionnaire is not timed. Try to be your self and answer honestly. If you and company are not going to be a good match, it’s going to be a bad move for both the parties.
Also, don’t trust the tool too much save your work continuously as you progress.
Personally, I took about 3 weeks to prepare my self for the coding test. So start early and give your best shot at it.