Learning from problems