Skip to main content

Coding interview study plan - what to study and practice based on time left

One of the most important questions to answer at the start of your coding interview preparation is: What study topics and practice questions should you do to most efficiently prepare for your coding interviews?

There are plenty of resources on the internet, but it can be hard to know how they fit into the time you have left to prepare. Thankfully, this article will help you with that.

I have personally gone through the dreaded Software Engineer interview process myself several times and prepared my own study plans, refining them each time.

In this article, I will share the 3 month study plan that I personally use to prepare for my coding interviews. You will find the exact topics to study (with recommended links) and exact questions to practice (with practice links).

How much time do you need to prepare for your coding interviews? Generally, 3 months (if you can dedicate 11 hours a week) is the recommended period of time for a more holistic preparation. I will be sharing recommended study plans for 3 months (recommended period), but you can generate study plans for practice questions for any time frame you need via the Grind 75 tool (built by me). More options like filtering by difficulty, topics, alternative grouping of questions can be found there.

Regardless of how long you have, if you are unfamiliar with core data structures and algorithms knowledge, you are advised to revise them before starting on the coding interview questions practice. Different people have different styles of practicing and you should do what works best for you. The various possible approaches are:

  1. Breadth-first preparation - Revise every topic and then start practicing a variety of questions across all topics. This strategy is recommended if you have around a month to spare.
  2. Depth-first preparation - Tackle one topic at a time - revise materials for a topic, practice lots of questions for that topic. After ensuring mastery of a topic, move on to the next topic. Repeat for all or selected topics. If you don't have much time, this might be the best way to prepare. You can focus on the High priority topics in our recommended study plan.
  3. Depth-first-then-breadth preparation - Tackle one topic at a time - revise materials for a topic, practice a few questions for that topic. After ensuring mastery, move on to the next topic. Repeat for all topics. At the end, practice a variety of questions across all topics. This strategy takes more time than others, so it's recommended if you have more than a month.

My personal recommendation would be the Breadth-first preparation or Depth-first-then-breadth preparation. It's important to have some form of breadth-level studying / practicing in your schedule so that you don't forget about the earlier topics as you move on to later topics.

In each study plan, you will find a list of coding interview topics with resources and practice questions that you should work through in order of priority every week.

To best utilize it, you should create a template where you break down the dates left and hours left per day, so that you can later fill in the topics/questions to cover per day.

Keep the estimate relatively conservative so you don't end up burning out.

Week 1 - 4: Topical study + practice​

These are all the topics you should study, in order of priority. The learning resources linked are my algorithm cheatsheets - which give you an overview of must-remembers like time complexity, corner cases, and topic-specific useful techniques, as well as essential and recommended practice questions.

Don't forget to apply behaviors from coding interview best practices and methods from coding interview techniques early on while you practice!

Week 1​

TopicPriorityTime required
ArrayHigh2 hours
StringHigh3 hours
Hash TableMid3 hours
RecursionMid3 hours

Week 2​

TopicPriorityTime required
Sorting and searchingHigh3 hours
MatrixHigh1 hour
Linked ListMid3 hours
QueueMid2 hours
StackMid2 hours

Week 3​

TopicPriorityTime required
TreeHigh4 hours
GraphHigh4 hours
HeapMid3 hours
TrieMid3 hours

Week 4​

TopicPriorityTime required
IntervalMid2 hours
Dynamic programmingLow4 hours
BinaryLow2 hours
MathLow1 hour
GeometryLow1 hour

Week 5 - 12: In-depth practice​

Here, I listed 75 questions that you should do to be fully prepared for your coding interviews. This list of questions are generated from the Grind 75 tool (built by me), which generates recommended study plans for coding interviews based on the time you have left. More options like filtering by difficulty, topics, alternative grouping of questions can be found there.

  • If you followed the Week 1 - 4 study plan, you would have done some of these questions here. Feel free to skip them or do them again.
  • Feel free to skip the dynamic programming questions if you haven't studied them or feel that they won't be relevant. Many dynamic programming questions can be solved with recursion / backtracking anyway.

