I can write code faster today than I could a few years ago.
AI can explain an unfamiliar library.
It can generate a function.
It can suggest a fix.
It can write SQL.
It can help debug an error.
It can even explain the code it just generated.
From a productivity perspective, this is incredible.
But I've started thinking about a different question:
What happens to the learning process when the difficult part of coding becomes optional?
I don't think AI is making developers less capable.
But I do think it has created a new risk:
We can now become productive before we become good.
And those are not the same thing.
The Struggle Was Part of the Learning
Think about how we traditionally learned programming.
You wrote something.
It didn't work.
You read the error.
You searched for an explanation.
You tried something else.
It failed again.
You read documentation.
You changed the code.
Eventually, it worked.
That process was frustrating.
But something important was happening during those frustrating hours.
You were building a mental model.
You were learning why the system behaved the way it did.
You weren't simply learning the answer.
You were learning how to arrive at the answer.
AI changes that equation.
Today, you can paste the error into an AI assistant and get a possible explanation almost immediately.
That's useful.
But it also means you can skip several steps of the learning process.
And sometimes those skipped steps were the most valuable ones.
The Dangerous Part Isn't AI
I don't think the problem is AI itself.
The problem is how we use it.
There is a big difference between:
"Explain why this error is happening."
and:
"Fix this."
The first can teach you something.
The second can simply remove the obstacle.
Both can get you moving again.
But they don't necessarily produce the same learning.
This distinction becomes even more important when you're learning something new.
If I already understand Python and ask AI to help me optimize a piece of Python code, that's one thing.
If I'm learning Python and ask AI to write every function I don't understand, that's very different.
In the second case, I may finish the project without actually learning how I built it.
Productivity Can Hide the Learning Gap
This is where things get interesting.
Imagine two developers learning the same technology.
Developer A spends three hours struggling with a problem.
Developer B asks AI and solves it in ten minutes.
On the surface, Developer B has been more productive.
But what happens when the same problem appears next month?
Developer A may recognize the pattern.
Developer B may need to ask AI again.
Neither person necessarily did anything wrong.
They optimized for different things.
One optimized for completion.
The other accidentally optimized for understanding.
The problem is that modern development increasingly rewards completion.
And AI is exceptionally good at helping us complete things.
I Don't Want to Go Back to Coding Without AI
This is important.
I'm not arguing that developers should stop using AI.
That would be like saying developers should stop using debuggers because debugging used to be harder.
Tools are supposed to make us more capable.
I use AI because it genuinely makes many parts of development faster.
The goal isn't to preserve unnecessary struggle.
The goal is to preserve useful struggle.
That's a very different idea.
If I'm spending thirty minutes trying to remember a syntax detail that I could verify in ten seconds, I don't think that struggle is valuable.
But if I'm trying to understand why an architecture behaves the way it does, immediately asking AI for the answer may deprive me of an important learning opportunity.
The "Try First" Rule
I've started thinking about a simple rule:
Try first. Ask AI second.
Not always.
But often.
If I encounter a problem I believe I can solve, I give myself some time to reason about it before asking AI.
I might:
- read the error
- inspect the code
- form a hypothesis
- test the hypothesis
- search the documentation
- try a solution
Then I ask AI.
And something interesting happens.
The AI's answer becomes much more useful because I have a mental model of the problem.
I'm no longer asking:
"What should I do?"
I'm asking:
"Here's what I think is happening. Am I missing something?"
That is a much more powerful interaction.
AI Should Challenge Your Thinking
This is also changing how I think about prompts.
Instead of always asking AI to produce something, we can ask it to challenge us.
For example:
"Here is my approach. Find the weaknesses."
Or:
"Don't solve this yet. Give me three questions I should investigate."
Or:
"I think this is the cause of the bug. Try to disprove my hypothesis."
Or:
"Review my solution, but don't rewrite it. Tell me what I misunderstood."
These interactions keep the developer inside the reasoning loop.
AI becomes less like an answer machine and more like a thinking partner.
That's a much healthier relationship.
There Is a Difference Between Knowing and Accessing
This may become one of the biggest distinctions in AI-assisted development.
I don't need to memorize every Python method.
I don't need to remember every SQL syntax variation.
I don't need to know every framework API by heart.
AI and documentation can handle a lot of retrieval.
But I still need to understand:
What am I trying to do?
Why does this approach make sense?
What assumptions am I making?
What could go wrong?
How would I know if the result is wrong?**
Those are not simply information-retrieval problems.
They are reasoning problems.
And I don't think AI makes those skills less important.
I think it makes them more important.
The New Developer Skill Might Be Knowing When Not to Ask
There is an interesting irony here.
As AI becomes better at answering questions, the skill of asking good questions becomes more valuable.
But perhaps there is another skill:
Knowing when to answer the question yourself first.
If I ask AI everything immediately, I may become extremely efficient at retrieving answers.
But I may become less practiced at generating them.
That distinction matters.
A calculator didn't make mathematicians less intelligent.
But someone who never learns basic arithmetic because a calculator exists has a different problem.
The tool isn't the issue.
Dependency is.
AI Can Make You a Better Developer
The same technology that creates this risk can also solve it.
AI can explain unfamiliar code.
It can give you alternative approaches.
It can challenge your assumptions.
It can create exercises.
It can act as a tutor.
It can review your implementation.
It can ask you questions instead of giving you answers.
It can help you understand why something works.
Used this way, AI doesn't replace the learning process.
It can actually accelerate it.
The difference is whether we're using AI to avoid thinking or to improve our thinking.
Maybe We Need a New Development Loop
The old loop looked something like:
Problem
↓
Think
↓
Code
↓
Test
↓
Debug
↓
Learn
AI can turn it into:
Problem
↓
Think
↓
AI assists
↓
Code
↓
Test
↓
AI challenges
↓
Human evaluates
↓
Learn
I prefer the second model.
Not because AI does more.
Because the human still does the important thinking.
The Real Risk Isn't Becoming Lazy
People often ask:
"Has AI made developers lazy?"
I'm not sure that's the most useful question.
Developers have always looked for ways to avoid unnecessary work.
That's part of engineering.
The better question is:
"Are we automating away work that was actually teaching us something?"
That's much harder.
Because some effort is waste.
And some effort is education.
The challenge is learning the difference.
I Don't Want to Become Faster at Being Wrong
This is probably the simplest way I can describe my concern.
AI can dramatically increase development speed.
But speed is not the same as progress.
If I misunderstand the problem and AI helps me implement the wrong solution in ten minutes instead of ten hours, I haven't necessarily become a better developer.
I've simply become faster at being wrong.
That's why I still want to understand the fundamentals.
I still want to read documentation.
I still want to debug.
I still want to write code without assistance sometimes.
Not because I dislike AI.
Because I want to remain capable without it.
The Goal Isn't to Code Without AI
I don't think the future belongs to developers who refuse to use AI.
And I don't think it belongs to developers who let AI do everything.
The interesting middle ground is this:
Use AI for leverage, but keep ownership of your understanding.
Let AI handle repetitive work.
Let it explain unfamiliar concepts.
Let it review your code.
Let it challenge your assumptions.
Let it help you move faster.
But occasionally close the AI window and ask yourself:
"Do I actually understand what I just built?"
If the answer is yes, you're probably using the tool well.
If the answer is no, perhaps the tool moved faster than your understanding.
And that's something worth paying attention to.
Because in the AI era, I don't think our biggest challenge will be learning how to make machines do more.
It may be learning how to make sure we continue to think while they do it.
Want More:
Head over to ReThynk AI to access our latest research, magazine articles, and developer resources. Click Here
Top comments (1)
As AI becomes better at answering questions, the skill of asking good questions becomes more valuable.