logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·01.11.26
← Back to news

Making

Original article
beej.us|122 points|38 comments|by erikschoster|Jul 22, 2026

The Philosophy of Making

Reflections on creation, agency, and the AI divide.

I hold a firm belief: if I simply request that someone else build something for me, I cannot claim to have "made" it. Consequently, such projects offer significantly less personal satisfaction.

This essay begins with a strong premise before meandering slightly into the details.

The AI Developer Schism

There has been extensive discourse regarding what I call the AI dev schism. Many of these arguments hold a kernel of truth, presenting a trade-off between different types of fulfillment:

  • The Losses:
    • The erosion of craft (the act of hand-coding).
    • The disappearance of low-level problem-solving.
    • A decrease in the raw "fun" of the struggle.
  • The Gains:
    • An increase in high-level architectural problem-solving.
    • The ability to finally complete "back-burner" projects.
    • A different, more efficient kind of fun.

For the sake of this discussion, we will assume these points are valid across the developer spectrum.

Context & Perspective

To understand my viewpoint, consider my background:

AttributeDetail
GenerationGen-X Hacker (started in the 80s microcomputer era)
Industry Experience20 years (including HP, various startups, co-founder roles, and Activision)
Academic RoleCS Instructor for 9 years (currently at Oregon State University-Cascades)
Family InfluenceFather was a community college philosophy professor for 35 years

Note: In this text, "AI" refers specifically to Large Language Models (LLMs) and Generative AI.


A Showcase of "My" Work

Before diving deeper, allow me to share a snippet of my latest science fiction project. Many of you know me for Beej's Guides, but I also write novels.

Kael pressed his back against the shattered bulkhead, plasma scoring the air centimeters from his face.

The Vorrkai assault drones had anticipated their route through the lower decks and now Rin was bleeding through her jacket sleeve and old Maret couldn't stop coughing from the vented coolant still hazing the corridor.

Then he saw it: the maintenance shaft behind the collapsed generator housing, its grate blown half-open by the same explosion that had caved in their original exit.

It ran directly over the Vorrkai's forward position, which was either the most dangerous path imaginable or the last one they'd ever think to watch.

Kael came last, returning fire blind around the bulkhead corner, not to hit anything, just to make noise, and to give the drones something thermal to track while his people scrambled into the dark.

A bolt caught the generator housing and the whole structure groaned, raining sparks down into the shaft on top of them.

He hauled himself in, knees burning on the torn metal, and pulled the grate closed behind him with a sound he was certain every Vorrkai unit on the deck had heard.

— Excerpt from The Vorrkai Interval, by Brian Beej Jorgensen Hall

Furthermore, in my abundant free time, I've taken up art!

Woodcut Art Placeholder A woodcut piece painted in pastels, featuring some of my favorite motifs.

I also recently rebuilt my deck. The previous one was rotting, so I gathered some cedar and constructed a new one—a project I'd postponed for far too long.

Finally, here is a glimpse of the code I authored for a TUI-based roguelike adventure:

fn try_move( mut self, dx: i32, dy: i32) {
    let nx = self.player.x + dx;
    let ny = self.player.y + dy;

    // Check for monster combat
    if let Some(idx) = self.world.monster_at(nx, ny) {
        let result = {
            let monster = mut self.world.monsters[idx];
            resolve_combat( mut self.player, monster, mut self.rng)
        };
        self.messages.push_many(result.messages);
        if result.monster_defeated {
            let monster = self.world.monsters[idx];
            let xp = monster.xp_reward;
            let gold = monster.gold_reward;
            self.player.xp += xp;
            self.player.gold += gold;
            if gold > 0 {
                self.messages.push(format!("You find {} gold!", gold));
            }
            if self.player.try_level_up() {
                self.messages.push(format!("Level up! {}", self.player.level ));
            }
        }
        if !self.player.is_alive() {
            self.messages.push("You have been slain!");
        }
        self.advance_turn();
        return;
    }

    // Check terrain passability
    if self.world.is_passable(nx, ny) {
        self.player.x = nx;
        self.player.y = ny;
        self.advance_turn();
    } else {
        let terrain = self.world.terrain_at(nx, ny);
        self.messages.push(format!("The {} blocks your path.", terrain.name()));
    }
}

I am, as you can see, a remarkably prolific polymath!


The Reveal

Yes, all that has been created and I was the initiator of all that creation.

Actually, everything I just listed—the novel, the art, the code—was AI-generated. The only exception is the deck, which was built by professional, paid craftsmen.

You might feel a twinge of discomfort that I claimed credit for these things. I know people who hire contractors to renovate their homes and then say, "I put in a new deck," despite doing none of the physical labor.

However, when I use Claude to generate something, I simply cannot bring myself to say I "made" it. I wouldn't even feel right applying an MIT license to that work. To me, that isn't "making."

The Logic of Fulfillment

Having someone else (or an AI) complete a project I started is fundamentally less rewarding. It's not just about the loss of the "puzzle" or the craft; it's about the ownership of the effort.

For example, my wife wanted a basic flashcard system for her Spanish studies. She just needed a way to input words via a spreadsheet and view them as cards.

I used Claude to find the most efficient way to extract data from a Google Sheet (it turns out the CSV endpoint is the way to go), but I explicitly forbade the AI from writing any code.

The resulting project stats:

--------------------------------------------
Language files code
--------------------------------------------
JavaScript: 2 files, 112 lines
CSS:        1 file,  33 lines
HTML:       1 file,  32 lines
--------------------------------------------
SUM: 4 files, 177 lines
--------------------------------------------

It didn't take long—perhaps ≈50×\approx 50 \times≈50× longer than if I had let Claude write it. Yet, I feel infinitely more pride in those 177 lines of code than in anything an LLM has produced for me. I am simply incapable of feeling pride in AI-generated output.

My wife wouldn't tell her book club, "I wrote a Spanish flashcard system." While she might avoid it to not seem like a "geek," the primary reason is that it would be untrue, even though she was the one who initiated the project.

One might argue that getting more things finished is a form of "doing," and there is certainly skill involved in the initiation...