Andrew Kesterson

"Love God. Live Righteously. Die Well."
Source Code || LinkedIn
29 Posts 9 Categories 0 Tags
Categories
Books 14
Technology 11
Faith 6
Outdoors 1
Leadership 8
Current-Events 5
Philosophy 5
History 1
Liberal-Education 1
hot tags

# There are two kinds of programmers

2026-01-25 Technology Philosophy 2.8k words

The “AI Revolution”, as many are calling it, is exposing something that I (and countless others) have been aware of for quite some time now. And that is that there are two kinds of programmers:

- Those who do not find joy in the act of programming a computer
- Those who do

This rift has been known by both types of programmers for a while, but because the industry was so desperate for individuals who could write code, we had to live with and tolerate each other. The AI Revolution is bringing us to an odd place where one type of programmer may be poised to push the others completely to the margins.

## The First : Programmers who don’t like programming?

> "If it's not fun, why bother?" --Reggie Fils-Aime

Let us first address why I’m claiming that there are programmers who don’t enjoy programming.

For the layman, this might seem crazy. They’ve probably never met a programmer who didn’t vocalize enjoyment of their job; or at least they probably espoused a love of their chosen skill set, even if they bemoaned the state of their profession. And these individuals are in such high demand, and are so well paid, and the skill is frankly so difficult, why in the world would one choose to become a programmer if they didn’t enjoy the act of programming?

Because for these people, the attraction to programming is simple: it pays them a lot of money, and they like having money. Or, at least, they like having the ability to easily manage their addiction to food, clothing and shelter. But regardless of whether they’re greedy or pragmatic, they chose this professional field because it seemed like the most tolerable way for them to secure their financial stability. They view the act of programming in the same way that a factory worker might look at the machinery they operate or the widget they assemble: with a complete lack of passion.

Now, don’t get me wrong, I’m not hating on anyone for making pragmatic choices related to their finances, how they secure their future or the future of their family. I make these kinds of decisions all the time. That’s fine. These individuals probably grew up in the late 80s, early 90s, early 2000s, and got told that programming was a great way to make money. So they went to college, got a computer science (or some related) degree, and went into the industry.

I also won’t make any claims about the talents of these people; they run the gamut. You will find people who are quite talented and can carry an entire project on their shoulders, and who have absolutely no talent and produce a net negative effect on the productivity of their teams. There are all kinds of people in all kinds of places and the “learn to code, get a good job” movement has exposed talent in places and people we might not have expected. And I’m honestly glad about that - I get a real kick out of finding capability in unexpected places and watching people succeed in places where others think they shouldn’t.

> “Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something." --Robert Heinlein

But the dark side of this has been that we have a bunch of people in the industry now who have no particular attachment to or real desire to engage in the activity of programming itself. They are only engaging in programming because that is the activity which the business requires them to engage in to pay their bills, and they have been trained to do so with reasonable levels of effectiveness. Now imagine that we have an industrial innovation which allows them to actually sidestep the entire process of programming, and have a machine perform that act for them?

The individuals in this scenario have no particular love for the act of programming itself. In fact, they often view the act of programming itself as an obstacle to their goal: their goal is to ship the product, to get it done. Programming is a step which they must cross in order to reach the other side. Now these individuals have access to tools that promise to allow them to complete their assigned business tasks in less time, and without actually having to perform the act of programming. For them, this is great. They love it! They widely adopt it. They become part of the endless march of “progress” in the “business” of software production.

## The Second Type: Programmers as Artists

> Thus spake the Master Programmer:

> “After three days without programming, life becomes meaningless.”

> –The Tao of Programming, Book 2, The Ancient Masters

Let us now contrast that with the second type of programmer. These are programmers who program for one simple reason: because they find joy in the activity of discovering how to make the computer do things, using the languages and the rules that the computer imposes upon them. They enjoy meeting the computer on its own terms, understanding it, and making it do things, and continuing to refine those effects for no other purpose than the program itself.

