In general it can get further the better the design/interfaces are. I find that if you can define your problem with a really clean set of interfaces, it can generally implement them perfectly. Most of the real thinking work is at the interfaces anyway, so this makes sense.
But for a really tricky logic problem, accurately explaining it in English to an LLM might be less natural than just writing the code.
But for a really tricky logic problem, accurately explaining it in English to an LLM might be less natural than just writing the code.