Skip to main content
Back to Blog
Featured
4 min read

The Vibe Coding Shift

Four months ago, coding felt like a locked door. Now I'm shipping real tools. What changed wasn't the technology - it was realising I'd been asking the wrong question.

Four months ago, I read a GitHub blog post about building Pong with Copilot. The concept was simple: describe what you want, iterate with AI, ship something functional. They called it "vibe coding."

I thought: Could I actually do this?

The honest answer was - I had no idea. I'd tried learning to code before. Tutorials felt like climbing a wall with no handholds. I'd get stuck on syntax, lose momentum, and give up. Every time, I walked away thinking: "This isn't for me."

But this time felt different. Not because the technology was better (though it was). Because the question changed.

The Old Question: "Can I learn to code?"

When I asked myself "Can I learn to code?" the answer always felt like: Probably not. At least, not fast enough to matter.

Learning to code the traditional way meant:

  • Memorizing syntax I'd forget immediately
  • Working through tutorials that didn't connect to real problems
  • Building todo apps I'd never use
  • Feeling incompetent every time I hit a wall

The friction wasn't intellectual. It was motivational. I couldn't see a clear path from "Hello World" to "This solves a real problem I have."

The New Question: "Can I build something useful?"

Vibe coding flipped the question. Instead of "Can I learn to code?" it became: "Can I describe what I want clearly enough that AI can help me build it?"

Turns out—yes.

The first real tool I built was a squad rotation tracker for my rugby team. Actual problem. Actual users. Deployed in a day.

Did I understand every line of code? No. Did it work? Yes. Did I learn more in that one day than months of tutorials? Absolutely.

What Actually Changed

Here's what shifted:

1. Feedback loops got tight

In traditional learning, you write code, hit an error, Google the error, misunderstand the solution, try again, fail differently. The loop is slow and demoralizing.

With vibe coding, the loop is:

  • "This doesn't work"
  • AI: "Here's why. Try this."
  • Works (or doesn't, but the next iteration is seconds away)

The friction collapses. You stay in flow.

2. I started solving real problems

Tutorials teach you to build things someone else designed. Vibe coding lets you start with: "I have this annoying manual process. Can I automate it?"

Real problems are motivating. Todo apps are not.

3. AI became a collaborator, not a teacher

I'm not "learning to code" in the traditional sense. I'm collaborating with someone who knows how to code while I focus on:

  • What problem am I solving?
  • What does the user need?
  • Does this actually work?

The AI handles syntax. I handle intent.

What This Isn't

This isn't "AI writes all the code and I take credit."

I'm making decisions constantly:

  • Which approach makes sense?
  • Is this solution too complex?
  • What's the simplest version that works?
  • Does this align with what I'm trying to learn?

AI accelerates execution. It doesn't replace thinking.

The Risk I'm Not Ignoring

There's a valid criticism here: "If you don't understand the code, you're building on sand."

Fair point. But here's my counter:

Traditional learning says: Learn foundations first, build later. Vibe coding says: Build first, understand foundations as you need them.

I'm learning - just in reverse order. And the stuff I learn sticks, because I needed it to solve a real problem.

Where This Goes Next

I don't know if this approach scales to complex systems. Maybe there's a ceiling where you hit problems AI can't solve without deep expertise.

But right now? I'm shipping tools that work. I'm learning faster than I ever did with tutorials. And I'm not giving up when things get hard, because the feedback loop keeps me engaged.

That's enough for now.

If you've been on the fence about trying this - just start. Pick a real problem. Describe it clearly. See what happens.

You might surprise yourself.