Don't be a bagholder: AI coding is a higher level abstraction

In a profession defined by constant innovation, you don’t want to be a bagholder . In financial slang, bagholders are the ones left holding worthless stocks after their decline. They refuse to acknowledge changing conditions and wait too long to act. I remind myself of this whenever I encounter something potentially transformative, like AI-assisted programming.

Moving to a higher level abstraction

Throughout history, we’ve repeatedly moved up the ladder of abstraction. We started by counting on our fingers, then invented the abacus. Mechanical calculators arrived and were later replaced by their digital counterparts. Computers are now ubiquitous, and software followed a similar path. Programming began close to the machine and evolved into high-level languages. Some languages even abstracted away memory management (e.g. via garbage collection), creating a generation of developers who rarely need to think about those concepts.

Image shows a hand counting, an abacus, a mechanical calculator, a digital calculator and a computer.
Higher levels of abstraction, from counting to the computer

None of these advances are silver bullets. Sometimes you need to drop down the abstraction ladder. FFmpeg, for example, makes extensive use of assembly . Or you might create your own language and engine to build a new game . But most of the time, companies trade some performance for delivery speed.

AI-assisted programming introduces a higher-level abstraction. Instead of focusing on every line of code, developers will spend more time making architectural decisions and validating AI-generated changes.

Developing a new skill-set

Working at this new level of abstraction is a skill that must be learned and practiced. Remember the Excel and Word courses? Those skills once required real investment. Today they’re commonplace. In AI-assisted programming, a growing set of tools and practices separates beginners from advanced users.

Beginners often see AI-assisted programming as smarter autocomplete or a gap-filling tool. Advanced users build custom tooling, hooks, skills, and run multiple agents in parallel .

A list of important concepts for AI assisted coding, from left to right: AI auto-complete, Coding Agent, AGENTS.md, Architect/Plan, MCP, Hooks, Skills, Custom Agents, Worktrees
A list of important concepts for AI assisted coding

The technology is changing fast. With a moving target, there’s only one way to stay at the forefront: research, test, and practice. Experiment with your workflows. We all need to learn by doing and by sharing what works.

Resisting change

Imagine John Backus presenting FORTRAN to his peers and the reception he likely received . “I can write programs better than your compiler”. “I can manage registers better than this compiler thing”. And they were, at least partially right. Until compilers improved and, today, assembly is reserved for niche applications.

Two panel comic with two men talking. Man one: 'Hi Backus, what's up?', the other replies: 'I've created this FORTRAN language. Programming never been so easy!'. Man one replies: 'This is not useful! My code is better than your compiler's. I can manage the registers better!'
When the first programming languages were introduced, they faced some resistance from the status quo

I try to bring that perspective to the present. We’re experiencing a similar shift: the introduction of a new, higher-level programming abstraction. If these moments are alike, their lessons apply as well. This change is likely inevitable. Resisting it only delays an important career decision.

So what’s next?

We’re probably seeing the start of a disruptive innovation . According to Clayton Christensen , disruptive innovations make products and services more accessible and affordable, thus, available to a much larger audience. Think about how digital cameras turned everyone into an amateur photographer.

So what happens when software costs 10% of what it used to, or 1%? In my projects, I already see it: Jevons paradox . As software becomes cheaper to build, it becomes worthwhile to build more of it, which increases demand. For example, I’ve started assembling tools when building is faster than finding a suitable candidate. For companies, this points to more custom software and less reliance on external providers.

In short, demand will grow and we’ll build more applications, but the required skill set will shift. AI increases people’s leverage, and those who adapt quickly and embrace new abilities will thrive. In other words: AI can write your code. It can’t do your job (at least for now).

Conclusion

Recent advances in AI have introduced a higher-level abstraction for programming. It may not be perfect - systems and tooling are still in their infancy - but the trajectory is clear. Using this technology effectively is a skill that requires practice. Don’t get left behind. Use it to build the things you always wanted to build but never had time for.


See Also