← back
Coding without AI

Coding without AI


The first time I used modern day AI, I was very impressed (and kind of scared) with what it could do. I could make it generate anything I wanted it to. Any reports, essays, or coding problem that I had to scour StackOverflow for, could all be done using AI. It wasn’t just me, the whole world was trying out this new technology, and a lot of them still use it to do their work. What a productivity boost! Or is it?

Vsauce intro music plays


I used AI for coding for the better part of 2 years consistently. The most basic version of it being interacting with ChatGPT and code completion with GitHub Copilot. The code completion by GitHub Copilot seemed like such a time saver that I actually bought a 1 year subscription for it, and made use of it throughout the year (probably not the best idea).

Soon after, I made the jump to Cursor because that’s where the hype-train was headed I guess. It was a smaller jump, but impressive regardless, especially with how tightly integrated the chat window was with the codebase.

Soon after, I burnt out. Quite the jump there

The cause

I’m not gonna fully blame AI for this because there were a lot of different factors involved, but my use of AI definitely had a big part to play in this.

I noticed how much less I generally enjoyed starting new projects, or even work on existing ones because AI was doing so much of the heavy lifting for me. This may seem like an obvious productivity boost, but before AI I considered coding to be a sort of art form - a way to be creative and build things the way I wanted. So when I started letting AI take over the reins, it was slowly but surely taking over the creative aspect of it.

I also noticed how much creativity I lost after integrating AI into coding, because after every line of code, or every code completion, I was not the one thinking, but the LLM was. It told me what it thought needed to be done, leaving little room for creativity and curiosity.

I previously very much enjoyed to write code by hand, line-by-line. I was so obsessed with clean code, my imports in each file had structure, and Prettier was my best friend. As I integrated AI into my workflow however, it cared much less so about that stuff which meant I had to go in and do the cleanup.

My OCD of a workflow may sound silly and a waste of time, but it did force me to keep my code clean and maintainable for myself and any other devs who may see it in the future.

Another thing I’ve noticed is that these LLMs are trained on very common technologies especially in the web dev space. For example, if you’re building on the front-end and want to build using technologies outside of the React ecosystem, expect mid results at best. This has very much discouraged me from learning new technologies which has also been a net-negative.

Striking a balance

So nearly 2 months ago, I made the decision to cut out AI from my workflow, almost completely. The first month was completely AI free, and almost immediately it felt very weird to write code without having Cursor suggesting auto-completion. But I actually had time to think about what I’m working on, and what I want to work on next. This, to this day, has been a net positive for me and I still have not re-enabled auto-complete in my code editor.

Outside of auto-complete, it’s been very weird to measure where AI is a productivity boost, and where it’s slowing me down or making me dumber.

The chat window functionality in Cursor is cool, but having the AI model go in there and update my code, especially in places where I don’t want it to isn’t something that I’m a big fan of. I would prefer having fine control with what it should and shouldn’t do.

So I found a good balance - using the ‘Ask’ mode in Cursor instead of ‘Agent’. This means it’ll have the context of my codebase and reply to my exact questions, but not update the code, unless I go ahead and change the mode myself. The recently added ‘Plan’ mode is actually quite interesting, and I could definitely see myself using it, albeit without the LLM making any major changes.

Conclusion

I hope I didn’t come across as “old man yelling at cloud” or an AI-denier, because that’s further from the truth. I still incorporate AI in my workflow as mentioned above, just not in the way these hype-driven code editors and large corporations try to make me.

My goal for the last couple of weeks has been to find a good balance between actually thinking for myself and letting AI think for me.

Overall, I have found AI to be pretty decent with helping outline a plan for building features, building basic features or UI templates, but I still don’t think it’s at the stage where it could properly help with anything more complicated than that. On the surface it may look like it’s able to do complicated tasks, but looking closer at the code it spits out will show you that it’s really not that good. It’s mostly just marketing.