All the attempts to go beyond that, to understand, to build, that fosters abstract reasoning.
That is why teaching programming is so important. Not to teach people a skill they may apply later on, but to create insight and understanding.