Lesson 27 — How to Run a Mock / Mixed Day

~20 minutes · Days 7, 14, 21, 29, 30 · mock-day process

Mock and mixed days are different from normal lesson days. There is no new LeetCode pattern to collect. The interview skill is choosing a direction under pressure, saying it clearly, and keeping the timer honest. This lesson gives you one protocol to run on Days 7, 14, 21, 29, and 30.

The invariant

Under a strict timer, state your approach and its complexity out loud before you write a line of code — the talking is the skill being tested.

That sentence is the whole day. A mock is not silent homework with a stopwatch attached. It is a rehearsal for the first two minutes of an interview: read, classify, propose, estimate, then code.

Mock day: the loose way first

The tempting version is O(T) time with almost no learning: start the timer, code silently, peek when stuck, and mark the session by whether tests pass. That burns the full session time T, but it does not tell you which skill broke: pattern choice, complexity, implementation, or communication.

The better version keeps the same timer, but forces a clean checkpoint before coding and a clean note after comparing.

1. Speak first approach + complexity 2. Code honestly no solution text during timer 3. Compare after record the reasoning gap Key insight: the first checkpoint happens before code timer starts 25 min: pattern name only if stuck timer ends

Mock-day protocol: the same timer, but the spoken approach comes before any code.

Mock day: the protocol

Treat this Python as the checklist, not as a program to submit:

def run_mock_day(problems, minutes):
    start_strict_timer(minutes)          # no pausing once it starts
    for problem in problems:
        say_approach_and_complexity(problem)  # before code
        attempt_without_solution(problem)     # real interview pressure
        if stuck_at_25_minutes(problem):
            read_pattern_name_only(problem)   # one small hint
            attempt_ten_more_minutes(problem)
        record_reasoning_gap(problem)         # not just pass/fail
    compare_then_encode(problems)             # after the timer

The key move is the first real line inside the loop: speak before typing. If the first sentence is confused, the code usually becomes confused too.

Transfer: same pressure, different day

Day 14 says "3 problems, 45 min timed." Days 29 and 30 say "Full Month-1 mock." Before opening the reveal: should those days use different rules, or the same skeleton with a different problem set?

Your prediction first — then reveal.

Same skeleton. Only the set changes. Day 14 pulls from strings and sliding window. Days 29 and 30 pull from the whole Month-1 block: arrays, strings, sliding window, stack, and linked list. The invariant stays the same: timer first, approach and complexity out loud, code second, compare after.

What the trade buys you

ApproachTimeSpace
Loose mixed day (silent coding)O(T) session timeO(1) useful notes
Mock protocol (talk, attempt, compare, encode)O(T) session timeO(k) mistake notes

Here T is the timer length and k is the number of problems reviewed. The time cost is the same. The protocol buys a record of what actually failed.

Practice — answer before you scroll past

1. What happens before the first code line?

2. The timer reaches 25 minutes and you are stuck. What next?

3. Which note belongs in the tracker after compare?

4. Which day uses this same protocol?

Your move (Days 7, 14, 21, 29, 30)

Run this exact checklist on each mixed or mock day:

  1. Choose the set: Day 7 uses the arrays block; Day 14 uses strings and sliding window; Day 21 uses stacks; Days 29 and 30 use the full Month-1 mix: arrays, strings, sliding window, stack, and linked list.
  2. Set the clock: use 45 minutes for Days 7, 14, and 21. For Days 29 and 30, run two 45-minute blocks with a short review break between them.
  3. Speak first: for each problem, say the pattern guess, brute force, better approach, and time/space complexity before typing.
  4. Attempt honestly: code without solution text. If stuck after 25 minutes, read only the pattern name and try ten more minutes.
  5. Compare after: only when the timer ends, watch or read the linked solution for the problem and find the exact reasoning gap.
  6. Encode: write one Notion note per miss: invariant, bug, or self-check gate to revisit.
Primary source

This is a process lesson, so there is no single problem video to watch. At the compare step, use the solution link attached to whichever problem was in the timed set, then write where that explanation diverged from your first plan.