Thousands upon thousands of humans feel pleasure creating software.
I’m one of these.
Though I won’t lie… creating software is losing its magic with the gradually upcoming of an “AGI” optimal on autonomous software building which I don’t think we’re too far from it.
2-10 years
Note: the goal of this post is not to argue on why I think we’re so close
How come it’s losing its magic?
Because, at least in my case, I do not build software solely for the fun of architecting and writing the code itself.
Although, these are also fun (but not the main part)
I build software to see it running and useful.
Useful for me and/or for other people.
My personal reasons to build software are:
- It’s something useful for me and/or for other people and it doesn’t exist yet or
- Or the existent software can be improved
As an example, I wouldn’t rebuild Bitcoin exactly how it is unless just for learning purposes.
If writing code by itself was the main reason which provided me the pleasure for building software, then anything would do.
I could rebuild Bitcoin or Minecraft exactly as they are, and I would have fun writing the code anyway.
However… that is not the case.
It’s more than writing code for me. Through technology, I want to bring specific utilities for myself or for others.
Given the context, you can already predict the source of my frustrations.
There are a few personal and very useful projects that I’d like to work on, and I could invest a few years working daily on them.
One specifically I think it may last for the rest of the human race.
But is it worth to spend time on it, sacrifice days and days for this hobby and for the final software result knowing that, in a few years, I’ll be able to, acting as a product manager with the help of an AI SW-agent, build it in a few days?
And it’s not just about the required time. I believe we’re closer to an intelligent machine capable of building software more efficient than any human could do given the same resources and time.
Fortunately, I have one more reason to build software:
To understand. To learn.
It’s very helpful to understand how a CS/math concept works by writing some code.
Examples:
- using Coq to study mathematical proofs
- building an inference engine to understand AI
…
As a final note: that is not an absolute perspective.
There are a lot of software engineers that feel the same.
While a lot of them simply wouldn’t care, and they would have fun anyway. They would prefer spending months building a 2D game instead of making use of an AI agent to build it in less than one week. Just for the sake of writing the code, that is enough fun for them.
Anyway, I don’t more type to words here. bye