Thinking and learning to think