Recognizing When You're Stuck
The first step to getting unstuck is recognizing what type of stuck you are. Different problems require different solutions.
Types of Being Stuck
1. "I Don't Understand the Problem"
Symptoms:
- Can't explain the problem in your own words
- Unsure what the input/output format is
- Don't know what "valid" means in the context
Why this happens:
- Problem statement is ambiguous
- You skipped the understanding phase
- Domain-specific terminology is unfamiliar
Quick fix:
You: "Let me make sure I understand. We need to find...
Is that correct?"
You: "Can you walk me through an example?"
You: "What should we return if there's no solution?"
2. "I Have No Idea Where to Start"
Symptoms:
- Blank mind, no approach comes to mind
- Every idea seems equally valid/invalid
- Feel overwhelmed by the problem
Why this happens:
- Problem seems too complex
- Haven't seen similar problems
- Trying to solve everything at once
Quick fix:
- Start with brute force
- Break problem into smaller pieces
- Work through examples manually
3. "My Approach Isn't Working"
Symptoms:
- Have an idea but can't implement it
- Logic seems sound but produces wrong results
- Keep hitting edge cases
Why this happens:
- Approach is fundamentally flawed
- Missing edge cases in logic
- Implementation doesn't match design
Quick fix:
- Trace through your logic with an example
- Test each component separately
- Consider a different approach
4. "I'm Close But Something's Wrong"
Symptoms:
- Code mostly works but fails some cases
- Off-by-one errors or boundary issues
- Logic is right but implementation has bugs
Why this happens:
- Small logic error
- Index manipulation mistake
- Edge case not handled
Quick fix:
- Walk through the failing case
- Add print statements
- Check boundary conditions
5. "I Can't Optimize This"
Symptoms:
- Have a working solution
- Know it's too slow
- Can't figure out how to make it faster
Why this happens:
- Unfamiliar with optimization techniques
- Don't recognize the pattern
- Need different data structure
Quick fix:
- Identify bottleneck
- Consider different data structures
- Ask about hints
Self-Diagnosis Questions
Ask yourself these to identify your stuck type:
Understanding:
- Can I restate the problem in my own words?
- Do I know what the input and output look like?
- Can I explain what makes a solution valid?
Approach:
- Do I have any idea how to solve this?
- Can I solve a simpler version?
- Have I seen anything similar before?
Implementation:
- Does my approach make sense on paper?
- Can I trace through an example?
- Do I know how to code each step?
Debugging:
- Does it work for the basic case?
- Have I tested edge cases?
- Can I find the exact line that's wrong?
Optimization:
- What's my current time complexity?
- Where is the bottleneck?
- What operations am I repeating?
The 5-Minute Rule
If you're silent for 5 minutes, you're stuck. Say something:
❌ Bad: *5 minutes of silence*
✅ Good: "I'm thinking about whether we could use a hash map here..."
✅ Good: "Let me try a different approach. What if we..."
✅ Good: "I'm a bit stuck on how to handle the case where..."
Productive vs. Unproductive Stuck
Productive Stuck ✅
- Actively trying different approaches
- Testing hypotheses
- Communicating your thoughts
- Making incremental progress
You: "Let me try using two pointers... Hmm, that doesn't
handle duplicates well. What about sorting first?"
Unproductive Stuck ❌
- Silent thinking with no progress
- Staring at code without action
- Refusing to change approach
- Getting defensive
You: *stares at screen for 5 minutes*
Interviewer: "Would a hash map help?"
You: "No, I think my way will work."
*continues not working*
Early Warning Signs
Catch yourself before you're truly stuck:
Warning Sign 1: Circular Thinking
"Maybe I should use a stack... no, a queue...
or maybe a stack... wait, what about a queue..."
Fix: Pick one and try it. You can always switch.
Warning Sign 2: Overcomplicating
"I'll create a helper function that calls another helper
that uses a class with three methods..."
Fix: Start simple. Add complexity only if needed.
Warning Sign 3: Perfectionism
"I need to think through every possible edge case before
I write any code..."
Fix: Start coding with the main case. Handle edge cases after.
Warning Sign 4: Scope Creep
"What if the input is empty? Or negative? Or really large?
Or has duplicates? Or..."
Fix: Ask the interviewer which cases matter most.
The Stuck Spectrum
Not Stuck ──────────────────────────────────────── Completely Stuck
│ │ │ │
Progressing Need to Should ask Need
smoothly pivot for hint to restart
Know where you are:
- Minutes 0-5: Normal thinking time
- Minutes 5-10: Should communicate more, try something
- Minutes 10-15: Time to ask for help or pivot
- Minutes 15+: Definitely need intervention
Example: Recognizing Your Stuck Type
Problem: Find the longest substring without repeating characters.
Stuck Type 1 - Don't Understand:
You: "So we're looking for... any substring? Or the longest one?
And by 'repeating', do you mean the same character appears
twice anywhere in the substring?"
Stuck Type 2 - No Approach:
You: "Let me think about this... I could check every possible
substring, but that seems inefficient. Maybe I need a
different approach. What if I track characters I've seen?"
Stuck Type 3 - Approach Not Working:
You: "I'm trying to use a set to track characters, but when I
find a duplicate, I'm not sure how to handle it. Should
I remove just that character or everything before it?"
Stuck Type 4 - Small Bug:
You: "My solution works for 'abcabcbb' but fails for 'bbbbb'.
Let me trace through what happens... Oh, I see - I'm not
resetting my counter correctly."
Stuck Type 5 - Can't Optimize:
You: "I have an O(n²) solution checking every substring. I know
there's a better way with sliding window, but I'm not sure
how to implement the window shrinking logic."
Key Takeaway
You can't get unstuck if you don't know what kind of stuck you are. Take 30 seconds to diagnose before you act. Are you confused, blocked, buggy, or stuck on optimization? Each needs a different strategy.