
How I Actually Use AI for Coding (Without
Letting It Take Over)
Confession time: I used to be a total AI skeptic.
Yeah, I was that guy rolling his eyes whenever someone
mentioned using AI coding tools. "Real programmers write their own
code," I'd say. God, I was insufferable.
Then last December happened. Our team was under ridiculous
deadline pressure (thanks, marketing department), and I was staring at a
bizarre bug in our payment processing system. Three days of debugging had
produced exactly zero progress.
At 2AM, loopy from exhaustion and with nothing to lose, I
finally tried one of those AI coding assistants everybody kept talking about.
20 minutes later, the bug was fixed. I felt equal parts
relieved, impressed, and... weirdly threatened?
So began my complicated relationship with AI programming
tools. Here's what I've figured out over the last 5 months - without the glossy
marketing hype.
The Good Parts (That Nobody Told Me About)
Nobody really warned me about how AI would change my actual
day-to-day work. It wasn't the dramatic "AI takes my job" scenario
I'd imagined. It was subtler.
For one thing, I'm way less reliant on Stack Overflow now.
Remember those marathon SO sessions? Digging through 15 answers, half outdated,
trying to find the one relevant bit of code? Yeah, don't miss those AT ALL.
And my god, the documentation assistance. Last week I needed
to integrate with a payment API that had truly awful docs. I just asked
"explain how to implement a refund with the XYZ API" and got a
clearer explanation than anything in their official guides.
But the biggest surprise? Debugging help. Example from
yesterday:
Me: "This React hook keeps firing twice and I can't
figure out why." pastes code AI: "You're setting state inside an
effect without a dependency array, creating an infinite loop."
Took like 45 seconds for what might have been hours of
frustration.
The Bad Parts (That Are Actually Terrible)
OK so there's definitely a dark side to this whole AI coding
thing.
First off - the hallucinations. Holy crap, the
HALLUCINATIONS. Last month the AI confidently told me to use a function that
straight-up doesn't exist in the library I was using. I wasted an hour before I
realized the AI had just... made it up? Fun times.
Then there's the plagiarism risk. I once asked for help with
a data visualization and later discovered the code it gave me was nearly
identical to an example in a GitHub repo. No attribution, nothing. Not cool.
But my biggest issue is how it's affected some of my junior
colleagues. One dev (not naming names) has started throwing EVERY problem at AI
without trying to understand the solutions. His debugging skills are actually
getting worse, not better.
Weird Things I've Learned About Working With AI
Through a lot of trial and error, I've discovered some
strange things about the AI-human coding relationship:
Being super specific makes a HUGE difference. "Fix this
code" gets garbage. "This Angular component isn't updating when the
parent prop changes. Here's the component code and the parent code. What's
wrong?" gets gold.
These tools are freakishly good at explaining other people's
code. When I inherited a gnarly codebase with zero documentation last month, I
started pasting confusing sections with "explain what this does" and
it saved my sanity.
They're TERRIBLE at understanding your whole system
architecture. I've learned to never, ever ask for help with anything that
requires understanding how multiple parts of our system interact. The results
are always disastrous.
You can actually argue with them? This blew my mind, but
when the AI suggests something that wouldn't work in our environment, I've
found pushing back with "That won't work because X" usually results
in much better suggestions.
My Current Setup
After months of experimenting, here's my actual workflow:
I write the initial code structure and architecture
decisions myself
For tedious/repetitive coding tasks (like writing tests or
data validation functions), I'll use AI to generate a first draft, then heavily
edit
When debugging, I'll spend at least 15 minutes trying to
solve it myself before asking AI
For learning new tech, I'll read the official docs first,
then ask AI specific questions about parts I don't understand
I've found this balance keeps me from getting lazy while
still leveraging the speed advantages.
A Real Example From This Week
Rather than speaking in generalities, here's an actual
conversation I had with my AI assistant on Tuesday:
Me: I need to create a function that takes an array of user
objects and returns an object where the keys are user IDs and the values are
the user objects.
AI: gives perfect solution
Me: Great, but our user objects might have null IDs
sometimes. How should I handle that?
AI: suggests putting those in a special "unknown"
key
Me: Actually we should just filter those out completely.
AI: gives updated solution that filters first
Saved me probably 10 minutes of coding time?
Not exactly earth-shaking, but little bits of timesavings
like those do add up.
Does This Make Me A Worse Developer?
This is the one that's kept me lying awake at nights ever
since I've been working with these kinds of tools.
After 5 months, here's what I've decided: it can get you
worse if you use it poorly, but it can improve you if used well.
The secret appears to be keeping a critical eye. I never put
anything into practice without knowing what it does. Occasionally that involves
having the AI detail its solution line by line.
I also ensure that I continually challenge myself. At least
weekly, I work on a difficult problem entirely alone, no AI help. It's like
doing exercises for my coding muscles.
And in all seriousness? Some of the most valuable uses
aren't even coding-related - they're coding comprehension. Having something
that can explain a deeply complicated regex in an instant or walk you through a
convoluted promise chain is truly instructive.
So. Are We All Doomed?
My friend Mark is certain he'll be out of a job in a year
due to AI. I believe he is utterly wrong.
These tools are fantastic at assisting with the HOW of
programming, but they have no idea about the WHY. They're unaware of business
requirements, user needs, or system constraints unless you make it explicit.
And they sure can't deal with the human aspects of
development - negotiating feature set, dealing with ambiguous client requests,
or making trade-off choices between performance and maintainability.
If anything, I believe this moves programming more in the
direction of those higher-level skills and less towards memorizing algorithms
or syntax.
Anyway, that's my cluttered, complex relationship with AI
coding tools after 5 months of daily use. Not the techno-utopia the hype
promised, not the job apocalypse the fearmongers predicted. Just another tool
that's incredibly useful at times and frustratingly constrained at others.
Has yours been otherwise? Leave a comment - particularly if
you're doing work in fields such as mobile dev or data science. I'm interested
to know how these tools fare in other fields.
Kashif Imtiaz
P.S. My manager just walked by and noticed me typing away.
"Another blog post? Don't you have some code to write?" YES KAREN,
I'M COMING TO IT. Just let me drink this coffee first, geez.
Comments
No comments yet. Be the first to comment!