2 min lesson
Train both modes deliberately
Match each case in "Train both modes deliberately" to the signal and response that fit it.
Step 1 of 2
Train both modes deliberately
Cold coding, no assist
Rebuild editor primitives by hand: a gap buffer, a simple rope, a line index.
Apply a diff to a buffer without corrupting it on messy input.
Disciplined AI-assisted
Generate a draft, then read every line aloud before trusting it.
Name what you'd test, run it and reject suggestions that miss an edge case.
- 1Clarify first. Ask two to four sharp questions about inputs, edge cases and what “done” means before you type.
- 2Narrate as you go. Say what you're trying and why; silence reads as guessing, even when you're right.
- 3When AI is allowed, interrogate it. Treat a completion as a draft from a fast junior engineer whose work you own.
- 4Prove it works. A quick test or a manual check on a deliberately ugly input beats “it should be fine.”
- 5Catch your own bug out loud. Spotting and fixing your own mistake is a positive signal, not an admission of weakness.
AI off here - you'd write this by hand and narrate the edge casests
// Apply a single replace edit to a text buffer by character offset. // Edge cases I'm watching: start > end, offsets past EOF, empty replacement. function applyEdit(text: string, start: number, end: number, replacement: string): string { if (start < 0 || end < start || end > text.length) { throw new RangeError(`bad edit range [${start}, ${end}] for len ${text.length}`); } return text.slice(0, start) + replacement + text.slice(end); } // Quick check before I trust it: applyEdit("hello", 1, 4, "i") === "hio"
Interview move
If a screen allows AI and the model hands you something that looks right, narrate the review: “this is close, but it doesn't guard against an end offset past the buffer length - let me fix that before I trust it.” Owning and correcting model output is exactly the behavior the paid onsite scales up to a full day.