Imagine doing your job and as you're typing methods, a very confident moron shouts what he thinks the answer should be. That's what it's like coding with Claude. It breaks your concentration and the suggestions are usually reasonable guesses, but they're just guesses...and the interruptions happen on every method you write...and they're often wrong.
Simple answer: if you're skilled at your job, it slows you down. Best case scenario, it's an improved StackOverflow. If you're clueless and don't care if your code works correctly...or even works at all, it can help.
I use Claude daily, mandated by work. For things I know how to do, like Java, it doesn't save any time. I wish it would. It's a perfect use case. Write a class...have it write a unit test. Well, the unit tests pass about 3/4 of the time. However, they're pretty much all garbage. In fairness, my team and I are sticklers about writing good tests, (don't assert bean methods, for example, it's a waste of time and makes your class unreadable). However, I'll frequently come across old code written in a for loop and want to convert it to a lambda or optimize something where I know it can be written more efficiently. For refactors? it gets the basic Java syntax correct about 50% of the time. It gets VERY confused when methods are chained, like a lambda. Overall, it's definitely less than 50% success rate, just on compilation.
However, my big problem is that LLMs just guess. I can fix syntax errors easily. They guess method names, despite having full access to the project structure, so they hallucinate methods that don't exist or pass in the wrong arguments. Normally, the compiler catches this, but sometimes it doesn't. It can send the wrong number and it gets very confusing to debug. The problem with guessing machines is it guessed that value for a reason...and eyeballing it, it looks correct! It makes common sense, based on common naming schemes...it just is wrong...and if it's swapping 2 numeric or string args, it would compile and then you wonder why things aren't giving the expected results.
This has lost me a lot of time, especially when I started using Claude. I had Claude generate code that really looks right, but then I get a wrong answer in my tests and spend hours thinking I made a mistake elsewhere. I assume I made the mistake or my inputs were wrong or my logic was wrong...half a day later, nope...claude just swapped a similarly named method in the Jackson lib that does something similar, is named similarly, has the same args, but not the same. I don't have the ObjectMapper API memorized, so I saw it, thought "hey, I thought that was named something else...oh well, maybe this is their new API, this method name is more intuitive anyway", it makes sense, the code compiles, even a shallow glance at the docs looked good. It was only until I carefully read the docs that I realized it was the wrong method.
Now, for things I suck at?...OK, it helped. I forgot how to do a simple RegEx...asked Claude, it got it right the first try. It was too complex and kinda stupid...but it worked and I was able to write a unit test and jog my memory on the right way to do it and correct it with something that wouldn't get me reprimanded at work.
For Java, the code it writes almost always sucks....even ignoring syntax errors and hallucinations. This is something you need to remember. Even if Sam Altman and every CEO touting this shit wasn't a fraud, it's only as good as it's training data. Java has been around since 1995. JavaScript and Python have been around for similar amounts of time. It was trained on old code. If a programmer did a coding test and wrote a C style for loop (for(int i=0....) to loop through a List on an coding interview, I'd reject them. It shows they haven't bothered to crack open a book or read an article in 11 years. Claude does Java 5 (2004) syntax by default...because it was trained on old code instead of Java 8 syntax (2014).
If you vibe coded Java at my place of work, myself and a dozen other programmers would fill your pull requests with all sorts of nastygrams, even if it was working, because as a professional, we'd expect you to know best practices and modern syntax.