Back in the 80s and 90s, knowledge about how to become a programmer was easily available as long as you were willing to spring for books and a computer, but the only building blocks you had available were whatever was in the Mac Toolbox ROM, the Win32 API, or the POSIX standard. Beyond that, you were basically working directly with the bits and bytes on the machine. So yes, anyone could become a programmer, but you didn't get very far unless you could plan and execute an immensely complex web of algorithms and data structures.
There are still some problems like that (eg. if you work for Dropbox, Google Search, or Galois), but most programming these days involves assembling building blocks. You have scripting languages like Python or JS to take the pain away from memory allocation and working with raw memory layouts. You have GUI frameworks like web browsers, Android, Cocoa, or .NET to build UIs without worrying about vector graphics. You have serialization protocols like JSON, protobufs, Cap'n Proto, MessagePack, Thrift, etc. so you can just dump your data structures to the wire; back in my first programming job in 2000, I remember a significant amount of effort being figuring out which bytes would go over the wire and how they would be formatted. You have packaging managers like NPM or PyPI with tens of thousands of packages for the picking.
That's changed the job description of a programmer significantly. It involves a lot more memorization these days, a lot more lookup skills, and a lot less mathematical & logical ability.