Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Tech Interview Preparation  Module 2 – Research and plan your season

A study plan built back from your interview date

Plan interview preparation back from the date: diagnose your coding, design and behavioural skills, split weekly hours by role and schedule spaced practice.

  • Beginner
  • 20 minutes
  • Examples run with Node.js 24.21.0 and quickjs 0.32.0
  • By MySmartCoPilot
Free lesson, Pro answers: 20 minutes
Free: the whole lesson. With a pass: the model answers to its 2 interview questions.

What you will learn

  • Count back from your interview date to a budget of hours and a protected last week
  • Diagnose your starting point in coding, design and behavioural rounds with a timed test
  • Split weekly hours by target role, then move them towards your weakest area
  • Schedule timed practice and re-solves at growing gaps instead of rereading
  • Set checkpoints that tell you when to change the plan
What you’ll learn

What you will learn

  • Count back from your interview date to a budget of hours and a protected last week
  • Diagnose your starting point in coding, design and behavioural rounds with a timed test
  • Split weekly hours by target role, then move them towards your weakest area
  • Schedule timed practice and re-solves at growing gaps instead of rereading
  • Set checkpoints that tell you when to change the plan
On this page

Six weeks of eight hours is 48 hours, and that number is fixed the day you learn your interview date: the plan has to fit it. A study plan built back from the date starts at the end. It protects the last week for light review, logistics and rest, fills the weeks before it with one weekly cycle of new material, timed practice, re-solves at growing gaps and a mock, and lets a diagnostic in week 1 decide how the hours are shared between coding, design and behavioural preparation.

The plan then changes whenever its checkpoints show that it is not working. By the end you can build such a plan, read two worked plans whose every total a program recomputes, and run a checker on your own plan against five rules.

Tests and spacing beat rereading, so the plan is built from them

Henry Roediger and Jeffrey Karpicke gave students short passages to learn, then either a second reading or a test in which they wrote down what they remembered, with no feedback. On a test five minutes later the second reading looked better. On tests two days and one week later, the students who had been tested remembered more. Two larger reviews point the same way:

  • Ten study habits, weighed. John Dunlosky and four co-authors weighed the evidence on ten common study habits. Two earned their top rating: practice testing: Recalling or solving without the answer in view, such as working a problem from a blank page or writing down what you remember. A review of ten study techniques rated it one of the two most useful., meaning any attempt to recall or solve without the answer in view, and distributed practice: Spreading the study of one topic over sessions on different days instead of one long session. The best gap between the sessions grows with how long you need to remember., meaning sessions spread out over days. interleaving: Mixing different kinds of problem in one practice session, so that each problem has to be recognised before it can be solved, as in a real round., mixing different kinds of problem in one session, landed in the middle. Rereading and highlighting landed near the bottom.
  • Spacing wins, and the best gap grows. Nicholas Cepeda and colleagues pooled 317 experiments on spacing. Spread-out study beat the same amount crammed together, and the longer something had to be remembered, the longer the gap between sessions that served it best.

For interview preparation, MySmartCoPilot reads the techniques as sessions you can plan:

Technique The review’s rating In interview preparation
Practice testing High Solving a problem with the solution out of sight
Distributed practice High Coming back to a family of problems days later
Interleaving Moderate Mixed sets, once each pattern is familiar
Rereading and highlighting Low Reading worked solutions again

Employers say much the same: Meta’s full loop guide advises practising fewer problems of many types rather than many problems of one type. None of the studies used coding or design interviews, so the exact gaps in this lesson are a sensible default rather than a research result.

Key idea

Every session of the plan asks you to solve or recall without the answer in view, and every topic comes back after a gap: those are the two techniques the research rates highest, and rereading is among the lowest.

Checkpoint

Check: Why tests and spacing beat rereading

  1. Question 1 of 2 Which of these sessions is practice testing?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: Solving a two-pointer problem from a blank page, with the solution closed

    Practice testing is any attempt to recall or solve without the answer in view. Only the blank-page problem asks you to produce the solution yourself; the other three put the answer in front of you again.

  2. Question 2 of 2 In Roediger and Karpicke's study, when did the students who had been tested remember more than those who read the passage again?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: On the tests two days and one week later

    Rereading wins a test taken straight away and loses the ones that come days later. An interview comes days or weeks after you study, so the plan is built from tests.

Count back from the date: the budget, then a protected last week

Multiply the weeks to your interview by the hours you can give each week: that is the budget. An engineer with an SDE-2 loop six weeks away and eight spare hours a week has 48 hours, and every later choice spends them. If you have several interviews, plan for the first one that matters and treat the rest as later checkpoints. Then protect the end. These are MySmartCoPilot’s planning rules, so change them where your situation differs:

  1. The last week is light. Every area gets half its usual time, except one timed mock early in the week.
  2. Nothing new in the last 48 hours. A topic started two days before the interview cannot be practised at the spacing that makes it stick, and it takes time from reviewing what you can already do.
  3. The final four weeks hold at least one timed mock each. A mock interview: A full rehearsal of one interview round under its real conditions: a problem you have not seen, the round's length and tool, and a person or a recording to explain your thinking to. More in “Mock interviews and deliberate practice” is a full round under real conditions: the round’s length, its editor or whiteboard, and someone, or a recording, to talk to.

The diagram shows the order in which you plan, from the date down to week 1; reading it upwards gives the order in which you live the plan:

