← Back to Blogs

We've Been Abstracting Code for 80 Years. Now We're Abstracting It Away Entirely.

15 min read
AIProgrammingAgentic AISoftware Engineering

Part 1: The History of Abstraction

Throughout the history of computing, every major leap had the same goal: make computers simpler to work with, and open the door for more people to build things.

Back in the 1940s, programming meant writing binary. Ones and zeros, directly telling the machine what to do:

text
10110000 01100001

That's a real instruction for an x86 processor. To write software, you had to think like a machine. You memorized binary patterns. You understood hardware at the deepest level. A handful of people in the world could do this.

Then in 1949, someone got tired of it.

Assembly gave us readable mnemonics:

text
MOV AL, 61h

Same instruction, but now humans can read it. An assembler translates it to binary for you. You still needed to understand registers and memory, but the binary was hidden. First layer of abstraction: done.

But Assembly was tied to specific hardware. Write code for one chip, it won't run on another.

C fixed that in 1972:

text
char c = 'a';

Now you didn't care about which register to use. The compiler handled that. Write once, compile anywhere. C gave us UNIX, Linux, Windows. The entire foundation of modern operating systems.

Still, C was demanding. Memory management. Type declarations. Verbose syntax.

Python arrived in 1991:

python
c = 'a'

No types. No memory management. No noise. Python prioritized the developer over the machine. What took 50 lines in C became 5 lines in Python. And suddenly data scientists, researchers, and hobbyists were writing code. Python gave us the data revolution, machine learning, the AI boom.

The Declarative Shift

There was another shift happening in parallel, from imperative to declarative thinking.

Imperative: you tell the computer how to do something, step by step.

python
results = []
for user in users:
    if user.active:
        results.append(user.name)

Declarative: you tell the computer what you want. It figures out the how.

YAML (2001) carried this philosophy into the mainstream. Then Kubernetes and Terraform (2014) built entire ecosystems around it:

yaml
apiVersion: apps/v1
kind: Deployment
spec:
  replicas: 3
  template:
    spec:
      containers:
        - name: app
          image: nginx:latest

You don't write scripts to provision infrastructure. You declare what you want. The system makes it happen.

The Abstraction Ladder

Here's what this ladder looks like:

text
+------------------+-------+----------------------------------+----------------------------+
| Layer            | Year  | What You Write                   | What Disappeared           |
+------------------+-------+----------------------------------+----------------------------+
| Machine Code     | 1940s | 10110000 01100001                | Nothing--raw hardware      |
| Assembly         | 1949  | MOV AL, 61h                      | Binary opcodes             |
| C                | 1972  | char c = 'a';                    | Hardware specifics         |
| Python           | 1991  | c = 'a'                          | Memory management, types   |
| Declarative      | 2001  | replicas: 3                      | The procedure itself       |
| Agentic Coding   | 2025  | "Build me a login page"          | The code                   |
+------------------+-------+----------------------------------+----------------------------+

Every time we climbed a step, something big happened:

  • C gave us operating systems: Linux, UNIX, Windows. The entire software industry.
  • Python gave us data science, machine learning, AI.

This makes sense. Each jump made technology accessible to more people than before. More people building means more things getting built.

But here's the thing: throughout all these years, every step still required programming. The syntax changed. The complexity decreased. But you still needed technical skills. The evolution was only accessible to people in tech.

2025 Is Different

What happened in 2025 broke that pattern.

It didn't create a new programming language. It eliminated the concept of programming entirely.

The new interface is:

Words → Product

That's it. You describe what you want. An AI agent writes the code, runs it, debugs it, and delivers a working product.

You don't need to be a programmer to build a website. Or a complete application. Or a game. Or a SaaS product. Or an AI tool.

Projects that cost millions in 2023? You can build them yourself in days. Without technical knowledge. Without a team. Without writing a single line of code.

The only skill you need is communication. And everyone has that.

We Reached the Top of the Ladder

Think about what this means.

