How AI Made Me a Worse Programmer
Sharing my experience coding with AI: AI has made me more productive, lazier, and less skilled.
Hello friend,
This post is about AI. About code generation, LLMs. About 110% productivity boost.
Does this sound interesting?
AI, vibe coding, LLMs and such terms have just become buzzwords. I think it's similar to crypto. Couple of years ago everybody was talking about cryptocurrency, coins, "to the moon" trends and such things.
I think both crypto and AI are here to stay, but in this post I'm sharing my experience with AI.
I'm not trying to compare which AI tool is better or worse. I'm not selling anything and I think you should do your own research on the tools you want to use. I'm sharing how AI made me write code and think in general.
This is one of these personal posts. So let's get it started:
Some context
I've started my career in tech by taking an internship and then being employed at an outsourcing company in Cluj-Napoca 🇷🇴. After one year, I took the freelancing path. Lately, I had my own outsourcing company and collaborated with multiple clients on various projects.
While freelancing, and later as a contractor, I was fortunate enough to have a long-term collaboration with an ideal client. I was involved in multiple projects for him. I wasn't maintaining old projects, but rather I had to continuously learn and adapt, to come up with new features. I gained experience with end-user feedback, production bugs and devops. I was very active, and it was a fun project to work on.
Compared to freelancing, when I started indie making, things shifted quite a lot. Instead of 80-90% of my time writing code and tackling technical tasks, I reduced it considerably. More than 50% of my time right now is spent on marketing, promoting my apps and building a personal branding. Or rather learning I should say.
In my mind, I thought I should keep up with coding, keep my mind sharp, keep writing code, and if I don't do that, I'm left behind. That's what I'm feeling sometimes. And I think that's normal, especially if you have a formal training in coding. I started as a programmer, and being productive was somehow tied to that: if I could deliver that feature, or fix that bug, that I could consider myself as being productive.
And AI made it worse. There's this shortcut: you can generate features with couple of prompts, and you get a sense of productivity. You think you're back in the business. Am I really back in the business, or my skills are getting weaker and weaker?
What I think happened
I became more productive. Because I have many years of experience, I think I became more productive. I know exactly what to ask for and how I want some things to be implemented. AI is much faster than me.
I became lazier. Just because the ability to generate such amount of code so fast is available, this made me lazy. I'm not as motivated as I was before to work. Finishing a product doesn't excite me like before, when hard work was rewarded with a working feature or a fixed bug.
I became less skilled or less focused, or both. Not writing code on my own made me worse at it. Also, I think I lost the ability of long periods of focus. AI can generate code super fast. I don't want to spend an hour writing code or reviewing the code of a single UI component. In one hour I want the whole screen to be ready. Am I the only one having this mindset?
Some things to consider...
We should code to keep our minds sharp
I see AI as a tool - and just having the tool should make you get better results. But on the other hand, using one tool can make you lose some skills, while acquiring new once. When you got your driving license, you learned some new skills that are helpful, but you tend to forget others, or at least get worse at them, like walking long distances, or riding a bicycle. Not that you forget them completely, but you're no longer as capable as you were before owning that car.
The same thing might apply to AI: some skills will degrade, while you learn other skills. But the question I have is "Is coding a skill I'm willing to let dull, or I should still fight to keep it sharp?"
Learn with AI
You can use AI as a mentor, but don't let it write the code for you.
I've started learning Rust. Using AI is so convenient, but Rust is an advanced programming language. I wrote some C/C++ while being in the university, and I have some notions. So I somehow know how to approach learning Rust. But despite this, I still think it's a difficult language. That being said, asking AI to write the code is convenient. Will it help me learn it? I don't think so.
An option would be to ask AI to explain concepts and lines of code, or what's wrong with your code. Just because you read some lines of code generated by AI and you think you understand them, that doesn't mean it's true all the time. You might have a false sense of understanding.
AI can speed up the development process
If you're already writing code, use AI to speed up the development process. You already know what needs to be done, so leverage your skills by using AI to reduce the development time by a significant margin. Maybe you can spend the remaining time reviewing the code and testing. It should definitely add value to the project if you do that.
Don't use AI with programming languages that you don't know
It's tempting, it is so convenient, but learning is still important. What are you going to do if there's a bug in production? You won't know how to change even a single line of code. And trust me: AI won't help you, especially when you have a huge codebase. It will suggest so many changes that could affect other parts of the app.
Instead of picking a tech stack you don't master, just because you can achieve better results, but you cannot maintain the code, pick a stack that you've worked with before and can actually maintain. It'll definitely pay off in the near future.
Vibe Coding is far from perfect
Just because it seems it works, it doesn't mean it's bug free. No product is bug free, but some might have some nasty hidden bugs. There might be some serious security vulnerabilities as well.
What I would say is don't use AI for production-ready products unless you know that code very well and you review and test every little piece of code you add.
Use it in existing projects with caution. AI can speed up the process, but you should give as much context as possible and review the code thoroughly.
Maintainability is often neglected
If you have experience with coding, you know that, especially in older projects there is, so-called, legacy code - the code somehow works, but no one can maintain it, so in the end, you never ever touch it.
I think vibe coding can make the freshly generated code into legacy code - you won't be able to maintain it.
Delivering the app as fast as you can is not everything. It's also about being able to maintain it the long term.
Prototype with AI
Should you do it? Definitely. You can generate whole working apps with couple of prompts. I'd definitely use it for prototyping.
But there's something more to consider: if you work for a client, be very careful because he might want to cut some costs. They could see your proof-of-concept app as close to production-ready, then ask you to make a few improvements and push it to production. It happened to me. Just because it seems to work, it doesn't mean it's production-ready, safe, or properly written so you can maintain it when something goes wrong.
It's good for prototyping, but if you plan to go in production with it, definitely rewrite that code. Otherwise you'll learn this lesson the hard way.
In conclusion
Do you have experience with AI? Do you use it on a day-to-day basis?
Let's talk about this. Share your experience and how you find it helpful.
These are a few places where you can find me:
https://x.com/razvanmuntian - my Twitter account
www.linkedin.com/in/razvanmuntian - my Linkedin account
https://www.instagram.com/razvanmuntian - my Instagram account
https://razvanmuntian.com - my personal website
Thank you for reading this post and I hope it's been inspirational.
See you soon!