A plan counted back from the interview: protect the last days, then a mock each final week, then learning weeks, then a diagnostic.1. Fix the interview dateand the hours you have each week2. Protect the last dayslight review, logistics, rest3. The final four weeksa timed mock every week, mixed sets4. The earlier weekslearn, timed practice, spaced review5. Week 1 opens with a diagnosticit sets the split of the hourscount backcount backcount backcount back

A study plan, counted back from the interview date

Text description of the diagram

The diagram is a column of five boxes joined by arrows labelled "count back", from top to bottom:

  1. Fix the interview date and the hours you have each week.
  2. Protect the last days: light review, logistics and rest.
  3. The final four weeks: a timed mock every week, and mixed practice sets.
  4. The earlier weeks: learning, timed practice and spaced review.
  5. Week 1 opens with a diagnostic, which sets how the hours are split between areas.

Reading down is the order in which you plan; reading up is the order in which you live the plan.

Step through the same count for the SDE-2 candidate, with the hours each rule leaves:

Interactive · stage by stage Counting back a six-week plan Step through the SDE-2 candidate's plan from the interview back to week 1, with the hours each rule leaves.
Counting back a six-week plan, step 7 of 7. Showing The interview, The budget, Week 6 is light, The last 48 hours, Weeks 3 to 6, Weeks 1 to 5, Week 1 opens. In focus: Week 1 opens.The interviewend of week 6, day 42The budget6 weeks × 8 h = 48 hWeek 6 is light4 h 24 min of the 8 hThe last 48 hoursnothing new startsWeeks 3 to 6a timed mock in eachWeeks 1 to 5the full weekly cycleWeek 1 openswith the diagnostic

The drawing shows the whole scene; its 7 steps are listed below.

Every step as text
  1. Start at the interview. The loop is at the end of week 6, on day 42 of the plan. Every other date is counted back from that day, so it is fixed first.
  2. Fix the budget. Eight spare hours a week for six weeks give 48 hours. Every later choice spends them, so the budget is a number before any topic is chosen.
  3. Make the last week light. Week 6 halves every area except the 48-minute mock, so its 432 minutes of study become 216 and the week holds 4 h 24 min. The 3 h 36 min it frees are rest, not a gap to fill.
  4. Nothing new in the last 48 hours. Days 40 and 41 hold re-solves of families already practised, stories told aloud and a test of the setup. A topic started then has no days left in which to come back.
  5. A mock in each final week. Weeks 3, 4, 5 and 6 each hold a timed mock of 48 minutes, a 45-minute round and a short debrief, so the interview is never the first time under its conditions.
  6. Fill the earlier weeks. Weeks 1 to 5 repeat the weekly cycle at the full 8 hours each, from new material to timed practice, re-solves and the mock.
  7. Open with the diagnostic. The first two or three hours of week 1 go to the diagnostic. Its scores set the split of every week after it, which is why it comes before anything new is learnt.

The light week keeps 4 hours 24 minutes of its 8, and the 3 hours 36 minutes it frees are rest. Those hours would buy little: material learnt in the last days has no time left to come back at a gap, and rest leaves you fresh for the round.

Checkpoint

Check: The budget and the protected last week

  1. Question 1 of 2 The final-year student plans 12 weeks of 10 hours, with 10 % of each week for the mock. With the lesson's rule for the last week (half time for every area except the mock), how many minutes does week 12 hold?

    Type a number.

    A hint

    Take the mock's 60 minutes out first, halve the rest, then add the mock back.

    Show the answer: Question 1 of 2

    Answer: 330 minutes

    A normal week is 600 minutes, of which the mock takes 60. The other 540 are halved to 270, and the mock stays: 330 minutes, or 5 hours 30 minutes. The program in the section on worked plans prints the same week: coding 3 h, CS fundamentals 45 min, behavioural 45 min and the 1-hour mock.

  2. Question 2 of 2 Which of these breaks the rule for the last 48 hours?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Starting a pattern you have never practised

    The rule is about new material only. Re-solves, stories and a logistics check are review and preparation, which is exactly what the protected days hold.

A week-1 diagnostic decides where the hours go

In the first week, spend two or three hours on a diagnostic: A short timed test of each area a round covers, taken and scored at the start of a study plan, so that the hours go to the weakest areas rather than the favourite ones., to measure where you stand. Use original practice problems of medium difficulty that you have not seen recently, and the conditions of your round:

  • Coding: two problems against the clock at the pace of your round, in the editor you will use. A round of about two problems in about 40 minutes, as Meta’s guide describes its coding interviews, means 20 minutes a problem.
  • Low-level design, if your round has one: 30 minutes on the classes and interfaces of a small system.
  • System design, for experienced roles: one 45-minute design, talked through aloud and recorded on your own device.
  • Behavioural: two stories told aloud, three minutes each. Amazon’s SDE II prep page, for example, says each interviewer typically asks two or three behavioural questions, across a loop of four 55-minute interviews.

Not affiliated

MySmartCoPilot is not connected with Meta or Amazon. The advice quoted here is from their own interview preparation pages, listed under References; those pages are theirs to change, so read the current version before you plan.

Score each area from 1 to 4 against this table, and write down the measurements behind the score:

Score Coding and design Behavioural
1 Could not start, or needed the solution No story came to mind
2 A partial solution, or one with several hints A story without a clear result
3 Complete, but slow or after a hint Complete, but over time or without a number
4 Complete in time, with your own tests Complete in three minutes, with a result you can measure

The measurements matter more than the scores: minutes to a working solution, hints taken, bugs that your own tests caught before you said “done”, and how long each story took. They are what the checkpoints later in the plan compare against, so a score of 3 in week 1 and a score of 3 in week 4 can still show progress.

