Technical Interview Study Plan

A structured path for coding interviews at OpenAI, Anthropic, Google, Sierra, and Ramp. The plan uses CLRS, Jeff Erickson, and Skiena as references, with NeetCode and LeetCode as the real practice engine.

Phase 1: Weeks 1-2

Foundation

Review complexity, core data structures, recursion, and implementation mechanics in your interview language.

  • Big O and operation costs
  • Arrays, strings, linked lists, stacks, queues, deques
  • Hash maps, sets, heaps, BSTs
  • Recursion, call stacks, and data-structure invariants
Phase 2: Weeks 3-7

Topics and Techniques

Learn one topic at a time, then drill the related NeetCode and LeetCode sets until the pattern becomes recognizable.

  • Iteration patterns
  • Trees, backtracking, graphs, heaps, intervals
  • Dynamic programming and greedy techniques
  • Design-style coding rounds
Phase 3: Weeks 8-9

Interview Simulation

Shift from learning to performance: timed sets, mock interviews, communicating tradeoffs, and re-solving misses.

  • 45-minute coding rounds
  • One practical build exercise weekly
  • Company-style review
  • Error log and spaced repetition

9-Week Roadmap

Treat this as a default path. If a topic is already easy, compress it and spend the saved time on timed practice.

Week 1CompletedBig O, arrays vs linked lists, hash maps/sets, stack/queue basics, BST implementation.
Week 2NextFinish foundation gaps: heaps, deques, recursion; add binary search, sorting, intervals, and ordered map concepts.
Week 3PlannedTwo pointers, prefix sums, sliding window, stack/queue techniques, monotonic stack, BFS queue, parsing, monotonic deque.
Week 4PlannedTrees, BST problem patterns, DFS, BFS.
Week 5PlannedBacktracking, tries, recursion-heavy search patterns.
Week 6PlannedGraphs, grids, topological sort, union find.
Week 7PlannedDynamic programming and greedy.
Week 8PlannedDesign-style coding, LRU cache, and mock interviews.
Week 9PlannedCompany calibration and weak-spot repair.

Week 1 Progress

Logged on June 21. Week 1 is complete. Phase 1 continues in Week 2 with the remaining foundation items plus binary search, sorting, intervals, and ordered map concepts.

Reviewed

  • Big O for common cases; enough fluency to eyeball typical interview complexity.
  • Array vs linked list tradeoffs.
  • Hash maps and sets.
  • Stack and queue as core data structures.
  • BST concepts and implementation.

Carried Forward

  • Hardcore asymptotic analysis, such as Stirling-style precision, stays optional.
  • Review heaps, deques, and recursion in Week 2.
  • Study binary search, sorting, intervals, and ordered map concepts in Week 2.
  • Practice stack and queue as techniques in Week 3: monotonic stack, BFS queue, parsing, and monotonic deque.
  • Self-balancing BSTs stay conceptual only; no AVL or red-black implementation required for now.

Foundation Checklist

Big O analysis

Time, space, nested loops, recursion trees, common operation costs.

Arrays and strings

Indexing, slicing, resizing intuition, in-place updates, parsing.

Hash maps and sets

Frequency counts, membership, deduplication, grouping.

Stacks, queues, and deques

LIFO/FIFO, BFS queues, monotonic stacks, monotonic deques, expression structure.

Linked lists

Pointers, reversal, fast/slow technique, cycle detection.

Heaps / priority queues

Min-heap, max-heap, top K, scheduling, streaming medians.

BSTs and ordered maps

Search, insert, delete, inorder traversal, predecessor/successor, range-query intuition.

Recursion

Base cases, recursive state, call stack, tree-shaped execution.

Testing habits

Empty input, one item, duplicates, negative values, cycles, disconnected inputs.

Foundational Data Structures

Week 1 focuses on the high-priority core through Binary Search Tree. The remaining structures are useful, but they belong in later topic weeks rather than the initial foundation sprint.

StructureCore OperationsInterview UsePriority
Array / Dynamic Array / StringIndex, scan, resize intuition, slice, mutate in place.Two pointers, sliding window, prefix sums, parsing, sorting.High
Hash Map / Hash SetAverage O(1) lookup, insert, delete; understand hashing and collisions.Membership, frequency maps, grouping, deduplication, value-to-index metadata.High
StackPush, pop, peek; LIFO state.DFS, parentheses, monotonic stack, expression parsing, backtracking state.High
Queue / DequeFIFO operations; push and pop from both ends for deque.BFS, level order traversal, sliding window max, monotonic queue, 0-1 BFS.High
Linked ListSingly vs doubly linked, pointer rewiring, dummy nodes.Reverse, merge, fast/slow pointers, cycle detection, LRU cache internals.High
Heap / Priority QueuePush O(log n), pop O(log n), peek O(1), heapify O(n).Top K, scheduling, merge K sorted lists, Dijkstra, two-heap median.High
Binary Search TreeSearch, insert, delete, min/max, predecessor/successor, inorder traversal.Ordered set/map intuition, range queries, sorted traversal. Plain BST can degrade to O(n).High
Balanced Ordered Map / SetO(log n) insert/delete/search; predecessor/successor and range operations.Intervals, sweep line, scheduling, closest value so far. Know the API even if your language hides it.Medium
TrieInsert/search by character path; each node represents a prefix.Autocomplete, prefix search, wildcard dictionaries, Word Search II.Medium
Union-Find / DSUFind, union, path compression, union by rank or size.Connectivity, components, undirected cycle detection, account/email grouping.Medium
LRU Cache CompositeHash map plus doubly linked list for O(1) get, put, and eviction.Classic design-data-structure problem; useful for practical coding rounds.Medium
Segment Tree / Fenwick TreeO(log n) range queries and point updates.Harder range-query problems, inversion counts, dynamic prefix sums.Lower
Bloom Filter / Skip ListBloom filter: space-efficient membership with false positives. Skip list: randomized ordered structure.Mostly systems-flavored knowledge; rarely needed for coding rounds.Lower

