Think more clearly / Problem Solving
Break the problem down
Breaking Down Problems Without Panic
A simple way to turn a messy ticket or interview prompt into smaller decisions you can actually trust.
The problem
You get a messy ticket or an interview prompt and your first instinct is to start coding.
That is usually where the wrong solution starts.
If the shape of the problem is still fuzzy, code only makes the confusion harder to undo.
Mental model
Treat the problem like something that needs structure before it needs implementation.
Start by naming four things:
- what goes in
- what must come out
- what cannot break
- what is still unclear
That already turns a vague problem into something you can reason about.
Breaking it down
A simple sequence is:
- restate the problem in plain words
- separate inputs, outputs, and constraints
- name the biggest unknown
- shrink the problem to the smallest useful version
The goal is not to sound smart. The goal is to remove ambiguity before you spend effort.
Simple example
Imagine the prompt is:
Build an endpoint to return the top 10 customers by revenue.
A weak start is:
I guess I need a sorted query.
A stronger start is:
- input: maybe a date range, tenant, or filters
- output: the top 10 customers and their revenue
- constraints: accuracy matters, latency matters, ties need a rule
- failure modes: missing data, bad filters, slow query
Now the problem is smaller, clearer, and easier to trust.
Common mistakes
- starting implementation before the problem is shaped
- ignoring constraints until they break the solution later
- solving future problems nobody asked for
- using ambiguity as permission to guess
How a senior thinks
A senior engineer does not try to look fast.
They try to get correct early.
That usually sounds like:
Before I code this, I want to lock the input, output, and main constraint. That gives me the right version of the problem first.
What the interviewer wants to see
Interviewers are usually looking for a few simple signals:
- you understood the problem
- you can reduce uncertainty
- you can explain your reasoning without getting lost
If you break the problem down calmly before coding, you already look stronger than someone who rushes into syntax.
Do not solve everything at once. Shape the problem first, then choose the implementation.
If you cannot define the input, output, and main constraint yet, you are not ready to code.