Checkpoint

Check: The week-1 diagnostic

  1. Question 1 of 2 In the diagnostic, your round's pace is 20 minutes a problem. You finish the second problem correctly in 31 minutes, after one hint. What does it score?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: 3: complete, but slow or after a hint

    The score is a summary; the measurements behind it matter more. Write down 31 minutes and one hint, so that the next checkpoint compares like with like.

  2. Question 2 of 2 Which of these does the lesson ask you to write down from the diagnostic, besides the scores?

    Choose every answer that is right.

    Show the answer: Question 2 of 2

    Answer:

    • Hints taken
    • Bugs your own tests caught before you said done
    • Minutes to a working solution

    Minutes, hints, self-caught bugs and, for stories, how long each one took. Those are the measurements the checkpoints compare against later.

Split the hours by target, then move them towards the gap

Start from the split for your target, then adjust it with the diagnostic. These starting splits are MySmartCoPilot’s recommendations, not any employer’s:

Area New graduate SDE-2, 2 to 5 years Senior and staff
Coding 60 % 40 % 25 %
CS fundamentals 15 % none none
Low-level design none 10 % 10 %
System design none 25 % 35 %
Behavioural 15 % 15 % 20 %
Mocks 10 % 10 % 10 %

Read the table by column: the more experienced the target, the more of the week moves from coding to design and to stories. The adjustment rule: when an area scored two or more points below your best area, move 5 percentage points of the split from the best area to it, and look again at the next checkpoint. One step at a time keeps the strong areas from going stale. If your target role has no design round, its share goes to coding and behavioural preparation. The material itself lives in other tracks of MySmartCoPilot Learn: this plan schedules lessons from coding patterns, data structures and algorithms, low-level design, system design and behavioural interviews, and from aptitude when your process starts with an aptitude test.

Study Planner & Revision Timetable Lay the weeks out day by day, with spaced reviews of each topic before the interview.

Checkpoint

Check: Splitting the hours by target

  1. Question 1 of 2 An SDE-2 target starts at 40 % coding and 25 % system design. The diagnostic scores coding 4, system design 2 and behavioural 3. After the lesson's adjustment rule, what share of the week does system design get, in percent?

    Type a number.

    Show the answer: Question 1 of 2

    Answer: 30 %

    System design scored two points below the best area, coding, so 5 percentage points move from coding to system design: 25 + 5 = 30 %, and coding falls to 35 %. Behavioural is only one point behind, so it stays at 15 %.

  2. Question 2 of 2 Your target role has no design round. What happens to the design share of the starting split?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: It goes to coding and behavioural preparation

    If your target role has no design round, its share goes to coding and behavioural preparation, the areas that role does test.

Every week repeats four sessions, and misses come back at growing gaps

Every week of the plan holds four kinds of session:

  1. Learn: a new pattern or topic, from its lesson, with one problem solved slowly.
  2. Timed practice: problems against the clock, with no hints in the first two thirds of the time.
  3. Spaced review: re-solves of problem families from your error log, and stories retold.
  4. One mock: a full round, followed by a written debrief.

In the first half of the plan, take one pattern at a time, so that each one becomes familiar. In the second half, practise in mixed sets in which nothing announces the pattern, because a real round does not announce it either.

Every problem you miss or solve slowly goes into an error log: A list of every problem you missed or solved slowly, with the day, the family of problem, what went wrong, the minutes it took and the hints you needed, from which the re-solves are scheduled.: the day, the family of problem, what went wrong, the minutes it took and the hints you needed. The entry starts a ladder of re-solve: Solving a fresh problem from a family you missed earlier, a day or more after the miss, to check that what went wrong is fixed. Repeating the same problem tests memory instead., here after gaps of 1, 3, 7, 14 and 30 days, each counted from the last attempt. A miss at any re-solve starts the gaps again at 1 day, and any day on or after the interview is dropped. Walk through one entry of a plan whose interview is on day 42:

Timeline · 9 events in order One error-log entry, re-solve by re-solve Walk through the merging-intervals entry from the day it was missed. Each event says which gap brought it and what the next gap is.
  1. Day 9

    Missed, and logged miss

    A merging-intervals problem took 38 minutes and a hint, because the intervals were sorted by their end instead of their start. The entry goes into the error log, and the first gap is 1 day.

  2. Day 10

    Re-solve 1, solved solved

    A fresh problem of the same family, 1 day after day 9, solved inside the time limit without a hint. The next gap grows to 3 days.

  3. Day 13

    Re-solve 2, solved solved

    3 days after day 10, another fresh problem of the family is solved, so the next gap grows to 7 days.

  4. Day 20

    Re-solve 3, missed miss

    7 days after day 13 the same mistake comes back. A miss starts the gaps again at 1 day, counted from day 20.

  5. Day 21

    Due, 1 day after the miss due

    The first re-solve of the new ladder. If it is solved, the next gap is 3 days.

  6. Day 24

    Due, if day 21 is solved due

    3 days after day 21. If it is solved too, the gap after it is 7 days.

  7. Day 31

    Due, if the re-solves before it are solved due

    7 days after day 24, the last re-solve before the interview. The next gap would be 14 days.

  8. Day 42

    The interview

    The plan ends here: any re-solve on or after this day is dropped, because it can no longer help in the round.

  9. Day 45

    Dropped dropped

    14 days after day 31 falls after the interview, so it never enters the plan. Three re-solves are still to come: days 21, 24 and 31.

