90 Day FAANG Preparation

Follow this 90 day FAANG preparation roadmap week by week. Built on dependency order with progress checkpoints at every stage.

15 minutes
Medium
Intermediate

What you will learn

Why most 90 day FAANG plans fail due to wrong topic ordering

A week-by-week roadmap sequenced by dependency order

When to introduce timed pressure practice during preparation

Concrete progress checkpoints at each month boundary

You open the recruiter's email. The on-site is scheduled. You count the weeks on your calendar and land on a number: twelve. Twelve weeks to go from wherever you are right now to passing a FAANG coding interview. The real question behind every 90 day FAANG preparation plan isn't whether the timeline is enough. It's whether you'll spend those twelve weeks in the right order.

TL;DR
A 90 day FAANG preparation plan works when topics are ordered by dependency, not by difficulty or popularity. This roadmap maps each week to a specific course in dependency order so every concept builds on the last.

Why Most 90 Day Plans Fail

A 90-day FAANG preparation schedule sounds reasonable. Three months, focused study, a clear deadline. But most engineers who follow one still underperform.

The failure mode is almost always the same: they study topics in the wrong order. A typical plan might start with "easy problems for two weeks, then mediums, then hards." Or it might group by popularity: arrays and strings first because they're common, then trees, then DP at the end because it's hard. Both approaches miss the same thing. DSA topics have dependencies.

You can't reason about binary tree traversal without understanding recursion. You can't build recursive intuition without understanding how the call stack works. And you can't use a hash table for pattern problems until you've internalized the data structure's lookup mechanics. Most engineers discover these gaps mid-plan. They hit binary trees in Week 5 and realize their recursion understanding is shaky. They attempt a DP problem in Week 9 and can't formulate the recurrence because they never properly learned the recursive substructure. Each gap sends them backwards, and a 12-week plan quietly becomes a 6-week plan with 6 weeks of rework.

Whether rigid learning paths help or hurt motivation probably depends on the person. But the dependency problem is upstream of that debate. Whatever schedule you follow, the ordering has to respect prerequisites.

So: sequence your preparation by dependency order, not by difficulty or topic popularity. Every concept you study should build directly on what you studied the week before.

The Week by Week FAANG Preparation Roadmap

This roadmap follows a dependency order: Arrays, Linked Lists, Hash Tables, Stacks, Queues, Trees, Heaps, Recursion, Graphs, Backtracking, Sorting, Searching, Dynamic Programming. Each week's material assumes the previous weeks are solid.

12-week FAANG interview roadmap
1
Weeks 1-2: Arrays and Linked Lists
The two most fundamental data structures. Arrays introduce two pointers, sliding window, and interval merging. Linked lists introduce reversal, fast/slow pointers, and merge patterns. These 15 patterns are the foundation everything else builds on.
2
Weeks 3-4: Hash Tables and Stacks
Hash tables unlock counting, prefix sum, and advanced sliding window variants that combine with array patterns. Stacks introduce monotonic stack, sequence validation, and expression evaluation. Both are prerequisites for tree traversal.
3
Weeks 5-6: Queues, Binary Trees, and BSTs
Queues enable BFS-based level order traversal. Binary trees introduce preorder, postorder, and root-to-leaf path patterns. BSTs add sorted traversal and range-based operations. This is where pattern density picks up fast.
4
Weeks 7-8: Heaps, Recursion, and Backtracking
Heaps cover top-K and comparator patterns. Recursion formalizes head, tail, and multiple recursion, which are the building blocks for backtracking and DP. Backtracking introduces enumeration and constraint-based search.
5
Weeks 9-10: Graphs, Sorting, and Searching
Graph algorithms (DFS, BFS, Dijkstra, topological sort) require everything before them. Sorting introduces quickselect and custom compare. Searching covers binary search variants including predicate search on the answer space.
6
Weeks 11-12: Dynamic Programming and Review
DP is last because it requires recursion, memoization intuition, and problem decomposition skills from every previous module. Final week: full assessments under timed conditions.

The order matters concretely. Take Coin Change, a standard DP interview problem. To solve it, you need to formulate a recurrence relation (requires recursion), identify overlapping subproblems (requires understanding multiple recursive calls), and optimize with memoization (requires understanding how cached results map to subproblem states). An engineer who jumps to DP in Week 3 will memorize the solution. An engineer who reaches DP in Week 11, after building recursive intuition through eight weeks of prerequisite work, will derive the solution. That's what the interview actually tests.

Important
This roadmap assumes 2-3 hours of focused study per day. If you have more time, compress months 1-2 and spend the extra time on assessment practice. If you have less, extend to 16 weeks but don't skip courses or change the order.

When Your Preparation Should Add Pressure

Most engineers practice in comfort conditions for 11 weeks and then panic in their first mock interview. The gap between "I solved this at my desk with no timer" and "I solved this in 20 minutes with no hints" is wider than most people expect. The right time to introduce timed practice is after foundations are solid but before advanced topics begin. That's around Week 6.

