For the past few months, I have been thinking about a question that I honestly did not know how to answer:
Am I wasting my time learning how to code?
Not learning software engineering. Not learning how systems work.
Specifically, learning syntax.
Learning the rules of a programming language. Memorizing APIs. Understanding how TypeScript, Python, Rust, Go, and other languages are structured.
Because everywhere I looked, I kept seeing the same prediction:
"Syntax is dead."
The argument sounds logical.
AI can already generate code from natural language. Developers can describe what they want, and tools can create components, APIs, database schemas, and entire applications.
People like Andrej Karpathy have described a future where natural language becomes a new programming interface, often referred to as "Software 3.0." The idea is that instead of humans translating ideas into programming languages, humans express intent and AI systems handle the implementation.
And honestly, when you see what modern AI tools can do, it is hard not to question the old path.
Why spend years learning syntax when AI can produce it instantly?
Why memorize frameworks when AI can search and generate examples?
Why become fluent in a programming language when the machine can translate your intentions directly into code?
I have read arguments on both sides.
I have watched demos, read discussions, followed engineers debating whether software engineering is fundamentally changing, and asked myself a more personal question:
If AI can write the code, what exactly am I learning when I learn to write code?
After thinking about it for months, this is the conclusion I reached.
I might still be wrong.
But I think the conversation has been focused on the wrong thing.
The question is not whether humans will continue typing every line of code.
The question is whether humans will still need to understand the representation through which software behavior is expressed.
And right now, that representation is code.
The Argument That Syntax Is Becoming Obsolete
The argument against learning syntax is not completely unreasonable.
Technology has always moved upward through abstraction layers.
Early programmers worked directly with machine instructions.
Then assembly languages appeared.
Then higher-level languages.
Then frameworks, libraries, and managed platforms.
At every stage, humans moved further away from the machine.
Today, most developers do not think about CPU instructions, memory addresses, or hardware interrupts.
They work with abstractions.
So why would source code be different?
Maybe programming languages are simply another layer that will eventually disappear.
Maybe the future looks like this:
Human:
"Build a payment system that supports subscriptions, refunds, and international currencies."
AI:
"Done."
No Python.
No TypeScript.
No database queries.
No implementation details.
Just intent.
And if that happens, spending years memorizing syntax might look like learning assembly after compilers already existed.
But What Problem Did Syntax Actually Solve?
The more I thought about this, the more I realized something important:
Syntax was never really about communicating with computers.
Computers do not care about syntax.
They execute instructions.
Syntax exists because humans need a way to reason about complex systems.
A programming language is not just a list of keywords.
It is a structured representation of behavior.
When an engineer reads:
async def process_payment():
they are not simply reading punctuation.
They are thinking:
- this operation may not complete immediately,
- there may be concurrency involved,
- failures may happen independently,
- execution order matters,
- state changes need to be controlled.
The syntax is the surface.
The deeper value is the mental model behind it.
This is why experienced engineers can move between languages.
A senior Python developer can learn Go or Rust relatively quickly because they are not memorizing keywords.
They understand concepts:
- memory,
- state,
- data flow,
- abstraction,
- concurrency,
- failure handling.
Syntax is the doorway through which those concepts are accessed.
The Real Question: If AI Writes Code, Who Verifies It?
This is where I think the debate changes.
The argument is often:
"AI can write code, therefore humans don't need to learn code."
But that assumes generation is the difficult part.
What happens after generation?
Imagine an AI creates a backend system.
The application works.
The tests pass.
Then three weeks later:
A customer reports duplicate payments.
A security vulnerability appears.
The system crashes under unexpected traffic.
A database migration corrupts data.
Now the problem is not:
"Can someone write code?"
The problem is:
"Can someone understand what this system is doing?"
Someone has to investigate:
- Why did this state transition happen?
- Where did this assumption fail?
- Which component created this behavior?
- Is the fix actually safe?
At that moment, understanding the representation becomes essential.
You cannot reliably verify a system you cannot read.
But Could AI Become the Verifier Too?
This is the strongest argument against my own position.
What if AI becomes good enough?
What if future systems can:
- understand entire codebases,
- detect vulnerabilities,
- prove correctness,
- design architectures,
- debug production issues?
Then maybe humans really do not need to understand source code.
This is where I think the answer becomes less obvious.
Because maybe the future is not:
Human --> Code --> Software
Maybe it becomes:
Human --> Specification --> AI --> Software
However, there is still a question:
What is the human-readable representation of that specification?
Every complex system needs some representation humans can inspect and reason about.
Today, that representation is code.
Maybe tomorrow it is something else.
But we have not found anything better yet.
The History of Replacing Code With Higher-Level Representations
This idea is not new.
Many attempts have tried to move humans away from traditional programming:
- visual programming,
- UML diagrams,
- low-code platforms,
- no-code tools.
They all improved productivity in specific situations.
But none replaced programming entirely.
Why?
Because complex software requires:
- precision,
- composability,
- version control,
- collaboration,
- debugging,
- inspection.
Text-based programming languages are incredibly powerful because they provide all of these.
The challenge is not removing representation.
The challenge is finding better representations.
So Does Syntax Matter?
I think the answer depends on what we mean by syntax.
If syntax means:
"Memorize every keyword, framework function, and API signature."
Then yes, AI reduces the value of that.
You do not need to remember everything anymore.
But if syntax means:
"Understand how software concepts are expressed and learn to read programs as systems."
Then syntax becomes more important, not less.
Because AI increases the amount of software being produced.
More software means more things to verify.
More generated code means more need for people who understand what the generated system actually does.
The Future Is Not About Typing More Code
I do not think the future engineer is someone who manually writes every line forever.
AI will absolutely change development.
Engineers will spend less time on:
- boilerplate,
- repetitive implementation,
- searching documentation.
They will spend more time on:
- understanding systems,
- reviewing changes,
- debugging failures,
- making architectural decisions.
But those skills do not appear magically.
They come from understanding the foundations of software.
Final Thought
After spending months thinking about this, I do not believe syntax is dead.
But I also do not believe the future engineer is simply someone who types code faster than everyone else.
The value of syntax was never the typing itself.
The value was that syntax gave humans a precise way to express, inspect, and reason about software.
Maybe one day we will have a better representation.
Maybe AI will create a new programming paradigm where source code becomes less important.
But until then, code remains the language humans use to understand the systems they build.
So if you are learning programming today, I do not think learning syntax is wasted effort.
The goal is not to memorize a language.
The goal is to become fluent enough in the language of software that you can understand, question, and verify whatever comes next.
Top comments (0)