The timeline has 9 events, from Day 9 to Day 45.

The program below computes the same calendar from the entry and the re-solves done so far. Change done to the results of your own re-solves and run it again:

A spaced re-solve calendar, from one error-log entry JavaScript · resolve/resolve.mjs
// A spaced re-solve calendar for one problem family, started by an entry in the error log. The family comes back
// after gaps of 1, 3, 7, 14 and 30 days, each counted from the last attempt (a MySmartCoPilot schedule). A miss at
// any re-solve starts the gaps again at 1 day, and a day on or after the interview is dropped. Days count from the
// start of the plan. Change `done` and press Run.

const GAPS = [1, 3, 7, 14, 30];
const interviewDay = 42;
const entry = { day: 9, family: 'merging intervals', what: 'sorted by end instead of start; needed a hint; 38 minutes' };
// The re-solves done so far, in order: [day, solved inside the time limit without a hint?]
const done = [
  [10, true],
  [13, true],
  [20, false],
];

const days = (n) => `${n} day${n === 1 ? '' : 's'}`;

console.log(`Error log, day ${entry.day}: ${entry.family}: ${entry.what}`);
let last = entry.day;
let step = 0;
for (const [day, solved] of done) {
  const result = solved ? 'solved' : 'missed, so the gaps start again at 1 day';
  console.log(`  day ${day}, ${days(day - last)} after day ${last}: ${result}`);
  step = solved ? step + 1 : 0;
  last = day;
}
const upcoming = [];
for (; step < GAPS.length; step++) {
  const day = last + GAPS[step];
  if (day >= interviewDay) {
    console.log(`  day ${day}, ${days(GAPS[step])} after day ${last}: dropped, on or after the interview on day ${interviewDay}`);
    break;
  }
  console.log(`  day ${day}, ${days(GAPS[step])} after day ${last}: due${upcoming.length ? ', if the re-solves before it are solved' : ''}`);
  upcoming.push(day);
  last = day;
}
if (step === GAPS.length) {
  console.log(upcoming.length ? '  then retired, once the re-solve at the 30-day gap is solved' : '  retired: solved at the 30-day gap');
}
console.log(upcoming.length ? `Re-solves still to come: days ${upcoming.join(', ')}` : 'No re-solves left before the interview');

Output

Error log, day 9: merging intervals: sorted by end instead of start; needed a hint; 38 minutes
  day 10, 1 day after day 9: solved
  day 13, 3 days after day 10: solved
  day 20, 7 days after day 13: missed, so the gaps start again at 1 day
  day 21, 1 day after day 20: due
  day 24, 3 days after day 21: due, if the re-solves before it are solved
  day 31, 7 days after day 24: due, if the re-solves before it are solved
  day 45, 14 days after day 31: dropped, on or after the interview on day 42
Re-solves still to come: days 21, 24, 31

Recorded with Node.js 24.21.0 on macOS 26 arm64. To run it yourself: mise exec node@24.21.0 -- node resolve.mjs

The family was missed on day 9 and solved on days 10 and 13, so its next gap was 7 days. On day 20 it was missed again, and the gaps started over: days 21, 24 and 31 are due, and day 45 falls after the interview and is dropped. A re-solve takes one fresh problem of the same family, not the same problem again: a problem you remember tests your memory of it, not the pattern.

Flashcard Maker Keep definitions and complexities you keep forgetting as flashcards, and go over them at growing gaps.

Checkpoint

Check: The weekly cycle and the re-solve ladder

  1. Question 1 of 2 A family is missed on day 5 and then solved at its re-solves on days 6, 9 and 16. With gaps of 1, 3, 7, 14 and 30 days, each counted from the last attempt, on which day is the next re-solve due?

    Type a number.

    A hint

    Day 16 was the re-solve at the 7-day gap. Which gap comes after it?

    Show the answer: Question 1 of 2

    Answer: 30 day

    Day 6 is 1 day after the miss, day 9 is 3 days after day 6 and day 16 is 7 days after day 9. All three were solved, so the next gap is 14 days: 16 + 14 = 30.

  2. Question 2 of 2 Why does a re-solve take a fresh problem of the same family rather than the problem you missed?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: A problem you remember tests your memory of it, not the pattern

    A remembered solution can be rebuilt without understanding it. A fresh problem of the family can only be solved with the pattern, which is what the re-solve is meant to check.

Two worked plans show where the hours go

Here are the rules applied to two invented candidates: a final-year student with 12 weeks of 10 hours for new-graduate roles, and an engineer with three years of experience and 6 weeks of 8 hours for an SDE-2 loop. The program works in minutes, so every total adds up exactly:

Two plans, with every total recomputed JavaScript · plans/plans.mjs
// Two worked study plans, with every total recomputed. Each plan splits its weekly minutes across areas by its
// target role (the splits are MySmartCoPilot's starting points, adjusted at each checkpoint). Every week has one timed
// mock, and the last week is light: half time for every area except the mock, and nothing new in the last 48 hours.
// Change a plan's weeks, hours or split and press Run.

const plans = [
  {
    who: 'Final-year student, new-graduate SDE roles',
    weeks: 12,
    hoursPerWeek: 10,
    split: [['coding', 60], ['CS fundamentals', 15], ['behavioural', 15], ['mocks', 10]],
  },
  {
    who: 'SDE-2 candidate, three years of experience',
    weeks: 6,
    hoursPerWeek: 8,
    split: [['coding', 40], ['system design', 25], ['low-level design', 10], ['behavioural', 15], ['mocks', 10]],
  },
];

