TodayTools

Coding interview preparation flashcards

Patterns, habits and stories that get you through technical interviews.

Donate
Beginner friendly, starts from zero
Section
How to study
0
Coding interview preparationStart from zero · 1 of 11

What is a coding interview, in one plain sentence?

A coding interview is a session where you solve a programming problem, usually in 30 to 60 minutes, while talking through your thinking with an engineer.

Solve it out loud.
Show again
11 left
Got it

Tap to turn over. Swipe right if you know it, left to see it again.

All topics

What you will learn

  1. Start from zero

    • What a coding interview is4 cards
    • Key words5 cards
    • Getting ready2 cards
  2. Core basics

    • Big O4 cards
    • Arrays, strings and hashing5 cards
    • Stacks, queues and binary search4 cards
    • Interview method3 cards
  3. Next steps

    • Linked lists and trees4 cards
    • Heaps and graphs4 cards
    • Recursion patterns3 cards
    • More patterns3 cards
    • Assessments and behaviour3 cards
  4. Go deeper

    • Advanced algorithms6 cards
    • System design round2 cards
    • Getting unstuck2 cards
    • Modern interview formats3 cards
    • Career moves4 cards

Final test and certificate

10 questions drawn fresh from the whole topic, about 15 minutes. Sign in, score 80% or more and get a free certificate with your name and a public check link anyone can open, such as an employer or a teacher. Not signed in? Try a practice test from the cards.

Take the final test

Coding interview preparation at a glance

A coding interview is a test where you solve a programming problem while explaining your thinking, so a company can see how you work.

It is like a driving test: the examiner cares less about reaching the end of the road and more about how safely and clearly you drive, signal and handle surprises.

Words you will meet

Algorithm
A step-by-step method to solve a problem
Data structure
A way to store data, like a list or a dictionary, chosen to make some jobs fast
Big O
A short way to say how the work grows as the input grows
Edge case
An unusual input, like an empty list, that often breaks code
Brute force
The simplest solution that tries everything, often slow
Pattern
A known trick that solves a whole family of problems
Behavioural question
A question about how you acted in real past situations
Online assessment
A timed coding test taken on your own before live interviews

The steps

  1. 1. Start from zero (11 cards): What coding interviews are, what is judged and the words you will hear.
  2. 2. Core basics (16 cards): Big O, arrays, hashing, two pointers, stacks, queues, binary search and a step-by-step method.
  3. 3. Next steps (17 cards): Linked lists, trees, heaps, graphs, backtracking, DP, intervals, assessments and STAR stories.
  4. 4. Go deeper (17 cards): Dijkstra, topological sort, union-find, tries, LRU, system design, new formats and offers.
All 11 cards in Start from zero
What is a coding interview, in one plain sentence?
A coding interview is a session where you solve a programming problem, usually in 30 to 60 minutes, while talking through your thinking with an engineer.
What are the usual steps in a tech hiring process?
A recruiter call, often an online coding test, one or more technical rounds, a system design round for experienced roles, and a behavioural round about past work.
What is the interviewer really judging?
How you understand the problem, how you think and communicate, whether your code is correct and clean, and how you test it. A perfect answer in silence scores lower than you expect.
Explain a coding interview with an everyday picture.
Like a driving test: the examiner watches how you check mirrors, signal and react, not only whether you reach the end. Talking through your steps is your signalling.
What are an algorithm and a data structure?
An algorithm is the step-by-step method. A data structure is how you store the data, like a list or a dictionary. Choosing the right structure often makes the algorithm simple.
What does Big O mean, in plain words?
Big O says how the work grows when the input grows. O(n) means double the items, roughly double the work. O(n squared) means double the items, four times the work.
What is an edge case?
An unusual input that often breaks code: an empty list, one item, all items the same, negative numbers, or a huge input.
Brute force or pattern: what is the difference?
Brute force tries every possibility and is easy but often slow. A pattern is a known trick, like two pointers or a hash map, that solves a family of problems faster.
What are behavioural questions and online assessments?
Behavioural questions ask how you acted in real past situations ('Tell me about a conflict'). Online assessments are timed coding tests you take alone before live rounds.
What do you need before you start preparing?
One programming language you know well (Python is a popular choice for interviews), basic lists, loops and functions, and a few hours a week for steady practice.
What will you be able to do after this topic?
Analyse any solution's speed, pick the right pattern, run a calm interview from question to tested code, tell strong work stories and handle offers.
Coding interview preparation cheatsheet

Big O by structure (Python)

  • dict / set lookup O(1) average
  • list append / pop() O(1) amortised
  • x in list O(n)
  • list.insert(0, x) / pop(0) O(n)
  • sorted(items) O(n log n)
  • heappush / heappop O(log n)
  • deque.popleft() O(1)

Clue to pattern

  • Sorted input Binary search or two pointers
  • Subarray or substring with a rule Sliding window
  • Top k / k-th largest Heap
  • Levels / shortest steps BFS with a queue
  • All combinations Backtracking
  • Overlapping subproblems Dynamic programming
  • Matching brackets / next greater Stack
  • Groups and connections Union-find or DFS

Python helpers

  • Counter(items) Count each value
  • defaultdict(list) Dict with default empty list
  • deque() Fast queue at both ends
  • heapq.heappush(h, x) Min-heap insert
  • bisect.bisect_left(a, x) Binary search insert point
  • @functools.cache Memoise a function
  • enumerate(items) Index and value together

Interview flow

  • Clarify Input size, empty, duplicates, sorted, return value
  • Examples Normal plus one edge case
  • Brute force State it and its cost
  • Optimise Pick a pattern, explain why
  • Code Clean names, small helpers
  • Test Trace, edge cases, final Big O

Behavioural

  • STAR Situation, Task, Action, Result
  • Use I Your actions, not only the team's
  • Numbers Cut load time 40 percent, saved 5 hours a week
  • Failure story What you changed afterwards
Donate