By Week 6, you've covered arrays, linked lists, hash tables, stacks, queues, and started binary trees. That's enough pattern coverage to attempt problems under realistic constraints. You won't know every pattern yet, but you know enough to practice the skill of solving under pressure separately from the skill of learning new patterns.

In Weeks 6-8, start attempting previously completed problems under timed conditions. Set a timer matching interview constraints, 20 minutes for mediums and 30 minutes for hards. No hints, no looking back at your notes. The goal isn't to pass every attempt. You're training the feeling of working without a safety net while the material is still fresh.

By Weeks 9-12, add full assessment practice. Attempt multi-problem sets under a 50-minute timer, the way actual interview rounds work. By this point you've covered enough of the learning path to simulate realistic interview coverage.

The spacing matters here. Research on the spacing effect shows that practice distributed across weeks produces stronger retention than the same volume crammed into the final days. Starting pressure practice at Week 6 gives you six full weeks of spaced, timed practice before the interview, compared to the single mock interview most people cram the weekend before their on-site.

How to Know You're On Track

Vague progress signals ("I feel like I'm getting better") aren't reliable under stress. You need concrete checkpoints at each month boundary. If three or more items at any checkpoint don't describe you, don't move to the next month. Spend an additional week on the gaps. A 13-week plan that's solid beats a 12-week plan with holes.

Month 1 (Week 4)

This Describes You
  • You can solve array two-pointer and sliding window problems without looking up the pattern
  • You can trace linked list reversal mentally, tracking pointer state at each step
  • You can explain why a hash table lookup is O(1) amortized, not just that it is
  • You can identify which stack pattern applies from the problem statement alone
This Doesn't Describe You

All items apply to you.

By Week 8

This Describes You
  • You can trace a binary tree postorder traversal on paper, tracking state at each node
  • You can solve BST problems by reasoning about the sorted traversal invariant
  • You can write a recursive solution and explain how the call stack unwinds
  • You've attempted at least 10 problems under timed conditions with a pass rate above 50%
This Doesn't Describe You

All items apply to you.

Final checkpoint (Week 12)

This Describes You
  • You can identify DP subproblems and formulate recurrences for problems you haven't seen
  • You can choose between BFS and DFS for a graph problem and explain why
  • You've completed a 50-minute multi-problem assessment with at least one correct solution
  • You don't reach for the solution tab before your timer runs out
This Doesn't Describe You

All items apply to you.

Going Deeper

This roadmap gives you the order. The rest is depth. For the complete strategy behind each topic, including how to prove correctness, when to use each pattern, and how to build the identification skill that separates pattern matchers from algorithm thinkers, see our FAANG coding interview preparation guide. For a deeper look at how dependency-ordered learning applies specifically to recursion and dynamic programming, those guides walk through that dependency order in detail.

The Arrays and Singly Linked List courses on Codeintuition map directly to Weeks 1-2 of this roadmap, and they're permanently free. They cover two pointers, sliding window, fast/slow pointers, and interval merging, the foundation patterns that every subsequent week in this roadmap builds on. No trial, no expiration.

Think about Coin Change from the Week 11 DP module. To derive that recurrence, you needed recursion (Week 7), which needed stack mechanics (Week 4), which needed array fundamentals (Week 1). An engineer who jumped to DP in Week 3 would memorize the solution. An engineer who reached it in Week 11, after building each prerequisite layer, would construct it from the invariant. That's the difference dependency order produces. Not more knowledge, but knowledge that holds together under pressure because every piece supports the one above it.

Do you want to master data structures?

Try our data structures learning path made of highly visual and interactive courses. Get hands on experience by solving real problems in a structured manner. All resources you would ever need in one place for FREE

For most engineers with some programming experience, yes. Ninety days of focused study covering the full dependency order is enough to build real problem-solving ability, provided the study order respects topic dependencies so each concept builds on solid foundations.
Skip the review, but verify your knowledge honestly first. Can you solve two-pointer and sliding window problems without hints, under a timer? If yes, start at Week 3 with hash tables. If you hesitate on pattern identification, spend a few days on those specific lessons rather than the full course. Overconfidence in foundations is the most common reason 90-day plans fall apart midway through.
Yes, but only for the topic you're currently studying. Solving random LeetCode problems from a "top 100" list while following a dependency-ordered roadmap defeats the purpose. Each week, pick 3-5 problems that specifically test the patterns you covered that week. That reinforces the current module without jumping ahead and creating gaps.
Two to three hours of focused study per day. Adjust the timeline based on your availability, compress or extend to 16 weeks, but don't change the topic ordering.
They studied topics out of dependency order and discovered foundation gaps too late. The second most common reason is skipping timed practice entirely until the final week. Both failures are about ordering, not effort. An engineer who hits binary trees in Week 5 without solid recursion understanding doesn't just struggle with that topic. They struggle with everything that depends on it, which is most of the remaining roadmap. A plan that fixes the ordering and integrates pressure practice starting at Week 6 addresses the two most frequent failure modes.
Prakhar Srivastava

Prakhar Srivastava

Engineering Manager@Wise

London, United kingdom

Was this helpful?