Programming tools are free and there are free programming tutorial websites.
Which is fairly meaningless.
Sure, I can check out a medical text from a library ... won't make me a doctor.
The fundamental basis of coding is applying logic, reasoning, problem solving, a lot of trial and error, and then refining it over the years.
Free access is meaningless, unless people are motivated to do it, and have the aptitude for it, and probably have some guidance. Very few people can teach themselves programming from soup to nuts and really grasp all of it -- I've known a few who did, but they were exceptions.
Unless things have changed, programming tends to have a double-tassel distribution -- you get it or you don't. Is this a fault in teaching method or available tools? Or is this a limitation on human brains? I honestly can't say, but I've definitely seen it.
I can tell you not everybody will do well with programming, and some will utterly fail at it -- and how you make it accessible to everybody, I don't know.
There's more grokking involved than most people are willing to admit. There is some aspect of it which actually is art.
Everybody says "programming is just math". Math might have conceived of programming, but I've known brilliant mathematicians who suck at programming. And I've know brilliant coders who suck at math. I don't believe they're one and the same.
I don't think coding is some secret voodoo to be held among the elite. But I don't think everybody is capable of doing it either.
Because it's not really how most people think and do stuff, and because historically, that double tassel is a real thing no matter what people want to believe.