The challenge should be harder than the lesson

If a learner can finish a lesson without thinking, they have not learned anything yet. Here is how we design the gap between reading and doing.

The challenge should be harder than the lesson cover illustration

Most tutorials are designed to be finished. Ours are designed to be attempted. That is a small wording change with a large consequence for how a lesson gets written.

The copy-paste trap

A learner can read a perfect explanation, copy a perfect example, and still be unable to solve a slightly different problem. The feeling of understanding arrives before the ability does. We treat that gap as the central design problem.

What a good challenge looks like

  • It uses the same concept in a new situation, not the same situation with new text.
  • It has a visible result, so success is not a matter of opinion.
  • It has a hint that narrows the problem without giving the answer.
  • It has a reference solution that explains the trade-offs, not just the code.

In the HTML Foundations course, the forms lesson teaches labels and input types. The challenge asks the learner to add an email field with built-in validation. Nothing is copied: they have to apply the pattern to a new control and reason about autocomplete.

Why hints are not cheating

A hint is a teaching tool, not a failure state. The best hint names the concept the learner is missing, then gets out of the way. “Use a media query” is better than a full code snippet; it converts a stuck moment into a retrieval moment.

The goal is not to make learners suffer. It is to make the moment of success mean something. Difficulty is a means; understanding is the outcome.

Something to add?

Corrections and technical review are welcome. Tell us what we missed.

Send a correction