Education

Why Can I Understand Solutions but Not Solve Problems?

Understanding and solving are two different skills, and most study habits only train one of them. Here is why, and a method that builds the other, for maths and coding alike.

Modern Age Coders Team
Modern Age Coders Team September 28, 2026
8 min read
Understanding a solution feels easy while solving from a blank page feels hard, because they are different skills

It is one of the most common and most frustrating experiences in learning maths or coding. You read a worked solution, and every step makes sense. You watch a teacher solve a problem, and you follow all of it. Then you face a similar problem on your own, and your mind goes blank. It feels like you understood, so why can you not do it?

The answer is not that you are bad at the subject. It is that understanding a solution and producing one are two different skills, and most study habits only train the first. This guide explains the difference, why it catches almost everyone, and a practical method to build the second skill, with examples from both maths and programming.

Why understanding is not the same as solving

Understanding a solution compared with solving a problem: someone else chose the method versus choosing it yourself from a blank page
They feel like the same skill. They are not.

When you read a solution, someone else has already made all the hard decisions: which method to use, what to do first, what to ignore. You only need to check that each step follows from the last. That is recognition, and it is much easier than recall. When you solve a problem yourself, you have to make those decisions from nothing, with a blank page and no hints, while holding the whole plan in your head.

Psychologists have studied this gap for decades. Asher Koriat and Robert Bjork described "illusions of competence", where people judge how well they have learned something by how easy it feels while studying, and those judgements are often wrong. Reading a clear solution feels easy, so it feels like learning. But the ease comes from the solution being in front of you, not from anything you could now do alone.

â„šī¸

A simple test

After reading any solution, close it and try to write it out again from a blank page. If you cannot, you recognised it but did not learn it. That is not failure. It is information about what to practise.

Why it happens so often

  • Most studying is reading. Rereading notes, watching videos and going through solutions are all recognition. They are comfortable, which is why they are so popular.
  • Solutions hide the search. A finished solution shows the path that worked, not the three dead ends the expert tried first. So you never practise the part that is hard: choosing a direction when you do not know which is right.
  • Practice is often labelled. A worksheet headed "quadratic equations" tells you the method before you start. Exams and real problems do not.
  • AI and answer keys make it worse. When the solution is one click away, it is tempting to look after thirty seconds instead of struggling for ten minutes. Our guide on using ChatGPT to study without cheating covers how to avoid this.

The close-the-book method

Five steps of the close-the-book method: attempt first, read the solution, close it, recreate it from a blank page, return to a similar problem later
Step 4 is the one that turns recognition into skill.
  1. Attempt first, for real. Give it 10 to 15 minutes before looking at anything, even if you get nowhere. Research on the testing effect, including a well-known 2006 study by Henry Roediger and Jeffrey Karpicke, found that students who practised recalling material remembered much more of it a week later than students who spent the same time rereading it. Struggling first also makes the solution more meaningful when you see it.
  2. Read the solution carefully, asking at each step: why this, and why now? What would have made me think of it?
  3. Close it completely. Not face down on the desk. Away.
  4. Recreate it from a blank page. Write out the whole solution from memory. Where you get stuck is exactly the part you had not really learned. Look back only at that point, then close it again.
  5. Return later. A day or a week later, try a similar but different problem. This is where recognition finally becomes the ability to produce.

The method is slower than reading ten solutions. It is also the reason it works. Robert Bjork calls effort like this a "desirable difficulty": practice that feels harder in the moment but leads to much better long-term learning.

Fading: a bridge between reading and solving

When a topic is completely new, jumping straight to blank-page solving can be too much. Learning researchers such as Alexander Renkl have studied a gentler approach called fading: start with a full worked example, then hide the last step, then the last two, and so on, until you are solving the whole thing yourself. Here is a tiny program that does exactly that for an equation, which you can adapt to any subject:

fading.py
solution = [
    "Problem: solve 3x + 7 = 25",
    "Subtract 7 from both sides: 3x = 18",
    "Divide both sides by 3: x = 6",
    "Check: 3 x 6 + 7 = 25, correct",
]

def faded(steps, hidden):
    """Show a worked solution with the last `hidden` steps blanked out."""
    shown = len(steps) - hidden
    return [s if i < shown else "  ...  (your turn)" for i, s in enumerate(steps)]

for hidden in (0, 1, 2, 3):
    print(f"--- stage {hidden + 1}: {hidden} step(s) hidden")
    for line in faded(solution, hidden):
        print("   ", line)
