1 minute read

Background

As I work on projects that span across frontend, backend, and databases, I’ve been leaning heavily on AI tools like:

  • ChatGPT
  • Claude
  • Cursor IDE

These tools help me generate boilerplate code, fix bugs, and even build full components. But lately, I’ve been asking myself:

Am I actually learning how to code — or just learning how to ask AI to code for me?


The Dilemma

I can explain the architecture of my projects:

  • Why I used FastAPI for backend
  • Why I selected SQLite or PostgreSQL
  • Why I used FAISS instead of Weaviate

I understand the flow and logic.
But if you put me in front of a blank editor and said, “write the code for this from scratch” — I’d probably freeze.

That worries me.


What I Gain from Using AI

  • Speed: AI drastically reduces the time spent searching documentation
  • Exploration: I can test multiple approaches quickly
  • Confidence: It helps me attempt things I wouldn’t even try alone

What I Risk Losing

  • Muscle memory: Without repetition, I don’t retain syntax or patterns
  • Debugging depth: I rely on the AI to fix things I don’t fully understand
  • Real fluency: I’m not yet at the level to build the same solution solo

This is like learning a language through translation — I get the meaning, but I can’t yet speak fluently.


My Long-Term Goal

I don’t want to just copy-paste code and hope it works. I want to:

  • Understand the concepts deeply
  • Explain every design choice in my project
  • Be confident enough to reproduce parts manually, even if AI is available

The goal isn’t to avoid AI. It’s to use AI as a collaborator, not a crutch.


What I’m Doing About It

  • I pause after generation to review every line and ask: “why is this here?”
  • I write summaries in my own words to explain key components
  • I try to re-implement small parts manually without AI
  • I document all my design choices clearly in blog posts (like this one)

Final Thought

Using AI isn’t cheating — it’s accelerating.
But if I don’t stop to understand, I’m not growing.

I want to build systems I understand, not just run systems that work.

So I’ll keep using AI — but I’ll make sure I’m the one in control of the idea, the design, and eventually, the implementation.