Topic Map

TopicWhat to LearnPractice FocusPriority
Arrays and HashingFrequency maps, sets, grouping, prefix sums, in-place updates.Two Sum, Group Anagrams, Product Except Self, Subarray Sum.High
Iteration PatternsTwo pointers, sliding window, fast/slow pointers, prefix/suffix scans.Longest substring, container water, sorted pair sums, cycle detection.High
StacksMonotonic stack, nested structure, parsing, undo-style state.Valid Parentheses, Daily Temperatures, Evaluate RPN.High
Binary SearchLower bound, upper bound, answer-space search, sorted invariants.Search Rotated Array, Koko Eating Bananas, Median variants.High
Sorting and IntervalsComparator logic, merge intervals, sweep line, scheduling.Merge Intervals, Meeting Rooms, Insert Interval, Non-overlap intervals.High
Trees and BSTsDFS, BFS, traversal, subtree return values, LCA, BST invariants, ordered set/map intuition.Max Depth, Diameter, Validate BST, LCA, Serialize Tree.High
BacktrackingChoice trees, constraints, pruning, duplicate handling.Subsets, Permutations, Combination Sum, Word Search.Medium
Graphs and GridsAdjacency lists, BFS/DFS, components, cycles, multi-source BFS.Number of Islands, Clone Graph, Rotting Oranges, Course Schedule.High
HeapsPriority queues, min/max heap behavior, top K, merging streams, scheduling.Kth Largest, Merge K Lists, Task Scheduler, Find Median Stream.High
Dynamic ProgrammingState definition, recurrence, base cases, memoization, tabulation.Climbing Stairs, House Robber, Coin Change, LIS, LCS.High
GreedyLocal choice arguments, exchange reasoning, sorting plus greedy.Jump Game, Gas Station, Partition Labels, scheduling problems.Medium
Union FindPath compression, union by rank, connectivity.Redundant Connection, Number of Components, Accounts Merge.Medium
TriesPrefix trees, dictionary search, combining trie + DFS.Implement Trie, Word Dictionary, Word Search II.Medium
Bit ManipulationXOR, masks, bit counts, subset generation.Single Number, Counting Bits, Missing Number, Subsets with masks.Lower
Design-Style CodingAPIs, state modeling, invariants, tests, readable object design.LRU Cache, TimeMap, Rate Limiter, Scheduler, In-memory store.High

How to Use the Textbooks

CLRS

Use as a reference when you need rigor: asymptotic analysis, heaps, sorting, dynamic programming, graph algorithms.

Do not read cover to cover for interview prep. It is the encyclopedia, not the daily workout.

Algorithms by Jeff Erickson

Use for conceptual clarity and language-neutral explanations, especially recursion, dynamic programming, graph traversal, and shortest paths.

Best when you want the idea to click without Java-specific framing.

The Algorithm Design Manual by Skiena

Use for problem recognition, design instincts, and the catalog of algorithmic problems.

Great before and after practice sets: first to orient, then to deepen.

Practice Resources

NeetCode

Main roadmap. Work by topic, starting with NeetCode 150. Watch explanations only after a serious attempt.

Primary use: pattern acquisition.

LeetCode

Main problem bank. Use topic lists, Top Interview 150, company tags when available, and timed random review.

Primary use: volume, timing, and variation.

Elements of Programming Interviews

Optional but excellent for dense practice in your interview language. Add it if LeetCode solutions start feeling too pattern-memorized.

Primary use: sharper implementation and follow-up questions.

Weekly Routine

Learning Block

Read one focused section from CLRS, Erickson, or Skiena. Take notes only on invariants, templates, and common mistakes.

Practice Block

Solve 3-5 topic problems. Spend 25-35 minutes per problem before checking hints or editorials.

Review Block

Maintain an error log. Re-solve missed problems after 3 days, 1 week, and 3 weeks.

Timed Block

Once weekly, do a 45-minute interview simulation: clarify, code, test, and explain complexity out loud.

Implementation Block

Every other week, implement a structure or system from scratch: heap, LRU cache, rate limiter, scheduler, or in-memory store.

Mock Block

In weeks 7-9, do one live mock weekly. The goal is calm communication under pressure.

Problem-Solving Template

Clarify input and outputGive brute forceName the patternState invariantsCode cleanlyTest edge casesAnalyze complexityDiscuss follow-ups
Important calibration: your textbooks should support practice, not delay it. For each topic, spend roughly 25% of the time reading and 75% solving, reviewing, and re-solving. Interviews reward recognition, implementation, and explanation under time pressure.