The hard part of computer programming isn’t expressing what we want the machine to do in code. The hard part is turning human thinking – with all its wooliness and ambiguity and contradictions – into computational thinking that is logically precise and unambiguous, and that can then be expressed formally in the syntax of a programming language.
As I've been thinking about tools like Claude and CoPilot, they can write code, but it takes someone with experience to be able to tell them what & how to write it. Experience is needed to determine whether the code generated is what is actually needed.
The hard part has always been – and likely will continue to be for many years to come – knowing exactly what to ask for.