Lesson 26 / 26

An Interview Coding Checklist

Finish strong.

Test, analyse, discuss

After coding, trace your solution on the example, then test edge cases: empty input, one element, duplicates, negatives, very large values. State time and space complexity and explain any trade-offs. If time remains, discuss improvements or follow-ups (streaming input, memory limits). Practise patterns with spaced repetition rather than solving random problems.

The checklist

Use it for every practice problem.

[ ] restated problem; clarified inputs, constraints, edge cases
[ ] worked an example by hand
[ ] stated brute force + complexity
[ ] identified the pattern (hash map, window, BFS, DP ...)
[ ] explained the optimised idea before coding
[ ] clean code: clear names, helper functions, no magic numbers
[ ] traced the example through the code
[ ] tested edge cases: empty, single, duplicates, negatives, large
[ ] stated time and space complexity
[ ] mentioned follow-ups or alternatives

Keep a mistake log

Writing down why you missed a problem (wrong pattern, off-by-one, missed edge case) turns practice into improvement.

Quick check: What should you do right after finishing the code?

  • Trace it on an example and test edge cases
  • Immediately say it is done
  • Rewrite it in another language
  • Delete the brute force notes and stop talking
Answer

Trace it on an example and test edge cases — Testing is part of the score.