For this kind of programmer, they program whether they are getting paid for it or not. They were likely programming long before they ever heard that they could get paid for it. Their first interactions with a computer likely happened at a young and impressionable age (though not always), and they have probably been engaging in some form of the act of programming ever since.

This second type looks a lot like the first type from the perspective of the casual observer. Both probably work in some kind of software engineering role in a professional capacity. Both probably engage in some amount of computer programming work outside of their professional job, in their spare time. But their motivations and mechanisms are very different. One does it because it’s an important part of remaining desirable in their field; one does it because they have a genuine hunger for and interest in the subject matter.

It is difficult to define, and has historically been a bit of a battleground, as to whether or not these individuals are more scientist or artist. Google “is programming an art or a science?” and the first page of results will highlight that this is neither an old, nor a settled, debate. And that’s because the question of “is programming an art or a science?” attempts to answer the question for an entire field of practice - one which might be engaged in for various reasons, by various people, and various times, producing various outputs.

Donald Knuth, the famed computer scientist and mathematician who wrote the seminal Art of Computer Programming books, mused thusly in his article Computer Programming as an Art:

> Our discussion indicates that computer programming is by now both a science and an art, and that the two aspects nicely complement each other.
> [...] When I speak about computer programming as an art, I am thinking primarily of it as an art form, in an aesthetic sense.
> [...] Some programs are elegant, some are exquisite, some are sparkling. My claim is that it is possible to write grand programs, noble programs, truly magnificent ones!
> [...] To summarize: We have seen that computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better. Therefore we can be glad that people who lecture at computer conferences speak about the state of the Art.

Knuth’s central thrust is that a computer program itself can be a beautiful work of art. And, thusly, a programmer thus engaged is most certainly engaged in the art of computer programming, and is therefore an artist. Obviously there is a science at work, but the science is being wielded by an artist, in the same way that there is a science to color and pigment and the texture of a canvas, but it is the hand of an artist wielding the brush that produces the work of art; simply working with paint and canvas does not mean you are an artist engaged in a form of art. The same might be said of a factory worker operating a machine that reproduces miniature resin copies of Michelangelo’s David.

Now I want to make clear that, just because one is engaged in an art form, does not mean that your work is superior to another’s. Just because a person is engaged in carving statues from granite, and they do it by hand, and they do it because they love it, does not mean that their work will be better than (or even as good as) the resin statues coming out of the factory machine being operated by the person who definitely would not call themselves an artist. The same is true of programming. There are programmers who engage in the art of computer programming, because they enjoy it, who have very little talent, and who struggle to produce anything that anyone else would consider art.

But this has absolutely no impact on whether or not that person is in fact an artist and is in fact engaged in creating art through the art of computer programming. This is one of the beauties of an artform vs a scientific discipline: beauty is in the eye of the beholder, and it doesn’t matter at all if nobody else but you sees the beauty in it. In fact, if they fail to see the beauty in your artistic creation, then that is their loss and their tragedy, not yours; the beauty in the art exists, they just can’t quite see it the way you do, and their life is a little bit more dark and drab because of it.

## The two types have never gotten along

> A programmer from a very large computer company went to a software conference and then returned to report to his manager, saying: "What sort of programmers work for other companies? They behaved badly and were unconcerned with appearances. Their hair was long and unkempt and their clothes were wrinkled and old. They crashed our hospitality suite and they made rude noises during my presentation."

> The manager said: “I should have never sent you to the conference. Those programmers live beyond the physical world. They consider life absurd, an accidental coincidence. They come and go without knowing limitations. Without a care, they live only for their programs. Why should they bother with social conventions?

> They are alive within the Tao.”

> –The Tao of Programming, 2.3

This is the part that I don’t think anyone is really talking about, but we have to address the elephant in the room:

- Artistic programmers have always viewed non-artistic programmers with disdain, overtly or quietly
- Non-artistic programmers have always found artistic programmers to be weirdos who are difficult to work with

For the record, I consider myself an artistic programmer. I make no claims that I am a great artist. I am just raising the flag for “my side” in this argument, before going any further.

