After discussions with a teaching assistant and two engineers at Big Tech companies, I’ve reached a clear conclusion: you simply cannot learn programming without writing code yourself. Just having concepts explained to you, or watching AI generate solutions, won’t teach you to program.

Programming is Like Training a Muscle

Learning to program is exactly like training a muscle at the gym. Real progress only happens when your mind struggles to create a solution from scratch. This mental effort is what activates the higher levels of thinking in Bloom’s Taxonomy – Application and Creation – which are essential for deep understanding.

When you let AI do this heavy lifting for you (and sometimes it doesn’t even succeed), you end up in the situation from a famous joke: “I’ve been paying for a gym membership for a year and haven’t lost any weight. I think tomorrow I’ll go there personally to see what the problem is!”

The Critical Gap in AI-Assisted Learning

As long as AI is “thinking” and writing the logical parts of programming (not just boilerplate code), the user cannot learn this thinking process simply by analyzing the generated code. The only exception would be if they already have well-developed programming thinking patterns and mental models – but then they wouldn’t need the AI in the first place.

Real-World Evidence

Personal Experience

My first steps in programming came from reading an algorithms book and learning C. Until I put the concepts into practice, I didn’t truly understand them. More importantly, I had to practice repeatedly, in many different situations, before I could grasp concepts well enough to apply them independently.

Teaching Experience

I had the same experience with students I coached for programming competitions. Until they used a concept, technique, or pattern repeatedly in different situations, they weren’t capable of understanding and solving something new at first sight.

The Coding Bootcamp Reality Check

In the US, expensive coding bootcamps ($20k-$50k) are popular. Most graduates I’ve spoken with knew how to build basic applications (slightly above boilerplate level), but when faced with real problems, they were completely lost.

Why “Vibe Coding” Doesn’t Work

What I call “vibe coding” – relying on AI to generate code while you watch and try to understand – creates an illusion of learning. You might feel like you’re absorbing knowledge, but you’re missing the crucial cognitive struggle that builds actual programming skills.

When AI writes the logic for you, several critical learning processes are bypassed:

The Path Forward

This doesn’t mean AI has no place in learning programming. AI can be incredibly valuable for:

The key is to maintain the struggle. Write the code yourself first, get stuck, work through problems, make mistakes, and debug them. Only then should you turn to AI for guidance, explanation, or optimization.

The Bottom Line

Programming is fundamentally about developing a way of thinking – computational thinking. This cognitive skill can only be developed through practice, repetition, and the mental effort of solving problems yourself. Just as you can’t get physically fit by watching someone else exercise, you can’t become a programmer by watching AI write code.

The struggle isn’t a bug in the learning process – it’s a feature. Embrace it, because it’s the only path to genuine programming competence.​​​​​​​​​​​​​​​​