Output
--- stage 1: 0 step(s) hidden
    Problem: solve 3x + 7 = 25
    Subtract 7 from both sides: 3x = 18
    Divide both sides by 3: x = 6
    Check: 3 x 6 + 7 = 25, correct
--- stage 2: 1 step(s) hidden
    Problem: solve 3x + 7 = 25
    Subtract 7 from both sides: 3x = 18
    Divide both sides by 3: x = 6
      ...  (your turn)
--- stage 3: 2 step(s) hidden
    Problem: solve 3x + 7 = 25
    Subtract 7 from both sides: 3x = 18
      ...  (your turn)
      ...  (your turn)
--- stage 4: 3 step(s) hidden
    Problem: solve 3x + 7 = 25
      ...  (your turn)
      ...  (your turn)
      ...  (your turn)
Four stages of a faded worked example for solving 3x + 7 = 25, with one more step hidden at each stage
Each stage asks for a little more of the solution.

You can do the same thing on paper with a sheet of card, covering one more line each time. It works just as well for code: read a complete program, then rewrite it with the last function missing, then the last two.

Examples: maths and coding

In maths

Say you read a worked solution for finding the area of an L-shaped room and it all makes sense. Close it. On a blank page, draw a different L-shape with different measurements and solve it. If you get stuck deciding how to split the shape, that decision is the real lesson, far more than the multiplication. Our guide to area and perimeter has worked examples to practise on.

In coding

Say you follow a tutorial that reverses a list, and every line makes sense. Close it. Open an empty file and write it again. Then change the problem slightly: reverse only the first half, or reverse words in a sentence. The moment you cannot continue without looking is the moment you are learning. Our basic Python programs are graded so you can practise this way.

How to tell which skill you are practising

Study habits that feel productive but mostly train recognition, compared with habits that feel hard but build problem solving
If it feels easy, it is probably recognition.
Feels productive, mostly recognition Feels harder, builds solving
Rereading notes and solutions Recreating a solution from a blank page
Watching someone solve problems Attempting before looking
Practice sheets labelled by topic Mixed problems where you choose the method
Nodding along to an explanation Explaining it yourself, out loud
💡

Mix your practice

Once you know several methods, practise with mixed problem sets where the topic is not labelled. Choosing which method to use is a skill of its own, and it is exactly what exams test. Our post on moving from USACO Bronze to Silver shows the same idea in competitive programming.

A note for parents

If your child says "I understood it in class but couldn't do the homework", believe them. It is a real and common experience, not an excuse. The most helpful response is not to explain the solution again, which trains recognition, but to ask them to try the first step and talk through what they are thinking. Our guide to helping with maths homework without solving it has questions that work well here.

Understanding a solution is watching someone else drive. Solving a problem is being handed the keys.

How we teach it

This is the gap our classes are built around. The principles on our how we teach page include deriving a rule yourself before seeing it written down, staying with one idea until it genuinely clicks, and students explaining their thinking in every lesson. They apply in our live maths classes and our coding courses alike, one to one or in small groups of 5 to 10.

Frequently asked questions

Because understanding a given solution and producing one are different skills. Reading a solution is recognition: the method is chosen for you. Solving requires recall and choosing a method from a blank page. Practising by attempting first and recreating solutions from memory builds the second skill.

Yes, very. In class the teacher chooses the method and shows each step, so it feels clear. At home you must choose the method yourself. This gap is a normal part of learning and closes with the right kind of practice.

About 10 to 15 minutes of genuine effort is a good guide for most homework and practice problems. Struggling first makes the solution more meaningful and improves memory, as long as you do not give up in frustration.

It is the feeling that you have learned something because it seems easy while you are studying it, for example when rereading notes or following a solution. That ease comes from the material being in front of you, so it often overestimates what you can do alone.

It is a worked solution where later steps are progressively hidden, so you complete more of the solution yourself each time. It is a gentle bridge between reading full solutions and solving problems independently.

Only a little on its own. Tutorials build recognition. To build the ability to write code, close the tutorial and rewrite the program from memory, then change it and solve the new version yourself.

Practise the way exams work: mixed problems, no notes, a blank page and a time limit. The more often you have produced solutions from nothing during practice, the less unfamiliar that feeling is in the exam.

Modern Age Coders Team

About Modern Age Coders Team

Expert educators making coding and maths clear for ages 6 to 67.

Keep exploring Modern Age Coders

More from the blog

Free resources

From the blog

Start here

Ask Misti AI
Chat with us
Enroll Watch Class Priority Demo Enrol Book a Demo Watch Class WhatsApp Book demo today