Many people grow up learning how to go through the motions of a skill without understanding why it works, and that makes it harder for them to use it effectively, to adapt their skill to different contexts, and to learn other similar skills.
In mathematics, you address this problem by having students solve problems with different numbers, throwing in some irrelevant numbers, etc.
In programming, you give people a small task to code.
Could this be somehow generalized? I suppose the problem is that in many situations, running an experiment would be long and costly, and the outcome would more depend on random noise.
Practice with different example problems is indeed important for helping people internalize the principles behind the skills they’re learning. However, just being exposed to these problems doesn’t always mean a person figures out what those principles are. Lack of understanding of the principles usually means a person finds it difficult to learn the skill and even more difficult to branch out to similar skills.
However, if we can explicitly articulate those principles in a way people can understand, such as illustrating them with analogies or stories, then people have the foundation to actually get the benefits from the practice problems.
For example, let’s say you see numbers being sorted into Category A or Category B. Even with a large set of data, if you have no mathematical education, you could spend a great deal of effort without figuring out what rule is being used to determine which category a number belongs in. You wouldn’t be able to predict the category of a given number. To succeed, you would have to derive concepts like square numbers or prime numbers from scratch, which would take most people longer than they’re willing or able to spend. However, if you’re already educated on such concepts, you have tools to help you form hypotheses and mental models much more easily.
The objective here is to provide a basic conceptual framework for at least being aware of all aspects of all types of problems, not just easily quantifiable ones like math problems. If you can put bounds on them, you are better equipped to develop more advanced and specific skills to investigate and address them.
And yes, experiments on the method’s effectiveness may be very difficult to design and run. I tend to measure effectiveness by whether people can grasp concepts they couldn’t before, and whether they can apply those concepts with practice to solve problems they couldn’t before. That’s proof of concept enough for me to work on scaling it up.
In mathematics, you address this problem by having students solve problems with different numbers, throwing in some irrelevant numbers, etc.
In programming, you give people a small task to code.
Could this be somehow generalized? I suppose the problem is that in many situations, running an experiment would be long and costly, and the outcome would more depend on random noise.
Practice with different example problems is indeed important for helping people internalize the principles behind the skills they’re learning. However, just being exposed to these problems doesn’t always mean a person figures out what those principles are. Lack of understanding of the principles usually means a person finds it difficult to learn the skill and even more difficult to branch out to similar skills.
However, if we can explicitly articulate those principles in a way people can understand, such as illustrating them with analogies or stories, then people have the foundation to actually get the benefits from the practice problems.
For example, let’s say you see numbers being sorted into Category A or Category B. Even with a large set of data, if you have no mathematical education, you could spend a great deal of effort without figuring out what rule is being used to determine which category a number belongs in. You wouldn’t be able to predict the category of a given number. To succeed, you would have to derive concepts like square numbers or prime numbers from scratch, which would take most people longer than they’re willing or able to spend. However, if you’re already educated on such concepts, you have tools to help you form hypotheses and mental models much more easily.
The objective here is to provide a basic conceptual framework for at least being aware of all aspects of all types of problems, not just easily quantifiable ones like math problems. If you can put bounds on them, you are better equipped to develop more advanced and specific skills to investigate and address them.
And yes, experiments on the method’s effectiveness may be very difficult to design and run. I tend to measure effectiveness by whether people can grasp concepts they couldn’t before, and whether they can apply those concepts with practice to solve problems they couldn’t before. That’s proof of concept enough for me to work on scaling it up.
Does that answer your question?