Contents

Career & Leadership › Junior Habits & First Job

Productive Struggle

Struggling long enough to learn, but not so long you waste days.

Also known as: struggling productively, learning through struggle, getting stuck, desirable difficulty

Learning to program needs struggle. Wrestling with a problem, getting stuck, trying things and finally understanding is how the knowledge sticks. Having the answer handed to you too early (from a teammate, a tutorial or an AI) feels efficient and teaches less.

But struggle has a point of diminishing returns. Past it, you aren’t learning. You’re just stuck, frustrated and wasting time that you and the team need.

Productive vs unproductive

Productive struggleUnproductive struggle
You’re forming and testing hypothesesYou’re repeating the same thing hoping for a different result
Each attempt teaches you somethingNothing changes between attempts
You can say what you’ve learned in the last 20 minutesYou can’t say what to try next
The problem is conceptual (how does this work?)The problem is an environment quirk or a missing fact nobody could guess
You’re making progress, however slowlyYou’re anxious and making random edits

How to struggle well

  • Time-box it. Decide in advance how long you’ll try (for example 45 minutes), and note the time (when to ask for help).
  • Be systematic. Form a hypothesis, test it, record the result (debugging).
  • Change one thing at a time.
  • Narrow the problem (minimal reproducible example).
  • Explain it to a duck or in writing (rubber duck debugging).
  • Take a break. A walk often does more than another hour of staring.
  • When you do ask, ask for a hint first, not the full answer: “Where should I be looking?”
  • After solving it, reflect. What was the cause, and what would have found it sooner? Write it down (engineering journal).

Be careful with shortcuts

Copying a solution that you don’t understand gets you through today’s task and leaves the gap. Understanding is the thing that compounds (learning how to learn, learning while using AI).

Aim for the sweet spot: long enough that you earn the understanding, short enough that you don’t burn a day.