How I Learned to Work With AI—Not For It

How I Learned to Work With AI—Not For It
For a long time, I avoided using AI in programming, fearing it would make me dependent and weaken my skills. But under pressure to deliver a project fast, I gave it a try—and was amazed by how much time it saved. However, that speed came at a cost. In my next project, I relied too heavily on AI, only to realize I couldn’t navigate my own codebase. This post is about finding the balance: how to use AI as a powerful tool without letting it take over your thinking.

For a long time, I resisted using AI in my programming workflow. I rejected it in every way possible. I believed that relying on AI would dull my skills and make me dependent. But one day, I decided to give it a try.

I was working on a project with a tight deadline. Everyone around me was talking about how much faster AI could make you, so I thought, why not?

Exploring Editors

To get started, I had to choose an editor. My options were Cursor, Windsurf, and VS Code. Due to some issues I had with GitHub at the time, I narrowed it down to Windsurf and Cursor, and eventually chose Cursor.

Cursor offers AI assistance via a chatbot panel or by simply hitting "Tab Tab Tab...". So I gave it a go.

Working with Cursor

The first thing I noticed was how fast I was able to get things done. Tasks that used to take hours—like generating translation files, building Create/Edit forms, or defining types—could now be completed in minutes.

More importantly, I didn’t have to waste energy on boilerplate or routine tasks. I could focus on logic, architecture, and the real meat of the application. It was incredible. But there was a hidden cost.

The Trap

After finishing that app, I moved on to another project—this time from scratch—and leaned even more on AI. I still reviewed the code and tested everything, but the majority of it was generated by AI.

I completed the app faster than I ever imagined, and I was proud—until the problems started.

When it came time to make some changes (small ones that didn’t need AI), I struggled. The layout was deeply nested. It took me far too long just to locate a single button. Adding packages broke things. Debugging was chaotic. It was a mess.

The Solution

I eventually worked things out by stepping back and carefully re-reading and reorganizing the codebase. I spent time refactoring to make it more readable, understandable, and maintainable.

Ironically, this ate up all the time I had saved earlier by using AI.

What I Learned

To stay relevant in the tech world, you must learn how to use AI. It’s no longer optional. But the key lesson is this:

You must control it—don’t let it control you.

It’s tempting to let AI do everything, but that can quickly backfire. You’ll end up lost in a codebase that doesn’t feel like your own.

Use AI to save time, handle repetitive tasks, and speed up your workflow—but don’t let it make decisions for you. Stay in the driver’s seat.

Khaled Nadam

Khaled Nadam

Software Engineer & Technical Writer

I write about software development, web technologies, and my experiences in the tech industry. I love building products that help people.