/** "1 h 30 min", "45 min" or "6 h" from a number of minutes. */
function hm(minutes) {
  const h = Math.floor(minutes / 60);
  const m = Math.round(minutes - h * 60);
  if (!h) return `${m} min`;
  return m ? `${h} h ${m} min` : `${h} h`;
}

const line = (pairs) => pairs.map(([area, minutes]) => `${area} ${hm(minutes)}`).join(' · ');

for (const p of plans) {
  const percent = p.split.reduce((sum, [, pct]) => sum + pct, 0);
  if (percent !== 100) throw new Error(`${p.who}: the split adds up to ${percent} %, not 100 %`);
  const weekly = p.hoursPerWeek * 60;
  const normal = p.split.map(([area, pct]) => [area, (weekly * pct) / 100]);
  const last = normal.map(([area, minutes]) => [area, area === 'mocks' ? minutes : minutes / 2]);
  const totals = normal.map(([area, minutes], i) => [area, minutes * (p.weeks - 1) + last[i][1]]);
  const planned = totals.reduce((sum, [, minutes]) => sum + minutes, 0);
  const budget = p.weeks * weekly;

  console.log(`${p.who}: ${p.weeks} weeks × ${p.hoursPerWeek} h = ${hm(budget)}`);
  console.log(`  weeks 1 to ${p.weeks - 1}, each: ${line(normal)}`);
  console.log(`  week ${p.weeks}, light: ${line(last)}`);
  console.log(`  totals: ${line(totals)}`);
  console.log(`  planned ${hm(planned)} of ${hm(budget)}; ${hm(budget - planned)} left unused on purpose in the light week`);
  console.log('');
}

Output

Final-year student, new-graduate SDE roles: 12 weeks × 10 h = 120 h
  weeks 1 to 11, each: coding 6 h · CS fundamentals 1 h 30 min · behavioural 1 h 30 min · mocks 1 h
  week 12, light: coding 3 h · CS fundamentals 45 min · behavioural 45 min · mocks 1 h
  totals: coding 69 h · CS fundamentals 17 h 15 min · behavioural 17 h 15 min · mocks 12 h
  planned 115 h 30 min of 120 h; 4 h 30 min left unused on purpose in the light week

SDE-2 candidate, three years of experience: 6 weeks × 8 h = 48 h
  weeks 1 to 5, each: coding 3 h 12 min · system design 2 h · low-level design 48 min · behavioural 1 h 12 min · mocks 48 min
  week 6, light: coding 1 h 36 min · system design 1 h · low-level design 24 min · behavioural 36 min · mocks 48 min
  totals: coding 17 h 36 min · system design 11 h · low-level design 4 h 24 min · behavioural 6 h 36 min · mocks 4 h 48 min
  planned 44 h 24 min of 48 h; 3 h 36 min left unused on purpose in the light week

Recorded with Node.js 24.21.0 on macOS 26 arm64. To run it yourself: mise exec node@24.21.0 -- node plans.mjs

What the numbers say:

  • The student gets 6 hours of coding every week, 1 hour 30 minutes each of CS fundamentals and behavioural preparation, and a 1-hour mock. Over twelve weeks that is 69 hours of coding and 12 of mocks, and the light last week leaves 4 hours 30 minutes of the budget unused on purpose.
  • The SDE-2 candidate has 48 minutes a week for low-level design. That is enough for one timed design a week, which keeps a skill sharp, but not enough to learn the subject from the start. If the diagnostic scored low-level design at 1, the split has to move, or the target has to.
  • Mocks at 10 % give the SDE-2 candidate 4 hours 48 minutes over six weeks, which is six mocks of 48 minutes: a 45-minute round and a short debrief each week.

Give the SDE-2 candidate more hours

Press Edit, change the second plan’s hoursPerWeek from 8 to 10 and run it again: low-level design rises to 1 hour a week, and each mock to 1 hour.

Study Focus Timer Run each timed session against a real clock, and keep a log of the sessions you finished.

Checkpoint

Check: Reading a worked plan's hours

  1. Question 1 of 2 In the worked plan of the final-year student, how many hours of coding does the plan hold over its 12 weeks?

    Type a number.

    Show the answer: Question 1 of 2

    Answer: 69 hours

    6 hours a week for weeks 1 to 11 is 66 hours, and the light week 12 adds 3 more: 69 hours, as the program prints.

  2. Question 2 of 2 The SDE-2 candidate's split gives low-level design 48 minutes a week. What is that enough for?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: One timed design a week, which keeps a skill sharp

    48 minutes a week is enough for one timed design, which keeps a skill sharp, but not enough to learn the subject from the start. If the diagnostic scored low-level design at 1, the split has to move, or the target has to.

Change the plan when a checkpoint misses twice in a row

Hours studied measure effort, not readiness, so the checkpoints measure what the rounds measure. Look at them every two weeks, and every week in the final month:

Measure Target by the final month When it misses twice in a row
Minutes to a working solution Inside your round’s pace, for example 20 minutes a problem Move hours to timed practice of your slowest patterns
Hints per problem None on patterns you have covered Re-solve those families sooner, and learn fewer new ones
Bugs your own tests caught At least one test before you say “done”, every time Make tracing two cases by hand part of every session
Story delivery Under three minutes, with a result you can measure Retell the stories aloud and cut the background

The rule for changing the plan, a MySmartCoPilot rule: change it when a checkpoint misses its target twice in a row, not after one bad day. Move hours towards the measure that missed, put a topic on a list of what you will not cover, or, if the gap is too large for the weeks that are left, ask the recruiter early whether the date can move.

