This. I use AI tools from time to time in development, but as a rule of thumb, I treat it like I would a quirky but brilliant intern. As with any tool, it requires knowing when to use it, and how to effectively apply it, and that’s where all us “old hat” software devs come in.
I find that AI needs constant hand-holding and double-checking to get things just right. If I ask very pointed, sandboxed type questions with minimal scope, then AI is often pretty decent at coming up with quick solutions that help be build the larger system of code I’m working on, or giving an explanation for what needs to be done, which I can then take and write up the proper code for.
However, I have also found that AI is almost totally useless when it comes to throwing a broad system concept at it, especially one that requires domain knowledge, and having it hand you a correct block of code. Even if it manages to give you code that works, it will almost always be a naive solution, unoptimized, if it even works at all. More often than not, what you’ll actually get back is a pile of incoherent garbage.
“No more calls we have a winner!”. If I’m called upon to whip up a bash script, AI’s getting to do the heavy lifting, I’ll test it, and fix anything that it breaks, but it does all the fiddly syntax. I also provide input and output and ask for the guts to be done for some small functions.