For 80 years, we've been climbing the abstraction ladder. Each step removed friction and let more people participate. But there was always a barrier: you had to learn to code.

That barrier is gone now.

We've reached the step where technology is accessible to everyone. Not just engineers. Not just "technical people." Everyone.

I've been using Claude Code for about a month. The shift is real. I spend my time thinking about what to build, not how to build it. The problems I solve are higher-level. The friction is almost zero.

We're at the beginning of something unprecedented. A revolution in what's possible and who gets to build it.

Part 2: What Is Agentic Coding and How You Can Leverage It

The Difference: Chat vs Agent

You've probably used ChatGPT or Claude in the browser. You ask a question, you get an answer. Maybe you ask it to write some code, it gives you a code block, you copy it, paste it into your editor, run it, get an error, go back to the chat, paste the error, get a fix, copy it, paste it... you get the idea.

That's chat-based AI. It talks. You do the work.

text
+-------------------------------------------------------------------+
|                      CHAT-BASED AI                                |
|                                                                   |
|    You                        AI                       You        |
|     |                          |                        |         |
|     |  "Write me a script"     |                        |         |
|     |--------------------------+                        |         |
|     |                          |                        |         |
|     |    [Here's the code]     |                        |         |
|     | <------------------------+                        |         |
|     |                          |                        |         |
|     |  Copy code --------------+----------------------->|         |
|     |                                                   |         |
|     |                                    Run it manually|         |
|     |                                                   |         |
|     |                                    Get error      |         |
|     |                                                   |         |
|     |  Paste error back        |                        |         |
|     |--------------------------+                        |         |
|     |                          |                        |         |
|     |    [Here's the fix]      |                        |         |
|     | <------------------------+                        |         |
|     |                          |                        |         |
|     |  Copy fix ----------------+---------------------->|         |
|     |                                                   |         |
|     |                                    Run it again   |         |
|     v                          v                        v         |
|                                                                   |
|   YOU are the executor. AI just talks.                            |
+-------------------------------------------------------------------+

Agentic AI is different. It doesn't just talk. It acts.

text
+-------------------------------------------------------------------+
|                       AGENTIC AI                                  |
|                                                                   |
|    You                            Agent                           |
|     |                               |                             |
|     |  "Build me a login page"      |                             |
|     |------------------------------>|                             |
|     |                               |                             |
|     |                               | +-------------------------+ |
|     |                               | | Writes code             | |
|     |                               | | Creates files           | |
|     |                               | | Runs it                 | |
|     |                               | | Sees error              | |
|     |                               | | Fixes it                | |
|     |                               | | Runs again              | |
|     |                               | | Tests it                | |
|     |                               | | Done                    | |
|     |                               | +-------------------------+ |
|     |                               |                             |
|     |   "Here's your login page"    |                             |
|     |<------------------------------|                             |
|     |                               |                             |
|     v                               v                             |
|                                                                   |
|   AI is the executor. You review and direct.                      |
+-------------------------------------------------------------------+

The agent has access to your terminal. It can read files, write files, run commands, see the output, and react to it. It's not giving you instructions. It's doing the work.

The Agent Loop

Here's what happens inside an agentic coding session:

text
+-------------------+
                    |   Your Prompt     |
                    | "Add dark mode"   |
                    +---------+---------+
                              |
                              v
                    +-------------------+
                    |   Agent Thinks    |
                    |   Plans approach  |
                    +---------+---------+
                              |
                              v
         +------------------------------------+
         |                                    |
         v                                    |
+-------------------+                         |
|   Writes Code     |                         |
|   Edits Files     |                         |
+---------+---------+                         |
          |                                   |
          v                                   |
+-------------------+                         |
|   Runs Command    |                         |
|   npm run dev     |                         |
+---------+---------+                         |
          |                                   |
          v                                   |
+-------------------+      +-------------+    |
|   Checks Output   |----->|   Error?    |--Yes
+---------+---------+      +-------------+
          |                      |
          |                      No
          v                      |
+-------------------+            |
|   Shows Result    |<-----------+
|   Asks for        |
|   Feedback        |
+-------------------+

This loop keeps running until the task is done. The agent writes, runs, fails, fixes, and repeats. Just like a developer would.

How to Think in Agentic Mode

The way you prompt an agent is different from how you'd Google something or ask a chatbot.

Be Specific About the Outcome

text
BAD:   "Make the site better"

GOOD:  "Add a contact form with name, email, and message fields.
       Validate the email. Send submissions to [email protected]"

Give Context When Needed

text
BAD:   "Fix the bug"

GOOD:  "When I click the submit button, nothing happens.
       The form is in /components/ContactForm.tsx"

Let It Explore First

text
GOOD:  "Look at the codebase and explain the architecture"

GOOD:  "What would be the best way to add authentication here?"

Review, Don't Micromanage

The agent will make decisions. Let it. Review the result. If something's off, give feedback:

text
GOOD:  "This works, but use a modal instead of a new page"

GOOD:  "Good, but the button should be on the right side"

What You Can Build

Here's what's possible in a single session:

text
+--------------------------------------------------------------------+
|                                                                    |
|  "Build me a blog with markdown support"                           |
|   --> Full blog with posts, tags, and RSS feed                     |
|                                                                    |
|  "Create an API that tracks expenses"                              |
|   --> REST API with database, auth, and documentation              |
|                                                                    |
|  "Make a Chrome extension that summarizes articles"                |
|   --> Working extension ready to install                           |
|                                                                    |
|  "Build a dashboard for my sales data"                             |
|   --> Interactive charts, filters, and export to CSV               |
|                                                                    |
|  "Create a CLI tool that organizes my downloads folder"            |
|   --> Working script with file type detection                      |
|                                                                    |
+--------------------------------------------------------------------+

These aren't hypotheticals. I've done versions of all of these.

The Mental Shift

Using agentic coding feels different. You stop thinking about syntax and start thinking about systems. You stop asking "how do I write this?" and start asking "what should this do?"

text
+-------------------------------------------------------------+
|                                                             |
|   OLD MINDSET                    NEW MINDSET                |
|                                                             |
|   "How do I parse JSON           "Extract the user data     |
|    in Python?"                    from this API response"   |
|                                                             |
|   "What's the syntax for         "Add a new endpoint that   |
|    a POST route in Express?"      creates users"            |
|                                                             |
|   "How do I center a div?"       "Make the hero section     |
|                                    look professional"       |
|                                                             |
|   Focus: Implementation          Focus: Outcome             |
|                                                             |
+-------------------------------------------------------------+

You become the architect. The agent handles the construction.

The Skills That Matter Now

So if you're not writing code, what skills actually matter?

Solution Architecture

This becomes your primary job. You need to think about how pieces fit together before any code exists. What components does this system need? How do they communicate? What happens when something fails?

The agent can build anything you describe. But if your description is a mess, you'll get a mess. Clear architectural thinking leads to clean systems.

System Design

Related to architecture, but more about trade-offs. Should this be a monolith or microservices? SQL or NoSQL? Server-rendered or client-side? Real-time or batch processing?

You don't need to know how to implement these choices. But you need to know which choice fits your situation. The agent will ask clarifying questions, but the decisions are yours.

Project Management

Breaking big goals into small tasks. Knowing what to build first. Understanding dependencies. Keeping scope under control.

When you can build anything in hours, scope creep becomes a real danger. "Just add this one feature" is easy to say when an agent does the work. Project management keeps you focused on what actually matters.

Quality Assurance

The agent writes code. You verify it works. You test edge cases. You check that it handles errors gracefully. You make sure it does what you actually wanted, not just what you asked for.

This is critical. Agents make mistakes. They misunderstand requirements. They take shortcuts. Your job is to catch these before they become problems.

What's Next?

Ready to try this yourself? Start with the beginner guide: How to Get Started with Agentic Coding: Beginner