Key idea

One miss is noise and two in a row are a pattern: change the plan at the second miss, by moving hours towards the measure that missed.

Checkpoint

Check: Checkpoints that change the plan

  1. Question 1 of 2 When does the lesson's rule change the plan?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: When a checkpoint misses its target twice in a row

    One miss is noise and two in a row are a pattern. At the second miss, move hours towards the measure that missed, cut a topic, or ask early whether the date can move.

  2. Question 2 of 2 At two checkpoints in a row you still take hints on patterns you have already covered. Which change does the lesson's table give?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Re-solve those families sooner, and learn fewer new ones

    Each measure has its own change. Hints on covered patterns call for more re-solves of those families and fewer new patterns, until the hints stop.

Practise: check your own plan against five rules

The program below checks a plan against five rules: the hours fit the budget, every area of the target role appears, the gaps between sessions on one topic never shrink, each of the last four weeks has a timed mock, and nothing new starts in the last 48 hours. The sample plan breaks three of them. Press Run to see why, then replace the sessions with your own plan, fix every line it reports, and run it again.

Check a plan against five rules JavaScript · validate/validate.mjs
// Checks a study plan against five rules and explains each failure. Days count from the start of the plan (day 1);
// the interview is on `interviewDay`. Replace the sample with your own plan and press Run.
//   kind: learn (new material) · timed (practice against the clock) · review (a re-solve or a story retold) · mock

const plan = {
  hoursPerWeek: 6,
  interviewDay: 29,
  areas: ['coding', 'design', 'behavioural'],
  sessions: [
    // [day, area, kind, minutes, topic]
    [1, 'coding', 'learn', 60, 'hash maps'],
    [2, 'coding', 'learn', 60, 'two pointers'],
    [3, 'coding', 'timed', 60, 'hash maps'],
    [4, 'behavioural', 'learn', 60, 'stories'],
    [5, 'design', 'learn', 60, 'caching'],
    [6, 'coding', 'mock', 60, 'mixed'],
    [8, 'behavioural', 'review', 30, 'stories'],
    [9, 'coding', 'review', 45, 'two pointers'],
    [10, 'coding', 'review', 45, 'hash maps'],
    [11, 'coding', 'timed', 60, 'two pointers'],
    [12, 'design', 'timed', 60, 'caching'],
    [13, 'behavioural', 'timed', 45, 'stories'],
    [15, 'coding', 'learn', 60, 'intervals'],
    [16, 'coding', 'timed', 60, 'intervals'],
    [17, 'coding', 'review', 45, 'hash maps'],
    [19, 'design', 'review', 45, 'caching'],
    [20, 'coding', 'mock', 60, 'mixed'],
    [22, 'coding', 'review', 45, 'intervals'],
    [23, 'coding', 'timed', 60, 'mixed'],
    [26, 'design', 'mock', 60, 'caching'],
    [26, 'behavioural', 'timed', 45, 'stories'],
    [27, 'coding', 'learn', 60, 'tries'],
    [28, 'coding', 'review', 30, 'intervals'],
  ],
};

const week = (day) => Math.ceil(day / 7);
const hm = (m) => (m % 60 ? `${Math.floor(m / 60)} h ${m % 60} min` : `${m / 60} h`);

function validate(p) {
  const problems = [];
  const lastDay = p.interviewDay - 1;
  const weeks = week(lastDay);
  const budget = weeks * p.hoursPerWeek * 60;
  const used = p.sessions.reduce((sum, s) => sum + s[3], 0);

  // 1. The hours fit the budget.
  if (used > budget) problems.push(`budget: ${hm(used)} planned, but ${weeks} weeks at ${p.hoursPerWeek} h give ${hm(budget)}: cut sessions or lower their minutes.`);
  // 2. Every area of the target role appears.
  for (const area of p.areas) {
    if (!p.sessions.some((s) => s[1] === area)) problems.push(`areas: no session practises ${area}, which the target role tests.`);
  }
  // 3. Gaps between sessions on one topic never shrink (mixed sets have no single topic).
  const byTopic = new Map();
  for (const [day, , , , topic] of p.sessions) if (topic !== 'mixed') byTopic.set(topic, [...(byTopic.get(topic) ?? []), day]);
  for (const [topic, days] of byTopic) {
    const sorted = [...days].sort((a, b) => a - b);
    for (let i = 2; i < sorted.length; i++) {
      const before = sorted[i - 1] - sorted[i - 2];
      const after = sorted[i] - sorted[i - 1];
      if (after < before) {
        problems.push(`spacing: ${topic} comes back after ${before} days, then after only ${after} (day ${sorted[i]}): make each gap at least as long as the one before.`);
        break;
      }
    }
  }
  // 4. A timed mock in each of the last four weeks.
  for (let w = Math.max(1, weeks - 3); w <= weeks; w++) {
    if (!p.sessions.some((s) => s[2] === 'mock' && week(s[0]) === w)) problems.push(`mocks: week ${w} has no timed mock; each of the last four weeks needs one.`);
  }
  // 5. Nothing new in the last 48 hours.
  for (const [day, , kind, , topic] of p.sessions) {
    if (kind === 'learn' && day >= p.interviewDay - 2) problems.push(`nothing new: day ${day} starts ${topic}, in the last 48 hours before the interview: move it earlier or leave it out.`);
  }

  console.log(`Plan: ${weeks} weeks, interview on day ${p.interviewDay}, ${hm(used)} planned of ${hm(budget)}`);
  if (!problems.length) console.log('All five checks pass.');
  for (const msg of problems) console.log(`- ${msg}`);
}

