I stared at the blank VS Code window, my cursor blinking mockingly on an empty React component. A simple task: fetch data from an API and display it on screen. Something I'd done dozens of times before—or so I thought.
"How do I actually... do this?"
My hands hovered over the keyboard. No answer came. That's when it hit me: I had forgotten how to code. Not because I was inexperienced, but because I had never truly learned in the first place.
The Dream Start
Seven months ago, I landed my first job as a software developer at one of Vietnam's biggest tech corporations. As a fresh graduate with a TypeScript and React background, I had two simple hopes: avoid outsourcing firms, and gain real experience. Getting placed on a product team felt like hitting the jackpot.
The beginning was everything I'd imagined. After years of college lectures and countless technical YouTube videos, I was finally going to "own a craft" at scale. I wrote documentation, proposed API designs, drafted sample applications, optimized processes. It felt like a dream.
Then reality hit.
The Spring Boot Awakening
I was assigned to write a simple API in Spring Boot—just a token refresh mechanism and a bridge between our internal service and an external provider. Two weeks to transition from my comfortable TypeScript ecosystem to Spring. "That's normal in the age of AI," they said.
With my theoretical foundation, I could map concepts from what I'd learned to how Spring worked. I didn't really understand annotations or beans, but I could follow the team's patterns. I created a flow diagram, fed the pattern specifications into a Claude project, and let AI do 80% of the heavy lifting.
It worked. The PR was approved.
That should have been a red flag.
The Uncomfortable Truth
I started paying closer attention to my colleagues. I watched a backend developer debug Swift code within half a week, then pivot to Kotlin, then Angular. Another colleague switched between three different frameworks in a month like it was nothing.
At first, I was confused. Then admiring. Then I felt small.
I decided I needed to level up. Every evening after work, I'd plug in my laptop before heading to bed—no excuses to skip the coding session after dinner. I went back to what I thought I knew best: React, the T3 stack (tRPC, Next.js, NextAuth). I scaffolded a project, opened VS Code, and...
Froze.
That blank component file became a mirror reflecting an uncomfortable truth: I didn't know how to build apps. I could switch stacks confidently, I understood the theories, but what I'd been doing wasn't development—it was vibe coding. I wasn't building with AI as a tool; I was letting AI build while I watched. The code was a black box, and I had mistaken my ability to generate it for actual understanding.
Starting Over
I closed the AI tools. Opened the React documentation. Started from the beginning.
A week later, all I had to show was some basic hooks, a simple form, and an OpenWeather API integration. The progress felt agonizingly slow. The anxiety crept in.
I asked my colleagues and mentor about it. Their answers surprised me:
"Why are you so anxious? We can't code without AI either. It's become the basics now."
That's when the real questions flooded in: How do I grow in an industry that's chasing speed? Where's the value in grinding fundamentals when everyone else has Copilot running? Am I wasting time learning what AI can do instantly?
Computers Are Amplifiers
I recently read a Dev.to article quoting Richard Campbell: "Computers are amplifiers."
That quote stopped me cold.
If a codebase is developed from the beginning by AI, what exactly is being amplified? Good patterns? Technical debt? Or worse—nothingness, because no one truly owns the code anymore?
When everyone is generating code at AI speed, who mentors the next generation? Who guides the freshers entering the market? Chasing velocity is seductive, but there's a minimum amount of time a human needs to actually understand a system. If we skip that, who will own what we build?
The Path Forward
I still open my laptop every evening at 7 PM, coding until 11 PM in my room. Not because I'm against AI—I'll use it again, smarter this time—but because I want to own the technology I write. I want to be able to explain my decisions, to feel proud of my craft, to say "I built this" and mean it.
The speed will come. The AI will amplify my work. But first, I need to make sure there's something worth amplifying.
Maybe that's the real challenge for junior developers in 2025: not learning to code with AI, but learning to code well enough that AI becomes a multiplier rather than a replacement. Not rejecting the tools, but building the foundation that makes those tools powerful.
After all, an amplifier only matters if there's a signal worth amplifying.
What's your experience with learning to code in the AI era? Have you found the balance between using AI tools and truly understanding what you're building? I'd love to hear your thoughts.
Top comments (0)