Don't forget to apply behaviors from coding interview best practices and methods from coding interview techniques early on while you practice!

We recommend using the Grind 75 tool which allows you to keep track of your practice progress.

Week 5

ProblemDifficultyDuration
Two SumEasy15 mins
Valid ParenthesesEasy20 mins
Merge Two Sorted ListsEasy20 mins
Best Time to Buy and Sell StockEasy20 mins
Valid PalindromeEasy15 mins
Invert Binary TreeEasy15 mins
Valid AnagramEasy15 mins
Binary SearchEasy15 mins
Flood FillEasy20 mins
Lowest Common Ancestor of a Binary Search TreeEasy20 mins
Balanced Binary TreeEasy15 mins
Linked List CycleEasy20 mins

Week 6

ProblemDifficultyDuration
Implement Queue using StacksEasy20 mins
First Bad VersionEasy20 mins
Ransom NoteEasy15 mins
Climbing StairsEasy20 mins
Longest PalindromeEasy20 mins
Reverse Linked ListEasy20 mins
Majority ElementEasy20 mins
Add BinaryEasy15 mins
Diameter of Binary TreeEasy30 mins
Middle of the Linked ListEasy20 mins
Maximum Depth of Binary TreeEasy15 mins
Contains DuplicateEasy15 mins

Week 7

ProblemDifficultyDuration
Min StackMedium20 mins
Maximum SubarrayMedium20 mins
Insert IntervalMedium25 mins
01 MatrixMedium30 mins
K Closest Points to OriginMedium30 mins
Longest Substring Without Repeating CharactersMedium30 mins
3SumMedium30 mins
Binary Tree Level Order TraversalMedium20 mins
Clone GraphMedium25 mins
Evaluate Reverse Polish NotationMedium30 mins

Week 8

ProblemDifficultyDuration
Course ScheduleMedium30 mins
Implement Trie (Prefix Tree)Medium35 mins
Coin ChangeMedium25 mins
Product of Array Except SelfMedium30 mins
Validate Binary Search TreeMedium20 mins
Number of IslandsMedium25 mins
Rotting OrangesMedium30 mins
Search in Rotated Sorted ArrayMedium30 mins

Week 9

ProblemDifficultyDuration
Combination SumMedium30 mins
PermutationsMedium30 mins
Merge IntervalsMedium30 mins
Lowest Common Ancestor of a Binary TreeMedium25 mins
Time Based Key-Value StoreMedium35 mins
Accounts MergeMedium30 mins
Sort ColorsMedium25 mins
Word BreakMedium30 mins

Week 10

ProblemDifficultyDuration
Partition Equal Subset SumMedium30 mins
String to Integer (atoi)Medium25 mins
Spiral MatrixMedium25 mins
SubsetsMedium30 mins
Binary Tree Right Side ViewMedium20 mins
Longest Palindromic SubstringMedium25 mins
Unique PathsMedium20 mins
Construct Binary Tree from Preorder and Inorder TraversalMedium25 mins
Container With Most WaterMedium35 mins

Week 11

ProblemDifficultyDuration
Letter Combinations of a Phone NumberMedium30 mins
Word SearchMedium30 mins
Find All Anagrams in a StringMedium30 mins
Minimum Height TreesMedium30 mins
Task SchedulerMedium35 mins
LRU CacheMedium30 mins
Kth Smallest Element in a BSTMedium25 mins
Minimum Window SubstringHard30 mins

Factor time for your self introduction, final questions and mock coding interviews​

Besides studying and practicing for coding interviews, you should also prepare your self introduction, final questions, and try out mock coding interviews.

Prepare self introduction and final questions to ask​

I would suggest around 3 hours to craft your self introduction and also prepare some final questions to ask. You may refer to this self introduction guide and final questions to ask guide which should help you complete these steps fairly quickly.

Schedule mock coding interviews​

You should start scheduling for mock coding interviews when you are 60% through your coding interview studying and practicing plan. Interview slots are typically provided by interviewers, so you can view them in advance and book them. The platform I have personally used and recommend is interviewing.io. Read more about different mock coding interview platforms here.