I believe it takes a deep knowledge of programming and LLMs in general, to know when they could be useful and how to use them in those cases. You first need to know they are not a magic genie, they are a machine learning thing, trained on tokens, that will output the more likely next token. And understand how the training process, the weights and the whole thing works inside to know how its going to react under certain inputs.
Then you must deeply know the problem you are dealing with. You need to know what's good, what's bad, when a solution actually works and when it does not.
If those factors are meet I don't see much issue in using them for programming.