Loading...
Loading...
AI coding assistants are everywhere now. But after six months of daily use, I'm still not convinced they make me faster.
I have been using GitHub Copilot and Cursor for about six months. Not because my company forced me. I actually wanted to like them. Everyone on Twitter keeps saying these tools are game-changers. But after half a year of real work, I keep turning them off.
Here is what happens almost every day. I start typing a function. Copilot suggests something in gray. Sometimes it is close to what I want. But often it is wrong in subtle ways. I spend more time reading the suggestion and deciding whether to accept it than I would just typing the code myself.
Last week I was writing a simple API route in Next.js. I needed to validate a form input and save it to a Postgres database. Copilot suggested a full implementation with error handling, retries, and a custom logger. That sounds nice, except the logger did not exist in my project. The retry logic would have masked real validation errors. And the database query used a method that was deprecated two versions ago.
I hit tab out of habit. Then I spent ten minutes debugging why nothing worked. That was on me. But the tool nudged me toward a broken solution because it looked complete.
People say AI is great for repetitive code. Maybe. I tried using it to generate Zod schemas from TypeScript interfaces. The first one worked. The second one had a typo in a field name. The third one added a z.date() where the actual value was a string from the frontend.
I had to review every single line anyway. At that point, writing the schema manually takes the same amount of time. At least I know my own typing is intentional.
There is one area where it helps: writing tests. Copilot can generate a basic test structure for a function. It often gets the setup wrong, but the it() blocks are fine. I delete half of them and fill in the rest. That saves maybe 30 seconds per test file. Not nothing, but also not the productivity explosion people talk about.
What nobody mentions is how these tools make you second-guess yourself. When I write code alone, I trust my logic. With AI, I keep thinking: "Is my approach bad because the AI suggested something different?" Or: "Am I missing an edge case that the AI saw?" Most of the time, the AI is just guessing based on patterns from GitHub repos that have nothing to do with my specific database schema or business rules.
I asked a coworker about this. He said he feels the same but uses Copilot anyway because everyone else does. That is not a good reason.
To be fair, I keep Copilot on for one thing: writing JSON mocks. If I need a fake array of user objects with emails and names, it generates that quickly. Also for converting a for loop into a reduce. Simple transformations. That is about it.
For architecture decisions, debugging, or writing anything with business logic, I turn it off. The suggestions add noise.
I do not know if AI code completion will get better. Maybe the next version will actually understand my codebase. Or maybe we are hitting a limit of what autocomplete can do. For now, I will keep using it for boring JSON. For everything else, I type myself. That feels slower, but I spend less time fixing things later.