validate(plan);

Output

Plan: 4 weeks, interview on day 29, 20 h 15 min planned of 24 h
- spacing: two pointers comes back after 7 days, then after only 2 (day 11): make each gap at least as long as the one before.
- mocks: week 2 has no timed mock; each of the last four weeks needs one.
- nothing new: day 27 starts tries, in the last 48 hours before the interview: move it earlier or leave it out.

Recorded with Node.js 24.21.0 on macOS 26 arm64. To run it yourself: mise exec node@24.21.0 -- node validate.mjs

The sample comes back to two pointers after 7 days and then after only 2, has no mock in week 2, and starts tries on day 27, two days before the interview. Moving the tries session into week 3 and the day-11 two-pointer session to day 16, and adding a mock in week 2, makes all five checks pass.

Then take the self-check on the seven ideas of the plan. It starts with the idea where your answers have been weakest, gets harder as you answer correctly, and repeats any question you miss once at the end:

Practice that adapts to you

Practise this lesson

14 questions about 7 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.

  1. Question 1 of 14 Which two study techniques did the review of ten techniques by Dunlosky and colleagues rate highest?

    Choose every answer that is right.

    Show the answer: Question 1 of 14

    Answer:

    • Distributed practice
    • Practice testing

    Practice testing and distributed practice earned the top rating; interleaving landed in the middle, and rereading and highlighting near the bottom.

  2. Question 2 of 14 You have three spare evenings for graph problems before a mock. Which plan follows the research best?

    Choose one answer.

    Show the answer: Question 2 of 14

    Answer: Evening 1: learn breadth-first search with one problem solved slowly; evening 2: two timed problems from a blank page; evening 3: a fresh graph problem mixed with a tree problem

    Test yourself without the answer, come back after a gap, and mix patterns once each is familiar: practice testing, distributed practice and interleaving, in that order of importance.

  3. Question 3 of 14 A plan has 8 weeks of 6 hours, with 10 % of each week for the mock. With the lesson's rule for the last week, every area at half time except the mock, how many hours does the last week hold?

    Type a number.

    A hint

    Work in minutes. Take the mock out, halve the rest, then add the mock back.

    Show the answer: Question 3 of 14

    Answer: 3.3 hours (anything from 3.29 to 3.31 counts)

    A normal week is 360 minutes, of which the mock takes 36. The other 324 are halved to 162, and the mock stays at 36: 198 minutes, which is 3 hours 18 minutes, or 3.3 hours.

  4. Question 4 of 14 You have an interview in week 4 with an employer you rank low, and the loop you care most about is in week 7. Which date do you plan back from?

    Choose one answer.

    Show the answer: Question 4 of 14

    Answer: The week-7 loop, with the week-4 interview as a checkpoint on the way

    With several interviews, plan for the first one that matters and treat the rest as later checkpoints. The week-4 interview then shows how the plan is working, three weeks before the loop.

  5. Question 5 of 14 What makes the week-1 diagnostic a fair measurement?

    Choose one answer.

    Show the answer: Question 5 of 14

    Answer: Original problems you have not seen recently, under the conditions of your round

    The diagnostic uses original problems of medium difficulty that you have not seen recently, at the pace and in the editor of your round, so that its scores say where you stand.

  6. Question 6 of 14 In the diagnostic you tell a story in four minutes. It has a clear result, but no number. What does it score?

    Choose one answer.

    Show the answer: Question 6 of 14

    Answer: 3: complete, but over time or without a number

    A complete story scores 3 when it runs over time or lacks a number. Write down the four minutes, so that a later checkpoint can show the story getting shorter.

  7. Question 7 of 14 A new-graduate target starts at 60 % coding, 15 % CS fundamentals, 15 % behavioural and 10 % mocks. The diagnostic scores coding 4, CS fundamentals 3 and behavioural 2. What does the adjustment rule do?

    Choose one answer.

    Show the answer: Question 7 of 14

    Answer: Moves 5 percentage points from coding to behavioural, making them 55 % and 20 %

    An area two or more points below the best one gains 5 percentage points from the best area. Behavioural, at 2, is two points behind coding, at 4; CS fundamentals, at 3, is not.

  8. Question 8 of 14 Which target's starting split gives system design the largest share?

    Choose one answer.

    Show the answer: Question 8 of 14

    Answer: Senior and staff, with 35 %

    New graduates start with no system design, SDE-2 targets with 25 % and senior and staff targets with 35 %, while coding falls from 60 % to 40 % to 25 %.

  9. Question 9 of 14 A family is missed on day 9 and solved at its re-solve on day 10. At the next re-solve, on day 13, the same mistake comes back. With the lesson's gaps, on which day is the next re-solve due?

    Type a number.

    Show the answer: Question 9 of 14

    Answer: 14 day

    A miss starts the gaps again at 1 day, counted from the day of the miss: 13 + 1 = 14. If day 14 is solved, the next gap is 3 days.

  10. Question 10 of 14 Why does the second half of the plan practise in mixed sets?

    Choose one answer.

    Show the answer: Question 10 of 14

    Answer: A real round does not announce its pattern, so recognising the pattern is part of the skill

    The first half takes one pattern at a time so each becomes familiar; the second half mixes them, because a real round does not announce the pattern either.

  11. Question 11 of 14 The SDE-2 candidate finds 10 hours a week instead of 8. With the same split (25 % system design) and the same light last week, how many hours of system design does the six-week plan hold?

    Type a number.

    A hint

    System design gets 25 % of 600 minutes in weeks 1 to 5, and half of that in week 6.

    Show the answer: Question 11 of 14

    Answer: 13.75 hours (anything from 13.74 to 13.76 counts)

    25 % of 600 minutes is 150 minutes a week, so weeks 1 to 5 hold 750 minutes. The light week 6 halves it to 75: 825 minutes in all, which is 13.75 hours. Press Edit on the program and set hoursPerWeek to 10 to check it.

  12. Question 12 of 14 Why does the student's plan leave 4 hours 30 minutes of its budget unused?

    Choose one answer.

    Show the answer: Question 12 of 14

    Answer: The light last week halves every area except the mock, and the hours it frees are rest

    The light last week keeps the mock at full length and halves every other area, so 4 hours 30 minutes of the 120-hour budget are rest before the interview.

  13. Question 13 of 14 What do the plan's checkpoints measure?

    Choose one answer.

    Show the answer: Question 13 of 14

    Answer: What the rounds measure, such as minutes to a working solution, hints, self-caught bugs and story length

    Hours studied measure effort, not readiness. The checkpoints track minutes, hints, self-caught bugs and story delivery, the things a round measures.

  14. Question 14 of 14 Four weeks before the interview, minutes to a working solution have missed their target at two checkpoints in a row, and the gap is far larger than four weeks can close. What does the lesson's rule suggest?

    Choose one answer.

    Show the answer: Question 14 of 14

    Answer: Move hours to timed practice, and ask the recruiter early whether the date can move

    Two misses in a row change the plan. Move hours towards the measure that missed, cut what you will not cover, and if the gap is still too large for the weeks left, ask the recruiter early whether the date can move.

