There's a "wall" that separates non-programmers and programmers.
Non-programmers, no matter how motivated, run into that wall and get stuck.
People who can become programmers, somehow, make it through that wall.
What is the wall?
One candidate is that programmers tend to think first and foremost about the schema: about the data model.
They then think about code as a way to extend and modify and interact with that data.
This is backwards from how most people think, where they want to think in terms of the behavior they want to create.
Programmers are able to burrow from that intention of behavior back to the implied schema underneath, and then build upwards in code until it has the behavior they want.
LLMs are pretty good at thinking about schemas if you know to ask them to!