You definitely have to know what you're doing.
Hence the rub: if I already know what I'm doing, I don't really need it, even if it saves a bit of time. On the other hand I tried several times to use it for things I knew nothing about (a new communication protocol, a very obscure bash add-on, a complex set of mixed-language libraries never meant to work together, etc...) and I got absolutely nowhere: all the code generated didn't work, wasn't even relevant and a big waste of time overall. I couldn't even coax it to give me even starting points.
"Being against torture ought to be sort of a multipartisan thing." -- Karl Lehenbauer, as amended by Jeff Daiell, a Libertarian