Go into any company, any technology group, and you will find a variety of subgroups. It may take a little bit of time to see it, but usually pretty quickly, you will divide the artistic programmers from the non-artistic ones. They work together because the business requires it, but they don’t really respect each other. Individuals from one clique might respect an individual from the other clique, as a class, they don’t get along. This has always created friction in business technology roles, to the point where some business have adopted unconscious (or conscious) hiring rules that favor one type or the other. When they talk about “culture fit” in their technology teams, this is usually a very large part of what they are talking about.

For the longest time, the artistic programmers held the upper hand in this situation, because frankly the field of computer programming was not sufficiently well understood to be engaged in without the hand of the artist. It was our domain, the science still being so mysterious that it was almost magic, and we were the wizards and priests. The non-artistic types were there to help us get things done, because the business wanted products, not art, and we didn’t appreciate working that way, so they supplemented us with people who were fine doing it that way.

That dynamic is changing. The “AI Revolution” is tipping the balance of power away from the artists, towards the non-artistic programmers. The large language models are now - and if not now, then assuming a constant rate of change, very soon - capable of writing code that is “good enough” to allow the business to utilize the non-artistic programmer to achieve a business goal. There are plenty of non-artistic and artistic types who are, united by their desire to have good working software that does no harm to our society and which can be maintained into the future, united in their disapproving caution of this trend. They warn that the field will be damaged in that there will no longer be a transition pathway from junior to senior, that the products being built will be unmaintainable when the current crop of seniors retires (and even the current crop insists the code will not be maintainable), and a variety of other warnings.

But this is the reality we face in the modern computing industry: software is produced as a means to an end, that end being the production of profit through some product vehicle. The programmers only exist to create that product vehicle, or to deliver that product vehicle through other technological means, all of which are meant to extract profit from a customer. Everything else must take a back seat to that single goal, “the bottom line”. When profit is the bottom line, there is no room for artistry in production, unless art itself is the product. And ultimately, the modern computing industry is not interested in asking Michelangelo to carve David; they are interested in producing resin copies of David with minor variations.

And, frankly, a lot of us find that downright offensive not only on business grounds, but on moral grounds: we see it as a cheapening and devaluing of art itself, which seems like an attack on some kind of human building block that is difficult to express, in the way that art is always difficult to express.

## The Future

I can’t see the future. I don’t have a good answer to what is coming. All I wanted to do was point out the divide that lots of people are talking around, without actually talking about it.

I worry a little about the non-artistic programmer. Their rapid adoption of this tool that allows them to bypass the act of programming a computer is going to shoot them in the foot in short order: they will automate themselves (quite literally) out of a profession, and they will need to find other work. This kind of thing has happened many times throughout human history - we no longer employ people to shovel the shit out of city streets, or employ fleets of stable operators, for example - but we mustn’t pretend that this revolution will not produce such a shift. Mainly, I worry that the current economic market has no viable alternative for many of these individuals, and they will simply become unemployed. Our current world economic situation is bad enough without suddenly making an even larger portion of the workforce redundant. Some great innovation is required to address the collapse this will induce, and I don’t think we’ve figured it out yet.

Personally… I am not worried about the future of the Art of Computer Programming. Art survives with or without industry. The entire modern computing apparatus can collapse, the internet can dissolve, and the FAANG companies can burn to the ground. The Art of Computer Programming will persist. As long as there are hackers with access to any kind of circuitry, The Art of Computer Programming will survive, even if in obscurity, so long as technological humans exist. Because the Art of Computer Programming is the way that this particular class of artist chooses to express what is in their heart, which is where all art begins and, ultimately, ends. And if you don’t understand that, well…

> Thus spake the Master Programmer:

> “Time for you to leave.”
> –The Tao of Programming, Book 9

Recent Posts
2026-05-27
News-2026-Week-2
2026-05-15
Devlog Entry
2026-02-23
Why Firefighting
2026-02-09
News 2026 Week 5