You can think of LLMs as a higher level language for whatever programming language you are using, but informal with ambiguous grammar.
What has worked for me is treating it like an enthusiastic intern with his foot always on the accelerator pedal. I need to steer and manage the brakes otherwise, it'll code itself off a cliff and take my software with it. The most workable thing is a pair programmer. For trivial changes and repeatedly "trying stuff out", you don't need to babysit. For larger pieces, it's good to make each change small and review what it's trying.
https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...
It seems it only took until about 2023 or so