I have to confess something. I started using AI about two years ago, and my usage has grown every day since. It’s not ideal, but it helps a lot.
I’ve been using the Junie agent from JetBrains since it was released. Every time I need to do something, I ask AI to do it first. The output is mixed. Sometimes it produces something that can be used right away, but usually it needs at least some corrections.
I like to think of it as having a developer who works for me. The developer starts the task, does investigation, suggests solutions, and delivers code. The better instructions I give to the AI and the more existing code I have, the better results I get.
Usually, I write step-by-step technical instructions detailing what I want to do, how I envision it, what technologies it should use, etc. Since I typically know what needs to be done and how it should work, I just need the AI to implement it according to my specifications. Next, I test the solution, review the code, and provide additional instructions for necessary fixes. After a few iterations, I either accept the solution or fix it manually, as there are many situations where AI keeps suggesting the same non-working solutions repeatedly.
Sometimes I even ask another AI to verify the created code and suggest improvements.
Does this work?
I think so. I would never use AI to write code without thoroughly checking it first. It often produces incorrect solutions, security issues, and bugs. I believe the best way to use AI is when you already know what you’re doing.
Sure, AI can suggest solutions, edit multiple files, and write hundreds of lines of code in just 2 minutes, but it’s not something I can blindly trust. It helps make repetitive and boring tasks faster, but it still needs a human to control and validate the output.
Can it replace a developer?
Not yet. I think the marketing hype and noise around AI are bigger (as usual) than its real utility. Yes, it’s getting better, but I can’t imagine a non-technical person using AI to create an entire product, especially one that needs robust security.
The AI would be responsible not only for creating code but also for testing, fixing bugs, adding new functionalities, deployment, server management, backups, security, and more. Would you trust AI with all of that and allow it to fully create your business? It’s a lot to ask, and we can’t rely on AI to do everything without keeping a close eye on it and ensuring it’s really doing what we want.
I think it may replace junior developers at some point (or maybe now?), as it can create code that’s often better than what I’ve seen from many junior developers in the past. It can write unit tests, find bugs, and explain code. One advantage I think junior developers have over AI is creativity. A junior developer might come up with interesting solutions precisely because they have less experience, fewer preconceived opinions, or haven’t yet learned conventional approaches.
It’s different now
There are a lot of questions to consider. Who will train the junior developers when we need only senior devs? 😄 Is a junior developer with AI still a junior developer when the AI can help them create better solutions?
It’s a totally different time now. When I was learning programming, I had no Internet and I was reading physical books and reviewing source code of existing open-source projects to learn how to code better. Now, a developer can just ask AI and spend less time learning and creating code.
Sounds like better times, but I think the more AI does for us, the more creativity it destroys. We need to think and solve challenges to keep our minds in shape.
What’s the future?
I don’t know. AI will continue to improve and likely do more and better work in the future. We have to remember that all AI knowledge is based on the data we provide and how the models are trained, so it may not always produce correct results.
I really appreciate what AI can do because it helps me tremendously with everyday tasks. I can happily delegate boring and repetitive work to AI, but I enjoy being creative, developing new solutions, debugging problems, and similar challenges. I hope I’ll be able to continue doing those aspects of development for as long as possible.
Something fun
Here is a suggestion/autocomplete from GitHub Copilot while writing a blog post. As you can see, it’s not always what we want. 😉