# Step By Step Guide For Coding Interview Preparation In 4 Months

#### Pratik Singhal

Instructor SDE-2 @ Amazon

If you want to crack interviews of top tech companies like Amazon, Microsoft etc and have only 4 months to spare, don’t worry!

If you know basic programming in any one language and are willing to prepare systematically, 4 months is enough time to prepare yourself for coding rounds of top tech companies.

Since we have been following this strategy in our 4-month interview preparation boot-camp with 100% success rate, we know that this strategy works.

The bulk of these coding rounds are heavily skewed towards asking algorithmic interview questions like these and you need to follow a systematic and thorough study plan so that you cover every topic which is required to crack the coding interview in 4 months.

In this guide, we will be listing down the different steps that you need to follow to prepare for the coding round of top tech companies like Amazon, Microsoft, Google etc.

To crack the coding round of any top tech company, you are required to solve a Data structure/algorithmic question. Solving any such question requires two steps:

1. Thinking of the solution to the problem
2. Implementing the solution that you thought in the previous step.

To crack interviews of top tech companies you need to have excellent coding skills.

Even if you are very good at algorithms and have good problem-solving skills, but not able to implement the solution to the problem, you will get rejected.

This means, that given an algorithm, you should be able to implement it without committing mistakes and with reasonable speed.

Moreover, your implementation of an algorithm should be optimized, readable and should adhere to required time and space complexity.

Due to lack of sufficient practice, many people find it difficult to implement a given solution with accuracy.

To improve your coding skills, you should focus on two things:

1. Implement Easy Problems : If you are just getting started with interview preparation it is highly likely that you won’t be familiar with a lot of data structures/algorithms. Therefore, try to solve Div2A/B problems on Codeforces. These problems are usually ad-hoc and implementation based and only require you to implement a simple solution.
2. Implement algorithms that you learn: Whenever you learn any new data structure/algorithm, make sure that you implement it multiple times.

If you start practicing this way, then your implementation skills will improve, and you will become confident.

### Learn About Standard Data Structures/Algorithms

While following Step 1 in which you are improving your coding skills, you should also start to learn about standard data structures, algorithms and their implementation.

This would make sure that you increase your breadth of knowledge and have the necessary tools to solve more complicated problems later on.

For example, to solve a problem such as Rotten Organges, you need to know that it can be solved very easily by modelling it as a graph and applying BFS, which is a standard algorithm.

To learn about standard data structures/algorithms, it is best to go through CLRS Book and websites like TopCoder/Codeforces.

They have high-quality detailed explanation of different data structures, algorithms and their applications. Here is a list of all the topics that you should cover while you are preparing for interviews.

If you complete step 1 and step 2, you will be able to implement the common standard algorithms and data structure fairly quickly. After this, you should be able to solve Easy-Medium level problems.

After you have completed step2, you will be able to go identify the standard problems and solve a lot of easy-medium level problems.

Now it is time to take your problem-solving skills to the next level and start solving medium-hard level problems.

To be able to do that, you would need to improve your problem-solving skills and start solving difficult problems.

Most of the difficult problems are difficult because we need to use multiple different concepts to solve them or we need to reduce them to some standard problems first.

Therefore, solving these problems takes a lot of time and you should make it a point to spend a lot of time to solve these problems.

To get started these type of problems, you should start practicing Div2C/D level problems in Codeforces.