-- end="" ms="" clarity="" --=""> -->
Sahil Sharma
In my first year of college, I got my first personal laptop and, almost at the same time, an AI coding assistant. I was learning programming nearly from zero, so I used it for everything. A missing colon. A forgotten scope resolution operator. A file I had moved outside the environment where the dependencies were installed.
The routine became automatic: screenshot, paste into AI, read the explanation, apply the fix. None of these mistakes were deep. Most of them I could have caught by reading the error message slowly.
At some point I noticed the uncomfortable part: I wasn't asking AI after trying to understand the problem. I was asking before I had even looked at it properly.
The Part Where You Don't Know
When code breaks and you don't immediately know why, you are forced to ask questions. What changed since it last worked? Which assumption of mine was wrong? What is this error message actually saying? Which part of the logic should I inspect first?
That uncomfortable stretch is where a lot of understanding gets built. People call it productive struggle, but for me it is simply the part where you stop being a spectator of your own code.
I don't want to romanticise it, though. Being wrong is not valuable by itself. Spending two hours on a typo teaches you very little, and if documentation or an AI can save you from that, use it.
The useful skill is telling apart two situations: "I'm stuck because this is genuinely hard" and "I'm avoiding thinking because the answer is one paste away." From the inside, they feel almost identical.
An Hour I Can't Get Back
Later, I built a complete website with a frontend and a backend. The frontend was manageable. The backend and deployment were not, because I knew very little about web development.
So I used ChatGPT like a guide, prompting it and following instructions step by step. At one point the backend simply refused to connect. I spent around an hour going back and forth, trying suggestion after suggestion, and nothing worked.
What bothered me later was the nature of that hour. I was asking AI to find a problem that I did not understand well enough to describe.
If I had known how the pieces of a web application talk to each other, I might have narrowed down where the failure was in minutes. I had handed over the building and the diagnosing, and diagnosing was the part I actually needed.
Building Is Getting Easier. Diagnosing Isn't.
AI can now write frontend components, generate APIs, suggest database structures, explain deployment steps and set up a whole project layout. That is genuinely impressive.
But real software rarely fails the way tutorials expect. Two components interact in a way nobody planned. The server environment differs from the local one. An edge case was never considered. Configuration works in development and breaks in production.
Sometimes the generated code runs perfectly and solves the wrong problem.
In those moments, "fix this" is not much of an instruction. Someone has to know what exactly is broken, where to look, which assumptions are baked in, and whether the suggested fix addresses the root cause or just hides the symptom.
That judgement comes from understanding the system, and you rarely build it without having been confused by a system before.
A Quieter Kind of Dependency
The obvious worry is that students will stop learning because AI does the work. I think the subtler risk is that we stop developing the habit of diagnosing.
There is a difference between using AI as a tool and using it as the first layer between yourself and every problem.
The same thing applies beyond code. In maths, a wrong answer used to force you to rethink. Now a solution can appear before you have formed your own attempt. The same goes for writing, research and theory.
If mistakes are one of the ways we find out what we don't understand, what happens when technology gets very good at preventing them?
I don't have a clean answer. But I suspect something small gets lost when the correction arrives before the confusion has had time to do its job.
Using AI Without Skipping the Thinking
AI has made learning easier in real ways. A first-year student today has explanations, examples and debugging help available instantly, and that is powerful.
The aim is to cut unnecessary friction, not the thinking itself. A few small changes have helped me:
Each of these keeps you in the conversation instead of outside it.
What Engineers Will Still Need
If AI becomes very good at generating code, knowing syntax will matter less as a differentiator. That doesn't mean humans must compete with it line by line.
Engineers will still need to understand systems, define problems, test edge cases, weigh trade-offs and notice when something is quietly wrong.
In short, we need to know what the code is supposed to do, and recognise when it isn't doing it.
That is what my backend hour taught me. AI could probably have helped me build the project. When it broke in an unexpected way, I still needed enough understanding to know where to look.
So maybe being wrong becomes more valuable precisely because correct answers are getting cheap. But the mistake itself isn't the valuable part. The valuable part is the pause afterwards, when you ask, "why was I wrong?"
That pause is exactly what an answer machine can quietly take from us.
If we want to handle problems nobody has solved before, we may still need to be wrong sometimes—and stay with the problem long enough to learn from it.