Isn’t this the same question we can ask about frameworks?
Yes, they might make you worse at coding if you don’t get how they work underneath. I can use a framework to make web requests easier, but if I don’t understand what happens in the background, I might end up with messy code that a simple function could have done better.
The same goes for AI. If I know the basics of coding, I can tell if AI is off-base and fix it.
@Micah
The main difference is that with frameworks, you have something more fixed and consistent. When using an AI, your output can change dramatically based on how you prompt it and the model you use. Bugs in frameworks can be fixed centrally, while with AI-generated code, your team has to find problems on their own.
You rely on the same skills you’re lacking much more than with frameworks.
@Micah
I just interviewed a fresh grad with a CS degree. They took an hour to write four lines of code. Looking at their GitHub, it’s clear they can follow a recipe and change code generated by ChatGPT, but they struggle to write code from scratch, even with lots of hints. This isn’t just a one-time thing; I’ve heard similar stories from other hiring managers. I don’t mind mentoring developers who have a solid base, but I can’t teach someone to code from the very beginning.
@Micah
Yes, for sure. But I remember when people complained about frameworks being too much or overly smart. As I mentioned before, it’s all for a purpose. Some tools are better for the task, while some can cause problems if not handled carefully.
@Micah
I agree with this. I’m maintaining a Java application, and using AI helps me get things done faster. However, I read and try to understand every line of code before using it.
@Micah
Frameworks often take care of a lot of the basic stuff and can hide certain foundational elements of programming. For example, many React developers lack a good grasp of HTML, CSS, and JS fundamentals.
AI tools might also take away some of the problem-solving elements of programming. They can help get things done quickly, but they might not help individuals grow by tackling tougher problems.
Yes, they can make you worse if you don’t grasp the foundation.
In theory, yes, you need to know how it all works beneath the surface, but in practice, it’s not that straightforward. Since both frameworks and AI are sold as time-savers, some companies cut corners and get more from development. This leads to developers who produce a lot of code but don’t really understand the details of how it operates.
@Micah
This is only partially true. Do you truly know how your entire operating system functions? Can you explain how your graphics driver works? Some knowledge isn’t necessary when abstracted.
If you were a terrible programmer before AI, you are still a terrible programmer with AI, just slightly less so. I don’t think using AI makes you lazy; you still end up at the same result, just using the faster route.
Sometimes, it’s helpful, but most of the time the code examples are incomplete and don’t compile. More times than not, I end up on a wild goose chase that takes way longer than if I had just figured it out myself.
Yes and no. It all depends on how you use them. I mostly code using AI now, but I have 15 years of experience. So for me, reading code is straightforward, and I don’t use any code I don’t understand.
This means I do a lot of tweaking and adjusting of what I get. I give it specific instructions on what to do. When I work like this, it’s as if I’m pair programming with the AI rather than letting it take over completely.
We aren’t at a point where AI can program entirely on its own; it can mess up everything and build on existing mistakes, creating issues.
I haven’t come across a task where an AI assistant didn’t require a complete rework of its code for something that is even moderately complex. I mostly write basic business applications in C# and JavaScript.
So I’d argue it doesn’t make me any worse, it just slows me down overall.
@Sam
I think it really shines when making boilerplate code or generic tasks we’ve repeated a thousand times. For example, when using Dapper, I can input a C# model/table definition, and it will quickly produce a repository class. It saves time on simple tasks.