Interview questions

How do you learn a new technical topic so that you still remember it a month later? (warm-up)

By testing myself rather than rereading, and by coming back to it at growing gaps. When I learn a new topic, I read or watch the explanation once, then close it and work a problem or write the idea down from memory, checking what I got wrong. I keep the topics I miss in a log and return to each one a day later, then a few days later, then a week or two later, using a fresh problem each time. The research agrees: a review of ten study techniques gave its top rating only to practice testing and to spreading practice over time, while rereading, which feels productive, rated low. A good answer also gives a real example, such as a framework learnt for a project, and how you checked that it stuck.

Choose the answer you would give to each of these, and read why the other choices fall short:

Checkpoint

Interview round: learning that lasts

  1. Question 1 of 2 An interviewer asks how you learn a new technical topic so that you still remember it a month later. Which answer gives the most evidence?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: I close the material, solve or write it from memory, log what I miss and come back to it after a day, a few days and a week, each time with a fresh problem

    The strongest answer describes a method that the research supports, testing from memory and coming back at growing gaps, rather than effort or exposure.

  2. Question 2 of 2 The interviewer follows up: "Give me an example." What makes your example convincing?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: A real topic you learnt, how you tested yourself on it, and how you checked later that you still could use it

    An example convinces when it has a real topic, the method you used and a later check that it stuck. The warm-up answer above ends on exactly that.

Two questions from this module’s bank start from the plan of this lesson: dividing a fixed budget when one part is far weaker, and learning a skill fast with evidence that it worked:

Model answers open with any pass: ₹79 for 1 week ($2.99), one payment that never renews.

  1. Fresher to mid

    You have six weeks and eight hours a week for a goal with four parts, and a quick test shows that one part is far weaker than the others. How do you split the time, and how would you know by week two that the plan is failing?

    Model answer, Pro. Model answers open with any pass; prices are in the notice on this page. First step and follow-ups

  2. Fresher to senior

    Tell me about a time you had to learn a skill fast. How did you structure the practice, and how did you know it was working?

    Model answer, Pro. First step and follow-ups

Key takeaways

  • Practice testing and spacing earned the research’s top rating and rereading one of its lowest, so every session of the plan asks you to solve or recall without the answer in view, and every topic comes back after a gap.
  • The budget is the weeks times the weekly hours; the last week is light, nothing new starts in the last 48 hours, and each of the final four weeks holds a timed mock.
  • A week-1 diagnostic under the conditions of your rounds gives each area a score from 1 to 4, and its measurements matter more than the scores.
  • The split starts from the target role and moves 5 points at a time towards any area two or more points behind.
  • Each week holds new material, timed practice, re-solves and a mock; misses come back after gaps of 1, 3, 7, 14 and 30 days from the last attempt, on fresh problems of the same family.
  • The checkpoints measure minutes, hints, self-caught bugs and story length, and the plan changes when one misses its target twice in a row.

Terms in this lesson

diagnostic
A short timed test of each area a round covers, taken and scored at the start of a study plan, so that the hours go to the weakest areas rather than the favourite ones.
distributed practice
Spreading the study of one topic over sessions on different days instead of one long session. The best gap between the sessions grows with how long you need to remember.
error log
A list of every problem you missed or solved slowly, with the day, the family of problem, what went wrong, the minutes it took and the hints you needed, from which the re-solves are scheduled.
interleaving
Mixing different kinds of problem in one practice session, so that each problem has to be recognised before it can be solved, as in a real round.
practice testing
Recalling or solving without the answer in view, such as working a problem from a blank page or writing down what you remember. A review of ten study techniques rated it one of the two most useful.
re-solve
Solving a fresh problem from a family you missed earlier, a day or more after the miss, to check that what went wrong is fixed. Repeating the same problem tests memory instead.

References

Related tools

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.