You can take any idea and try to flesh it out with pseudo code. Once that’s done, try to convert it to real code and you’ll see that process is fairly mechanical. This is why people says that coding wasn’t an issue for ages. Coming up with the algorithm is the hard part.
People that have an issue with coding either are not familiar with the language/platform or is trying to think with real code instead of pseudocode or diagrams.
ADDENDUM
There are techniques to think with real code, moslty the Edit-Compile-Run workflow coupled with a good editor, or the REPL workflow (also helped by a good editor). Then add a good integration with a documentation system (manual pages?) and you’re golden.
But I’ve been on projects where a dev cycle relies on a 20 minutes local rebuild or one hour CI run. So it can be very hard to try to apply those workflows to legacy projects.
Critical thinking is essential for nailing down your essential complexity (the core solution of the problem). You can try to define invalid and edge cases alongside the happy path in the pseudo code diagrams version, even if it's a TODO comment.
Of course there are problems where knowing the code deeply is essential to solve the problem, but those really aren't the majority, if even less than 1% of business problems.
When it comes to what the average developer needs to understand, having a strong grasp on one functional and one procedural language can enable you to solve almost every problem in any language ecosystem, provided the correct resources. If you can do this, you can utilize an LLM for programming assistance well. If you can't, you probably should not heavily rely on one at all yet.