I have to explain "coding" (as it's now called) to children in the school I work.
Given that I'm the only person on-site with even a remotest possibility of being able to be thrown into a language and knock up working code without having to copy/paste examples or spend hours doing so (and I'm not even a teacher), coding is a dying art.
It wasn't because we had all the resources. It's because we DIDN'T. All I started on was a Sinclair BASIC manual. Outside of that there was NOTHING. It wasn't until years later I got started on INPUT magazine and could actually see other people's code. By then, I was tinkering with assembler, and not long after was playing with C, DOS programming (Ralf Brown, I love you, a single, off-line, downloadable list of interrupts and what they did!), etc. etc.
But it's because we didn't have Google, StackOverflow, cut/paste, etc. We had to work out what we were doing and make it work without help. There were no debuggers to speak of, there was a huge time penalty on each test you did, and you had to learn how graphics, sound, data loading, and all the other parts actually worked.
I glanced at an 11-year-old's Python script from a distance a year or so ago and spotted syntax errors, loop bounding problems, type-conversion problems, etc. all in a tiny glance.
Running coding clubs with the IT teachers (who can sort-of-program but you wouldn't be able to get anything productive out of them and it would take them forever without IDE assistance and copy/paste examples), it's obvious that precisely one child I've seen in 20-years of working in schools could have a career in actual coding.
They don't get what's happening behind things like "physics engines" (they love the word engine, they hate that I just explain it just means "bit of code"), 3D matrix transforms, HID device inputs, SIMD instructions, etc. They just don't understand that everything is manipulation of numbers, that's all, and so they need to work out what number that joystick is going to send, what number to act upon, and what to do about it. You don't need maths, necessarily, but you do have to work out "well, how is a 3D object represented as just numbers?", and they can't. They struggle with the concept of bitmaps and RGBA. They don't get that the physics is just numbers applied to simulate velocity, acceleration, mass, force, etc. They don't get that audio decoding involves things like Fourier transforms and conversion to frequencies and then oscillations at those frequencies.
They have a total disconnect between what it is doing, and how computers work.
An example I like to use... and I don't claim this is a good way to do things, but most people will figure it out. I'll write it in pseudocode ("because that's like a language, is this correct pseudocode Sir? Can I get a pseudocode compiler?"....):
function Switch_Player()
{
current_player = 3 - current_player;
}
Kids just can't parse it. They don't get what it's doing. They don't understand how it works. They can't infer it.
But when I was their age, I used tricks like that all the time to reduce the byte-size of code that switched players on things like TI-85 calculators and the ZX Spectrum. And, without them being anything genius, I often made my own tricks without referencing anything else, to do things I needed to do by sitting and working them out (e.g. the correlation between pits on a dice and the binary representation of a number, a way to shuffle a pack of cards stored in an array, etc.)
It's all "old-hat that they'll never need", agreed, but I'm more worried about the loss of the discovery process. If you aren't in an intellectual struggle, if you aren't challenged, if you can just pull down an API that does it all for you, you aren't going to get the impetus to learn things deeply.
I have a career in IT because I've spent my life understanding computers, and getting them to do what I need even when that's not available with anything in front of me. They won't have that kind of impetus or creation, and that's quite sad.
Especially when you see what passes for "coding" these days (e.g. flowchart boxed things with graphical characters being used at GCSE / A-Level).