Nice presentation, I've been asking myself about exactly this lately. Speaking for myself, I like to build a small copy of some big project, and then I put big hopes on it and start feeling guilty that it's unfinished. It turns into a kind of ban on picking up anything else, while the big one keeps getting put off too. And here there are so many different styles and approaches laid out.
My rule of thumb is that if you've been talking about how cool doing something would be for longer than it would take you to do it, you should "Shut Up 'N Play Yer Guitar".
I saw another guy I'm trying to find, he's Asian, one of the projects he did was make a map from raw OSM nodes I think. But he used a "niche" language like Zed and worked directly with GL idk was trying to find him. One of those really really good programmers. His videos are in English. The map is like Brooklyn or some part of NY.
I was looking for this one. It's far beyond a mere "style". It breaks the entire premise.
Being a "problem solver" means you live with the code you write on a daily basis the same way as anyone with any other skill such as woodworking or sewing/knitting.
For the people who think writing code (without AI) is so hard that they make it a separate "thing" away from their usual life, I have to also wonder whether they can cook their own breakfast.
A Proustian "eating the madeleine" moment occurred when I booted my MiSTer into TI-99/4A mode and began typing programs in TI BASIC, redefining characters and drawing little images with them on screen. In the midst of a tech hellscape, I suddenly remembered why I loved programming to begin with.
I did not like how this handled scrolling, made my navigation feel constrained. Maybe I was supposed to use the keyboard to navigate? It doesn't seem particularly clear.
Navigation was easy. What I didn't like was having no idea where I was and how much farther there was to go. It was like the world's least intuitive HyperCard stack.
Like the points in this presentation, recently I kept thinking it seems I need find the joy of fiddling and learning, not build some thing for money but for fun only.
Have been used some spare time to learn common lisp and write a manual project, still use web based AI as a quick search method.
But I managed to learn some common lisp and how to do cffi in common lisp and
- use gtk4 cffi binding to start a GUI app
- write a ghostty cffi to encode/decode terminal escape sequences
- write a libssh2 cffi to communicate with a ssh server
Hope I can build a minimal SSH Terminal using common lisp to keep on experiment and exploration
I’m definitely strong type 2, strong in the sense of I don’t care about activities of other types, not in the sense that I’m very good at programming.
I have a bunch of abandoned repos. I used to want to finish some of them, so perhaps I can show them to some people and get a in-domain job, but recently I realized that it is probably impossible for me to do so. I don’t have success because I don’t chase it. I chase fun and that’s what I should expect, not other things like career switch or monetary rewards.
I, like the author, stopped worrying leaving aside unfinished projects. I cobsider learning or having fun was the project, and that I did finish. And I frequently come back to projects a while after.
The definition perfectly describes how I started out in computers in 1981. Brought home a 4K, 8-bit computer from Radio Shack that I could barely afford and hooked it to the TV. Had never touched a computer before, zero prior knowledge and only had the manual in the box (which was surprisingly good). No one I'd ever met owned a computer at home or used one at work and I'd never really considered that you could make money with computers. I just thought the games seemed fun and the idea of learning about programming seemed cool. Turns out typing in long listings from B&W hobbyist zines and then finding all the typos was a fine way to learn.
Teaching myself assembler was harder because I had no docs. I was so clueless I actually looked up Motorola in the phone book and called to ask where I could get a manual. The sales rep who answered the phone must have taken pity on me because he mailed the CPU manual for free. I still have the purple reference card and remember the common opcodes by heart (https://colorcomputerarchive.com/repo/Documents/Datasheets/M...)
The first time I made money was about 18 months later when I wrote a pretty handy disk utility program. Stayed up all Friday night finishing it. Copied onto floppies I sold for $5 at the local user's group Saturday morning. Made $140 and got my first 28 customers. That was enough to get me hooked on making software and selling it. ~40 years, three startups, over a dozen products, hundreds of good people employed, a couple million customers and two PC Magazine Product of the Year awards later - I regret nothing. Started on a lark to learn and have fun. Much was learned, fun was had. Wonderful journey - highly recommend.
This is a great life story. I had similar beginnings as a curious child but no PC Magazine Product of the Year! I'm sure you'll find many people here who also started curious and with no friends who cared or had even seen a computer.
Is there an equivalent to that today? As soon as a cool technology appears, there are startups selling something within a few weeks. What is the "weird" kid doing today?
Well, hitting the first home run took about a decade full of base hits and more than a few strike-outs on the way to figuring out what I needed to know to do a tech startup well.
> What is the "weird" kid doing today?
Over the last decade I've spent increasing pro bono time trying to 'pay it forward' talking to classes and groups of erstwhile entrepreneurs, so I've heard versions of that question a LOT. It actually took me a couple years before I realized there is no 'right' answer because the right thing for each person differs depending their unique personality, skills, interests, context and life journey.
The most helpful thing I can share isn't a guess about which target you should aim for but rather some advice about how to approach your journey. First, I hope you want to be a tech entrepreneur because that's the only thing I know about. I have no idea what skills will be in demand to get a high-paying, secure job or how to get promoted. I had to become an entrepreneur because I was terrible at being an employee.
I never aimed for my guess at what would be "hot" next and I doubt my guess would be right anyway. Every time I found success it was by starting with a real problem some customer actually had. Initially that customer was me or a friend but it doesn't matter. It just has to be a serious enough problem that motivated customers are actively looking for new and better solutions than what exists. Then figure out a way to solve their problem better enough that they'll actually buy it. It doesn't have to be perfect in every way, just better enough in most ways and perfect in at least one way.
In fact, some of my best products became hits by cleverly solving one part of a problem SUPER well, but only did so at the cost of some odd downsides in other areas. Here's a generic example of the pattern that worked: my friends and I all desperately wanted a Zig-Zag Widget but good ones were stupid expensive and the ones ordinary schmoes like us could afford Zigged and Zagged like shit. But while we were bitching about this sorry-ass state of affairs over pizza and beer one night we theory-crafted how it might be possible to make a Zig-Only Widget ordinary mortals could afford. The dumb idea was by not Zagging at all, it just might be able to Zig even better than the best. Since we all had no Zig or Zag, that seemed like a trade-off we might be pretty okay with. Turns out other people were too... especially after we worked on adding some 'pseudo-Zag' features that worked around the worst parts of not Zagging. And that's how we came up with the world's best Zig (but no Zag) and sold it at 1/4th the price of even a half-assed Zig-Zag. Not really new technology, just a very clever mixture of the exact right old tech with a little new stuff, some clever UX innovations and cool workflow integrations. Blam! First Product of the Year.
If prototyping dozens of different iterations and trying each one out with real, live problem-having customers and listening empathetically for hours to their constant complaints, ridiculous demands and occasional awesome suggestions sounds like fun, then you may have found your calling. If you just want to write great code for a good paycheck and be left in peace, then, my friend, run the other way. :-) It's ironic because I got into making products because I loved programming but after the first few years, I wasn't writing much code anymore. It was invaluable that I'd learned the business by starting as a self-taught, down-to-the-metal, assembly language, real-time graphics programmer because I was able to identify and hire programmers far more skilled than I'd ever been but after the first million in revenue and 20th employee I personally spent more time writing or reviewing ad copy and legal contracts than code. But that's also invaluable because as the company grew and various fires flared up in every part of our business, I got pretty damn good at doing marketing, sales, PR, finance and even legal stuff myself when necessary. And all that was the best prep ever for being able to run the place when we hit a hundred million in sales and hundreds of employees.
I used to hate the constant looming threat of existential doom always hovering over our tiny startup. Then one day I finally understood that the constant stream of scary new challenges were there to force me to keep growing and learning new skills. not only survive, but to level up and feel the satisfaction of summitting ever higher peaks. I hope you'll find the same on your journey. The best part is now that I'm retired, I'm back to programming in 8-bit assembler and 4K of RAM, except now I have a rather expansive collection with every model Atari, Commodore, Sinclair and Amstrad ever sold. :-)
> Not really new technology, just a very clever mixture of the exact right old tech with a little new stuff, some clever UX innovations and cool workflow integrations. Blam! First Product of the Year.
To anyone that might listen, I wanna add my own insight on this: it's all about design. Not in any "shapes and colors" way, but in "Notes on the Synthesis of the Artificial", way.
People in tech obsess about, well, tech. While what sells and builds businesses is great design, achieving the right balance of user and developer experience and delivering some abstract shape that fits extraordinarily well with some high-dimensional definition of a problem space.
It's never been about the code, the tools, the tech. It's all about how things fit together. Think about "quality of life" mods in popular games. The more complicated abstract systems our minds engage with, the more opportunities to design something are created. The human cognitive space has a lot, and I mean A LOT of problems waiting to be solved that only need someone to realize how to build some abstract shape that fits better that what is currently available.
> Turns out typing in long listings from B&W hobbyist zines and then finding all the typos was a fine way to learn.
My mom and I used to take turns reading the code from the magazines out loud while the other typed the code into our Commodore 64. She used to say things like "I was just having fun, typing in the games and playing them, but thwarted was actually learning something" (no, my mom doesn't call me "thwarted").
1979, 14 years old, my dad brought home a TRS-80 Model 1. I started to learn BASIC by typing in code listings from Byte magazine. Then I started coming up with my own projects. Loved it so much I knew what I wanted to to do for a living and what college program I wanted to get into.
Nearly 40 years post college, I still play with coding and system design on my time and TBH, much more satisfaction and happiness from that than my day job.
Thanks for sharing. This is a great story. You went from zero computer knowledge, maybe a couple of books, to selling a disk utility after barely 18 months. I think you are pretty good comparing to many others who didn't even manage to handle assembly.
Remember when computers came with manuals, good manuals that taught you how to get maximum power out of the machine?
The VIC-20 had a particularly good one. It could be read by children and gradually introduced programming concepts in such a way to ease anxiety. For example by stating that error messages were "your VIC-20's way of helping you". Since BASIC was the only thing the machine could do without an additional purchase, this was incredibly helpful.
Recreational programming is great! I'm always reinventing the wheel because it's more fun for me to (e.g.,) write my own XML parser than to learn some library.
But, IMHO, the difference between writing programs for fun and writing programs that other people find valuable is like the difference between masturbating and making babies. The former is fun, the latter is fulfilling.
There is nothing wrong with having fun. But if you ever find yourself unsatisfied with all your half-built projects, maybe consider writing software that other people value or even love.
Yes, it can be frustrating to try (and often fail) to satisfy others. But seeing someone enjoying your software is an amazing feeling. It makes you feel proud, useful, and talented all at once.
I feel you're missing the point. AI has no impact on recreational programming, it's about satisfying your personal curiousities and interests. I'm currently hand rolling a database project in rust because I find writing rust is fun. If you're pausing to ask yourself "what's the use if you can just use AI" then you may not have liked programming intrinsically to begin with, but instead the second order effects it gave you.
It somewhat does have an impact on it, because a cool part of recreational programming for SOME people is to share their hobby with others, but the value that others will place on that sharing is diminishing with AI. It's just human nature to value something less or find it less impressive when it can easily be made with a machine.
This is how I feel, I like to share the cool thing I did and be part of creative spaces with other people, but I feel those spaces have gotten smaller, or changed.
The internet is increasingly full of the types of people it's pointless sharing anything nascent with anyway. I'm sure a local meetup will see your side project very differently than a subreddit or hacker news (the latter will even send armies of bots to take you down).
It seems to me that you are still doing it to showcase it to others. I understand it feels great to talk about it with people understanding the effort you put in, but it really is a personal thing IMO.
Well at least that's different because you have choice to use slop generator to vibe code or not and the chlorine is there no matter if you want it or not.
That's the whole point: they can't, because even in any useless "fun" programming there was motivation that it might be useful to someone in the future, or simply to fill the internet with information.
But now there is absolutely no usefulness in creating useless projects.
But lots of things like evolving pictures, palettes, or little creatures. Fluid simulation, cellular automata. Fluid simulation in cellular automata. Enough game Jams that I no longer know how many games I have made.
I have done all sorts of things, I am undeterred by AI. For some things I will now get AI to explore entire ideas. Other things I will do entirely myself, and many things will be varying degrees of each.
I see more opportunities for exploration. If you can see further by standing on the shoulders of giants, why begrudge a personal giant assistant?
You can look at it one of two ways: either you program recreationally because you love the act of programming, in which case AI´s existence is irrelevant, or you love building things, and AI lets you build bigger things faster than ever before.
I use AI to program at my job but at home I am trying to keep writing everything by hand. It’s very tempting to just let the AI do stuff for me when it gets tiring, especially when tests are failing and I know the AI could fix it for me in seconds while I have to spend hours figuring it out, but I try my best to do it without AI. I just ask the AI questions sometimes for things I would have used StackOverflow in the dark ages. I feel like people need to do this if they want to keep being programmers in the old fashioned way! Junior programmers especially.
Agreed, though the very existence of these tools changes the feeling of doing the work, which I can only assume changes the result in the brain. I hate the idea that these tools affect what my brain does and the value it attached to an activity even when I choose not to use the tool.
Im very depressed over all this, to me it feels like all the beauty of the world has been sucked out, or at the very least blanketed in so much noise its impossible to discern.
Remember the book _The Never-Ending Story_ by Michael Ende? The Nothing that was consuming the land of Fantasia.
That's our predicament in modern society - and I mean "modern" as in the obsolete value system and culture that produced the shameful century of world wars - that is stealing our dreams and choking the future of humanity. We didn't learn the lesson the last time fascists took over the world.
The message of the story was that imagination is our hope, it has the power to create new futures from the ruins of the old and the past, to bring forth new life from the dead.
I can understand it, but it dawned on me that I needed to figure out some cope for AI's presence in the industry, the upside is that AI is the real deal, this stuff really works, the downside of AI are the fucked up ways its being capitalized and its costs externalized, and the crash and inevitable bailouts I see coming, especially for OpenAI, and lets not even mention the morons who can't control their deployed agents, oh yeah security anyone? (crowd yells no thanks)
Being a now hobbyist programmer, AI is just fun for me chatting with it, throwing structs and snippets at each other, but boy am I reading some horror stories about what it does for jobs, working conditions and code quality. The thing is, its just humans making great inventions and then as usual, fucking everything up with them.
Thats me!!!! More than 20 years of hobby programming.
It has never been a better time to be a recreational programmer and I have never been more excited with all the changes! As someone that started making html pages with dial-up, I am just gobsmacked with LLM's! Programming has helped me immensely in my career as a professional firefighter and I hope to have a second act in tech... we'll see!
In my professional DevOps role I'm firefighting all the time, and in my professional programmer role I'm arsoning fires all the time, but I'd also love to hear how real firefighters apply programming skills!
I can't speak to firefighting, but in many ways emergency medicine is remarkably similar to debugging software: you're presented with a problem, it's manifesting some symptoms and you have to determine the root cause. Sometimes a clock is ticking.
If you actually enjoy the process of debugging, discovering root causes and fixing things, emergency medicine can be quite rewarding & fulfilling on very human level.
Fair warning: There are also some really bad experiences you will never un-see, if you're not ready for that I would stay away. Seeing death is objectively worse than the most catastrophic datacenter outage.
Recreational programming used to be one of the rubrics to hire a software developer. If you have an intrinsic motivation to code, it would often be more valuable than your credentials. That's why junior devs would push up sites showcasing their resume of random projects they've done outside of education in order to give them an edge over their competition. Some companies would even encourage some time on the clock for working on side projects to prevent burnout.
At the same time, some of the workers in the industry were disgruntled that you were expected to enjoy coding in your spare time to keep up. While some truly just wanted to do it because they were good at it, and would rather turn off the software dev brain after work to do other things they enjoy in life.
With the advent of high-performing LLM's for coding, though, it seems more important to showcase how you can harness AI for your recreational projects than the projects themselves. It's a bit of a catch-22 for junior devs though.
I still think it's good rubric to get into programming if you like to do it recreationally, but these are just a few of my thoughts on how it can be problematic.
That's not the goal of recreational programming though. You don't do it for the ROI. It may have a ROI, but I don't do this for that, I do it because I am genuinely curious.
something about metrics and targets. When I got my first programming job, one of the reasons they hired me, apparently, was because I knew what components I had in my PC at home. If they had published the question beforehand and everybody knew to study it, it would no longer have made sense to use that question as a filter. You want the people who knew this stuff anyway, with no expectation of reward
> With the advent of high-performing LLM's for coding, though, it seems more important to showcase how you can harness AI for your recreational projects than the projects themselves.
people who ride horses recreationally don't really care that cars exist
I kinda wonder if the hacker community is going to eventually be like the ham radio community in that there are no more jobs in it, and we just have the dedicated enthusiast tinkerers working on the side.
I'm not sure I follow...were there ever (many) jobs in the ham radio community? There have been people making/selling kits and radios, but it is _amateur_ radio, so was inherently non-commercial.
>The Italian artist Bruno Munari began building "useless machines" (macchine inutili) in the 1930s. He was a "third generation" Futurist and did not share the first generation's boundless enthusiasm for technology but sought to counter the threats of a world under machine rule by building machines that were artistic and unproductive.
>The version of the useless machine that became famous in information theory (basically a box with a simple switch which, when turned "on", causes a hand or lever to appear from inside the box that switches the machine "off" before disappearing inside the box again) appears to have been invented by MIT professor and artificial intelligence pioneer Marvin Minsky, while he was a graduate student at Bell Labs in 1952. Minsky dubbed his invention the "ultimate machine", but this nomenclature did not catch on. The device has also been called the "Leave Me Alone Box".
So here's a live demo of an ultimate thing I pleasure programmed:
I've been using Claude to recreationally develop a PDP-7 and Type 340 vector graphics display emulator for the web browser, in order to run an early CAD system called PIXIE, which has the first known radial menus, driven by a light pen, developed at Cambridge in the late 1960's, whose 128 pages of PDP-7 assemblxy language source code the author Heinz Lemke scanned and sent me.
Once I got it working, I told Mitch Bradley about how much I wanted a Forth system for it. Mitch has written useful things like OpenFirmware and CForth, and I was his summer intern at Sun in 1987, where we had a fun time hacking his CForth into CADroid (a circuit editing system developed at LucasFilms) as an extension language and macro system.
Since then, Mitch developed his Sun Forth system into OpenFirmware for the boot ROMs of systems like the Sparcstation, PowerPC Mac, and the OLPC. So naturally I thought it would be fun to run Forth on the same machine that ran PIXIE, mainly because I'd love to work together and hack Forth with Mitch again after all these years, but also because Forth was the perfect language for the PDP-7.
So then Mitch used Claude to whip up a PDP-7 Forth in one day, with Turtle Graphics!
It turns out that the PDP-7 instruction set is ideal for Forth. It has an "XCT" instruction for indirectly executing other instructions, which makes the Forth inner interpreter loop only require 3 instructions.
" --- NEXT: the inner interpreter ---
" Only LAC/LAW-tag cells fall through to "dac i 012"; CAL/JMP-tag cells
" transfer control elsewhere and never reach it.
next: xct i 010 " pre-increment IP, execute the thread cell
dac i 012 " push AC (only reached by constant/variable cells)
jmp next
Now that Forth runs like a bat out of hell, I'm hacking virtual hardware devices for the PDP-7, and controlling and visualizing them with Forth.
First I made an "Ultimate Machine" device for the PDP-7, inspired by Claud Shannon and Marvin Minsky, whose only purpose is to turn itself off!
Bruno Munari called it a "Useless Machine", but Minsky was more compassionate, and appreciated its purpose of turning itself off as being ultimately useful, so he renamed it the Ultimate Machine.
I think there are some deep implications to the halting problem, but I can't quite put my finger on it the way the Ultimate Machine puts its finger on its own off switch.
The Ultimate Machine emulator plugs into the PDP-7 emulator as a virtual device cabinet, which has its own device control IOTs that augment the PDP-7 instruction set.
DEC sold a lot of "plug-in instruction sets in a cabinet" like the Type 340 vector graphics display, its light pen, character generator, subroutine executer, advanced math instructions, etc.
Then I made a Forth program that draws an animation of the Ultimate Machine on the 340 display, with a switch activated by the light pen. It's not a "simulation" -- it's an actual interactive visual representation of the emulated Ultimate Machine device state that FORTH controls via IOT instructions, the same way it controls the 340 display and light pen!
The Forth 340 view, with the IOT words, the hand, lid and lamps, and the light-pen switch, so you can turn it on (and off) with the light pen (check out the tool tips the emulator user interface shows you when you point at the graphics):
Instead of halting there, for even more Turing completeness, I made a Turing Machine device, which is like the 340 display in that it not only adds device control IOT instructions, but also executes its own Turing Machine instructions and tape via DMA from of the same 18-bit core memory as the PDP-7 and 340 display.
The 340 display and the Turing Machine are both co-processors that execute their own instructions from the shared 18-bit core memory of the PDP-7, which generates code for them to execute, and controls them via IOT instructions.
The Turing Machine device issues an interrupt when its head page faults off the edge of the tape window in core, so the PDP-7 can implement virtual memory to support "infinite" tape.
Forth => Turing Machine Compiler I made based on Christopher Cherniak's "TM*" courseware from the "Philosophy and Computers" course I took from him in the 1980's:
Interesting idea (on a web site that is hard to use).
AI taught me that I don't really like programming per se. I was very good at it, I believe, but it's never been what I really wanted. I want to build stuff. AI let's me do it faster than ever before. But more important: it takes care of the boring, tedious stuff that caused me to abandon far more projects than I completed.
So far, 2026 has been my most productive year, by great margin. Things that I wouldn't have even dreamed of starting became possible. And the pace keeps accelerating.
This is exactly my experience. It's interesting to see how some people are completely drained by agentic development (even though their management is not forcing them to be 10x engineers), and others thrive. I’d say those of us who thrive are in the minority, though.
The only thing that bothers me about this new era is that many projects are built on shaky foundations, as it is easier to ship, and expectations of delivery speed are often unrealistic. But that is more of a question of prioritizing quality and reliability, and not an inherent feature of development with AI.
what is your metric for "productivity" exactly? generating more and more lines of code? we have always had a way to do that which is called copy pasting. now what we have is a tool that vaguely understands the problem at hand and performing the copy pasting in a stochastic manner. do you get your llm to bring a novel solution to a problem that hasnt been explored before? otherwise, i seem to fail to see the value in this process. what is it that you are getting out of it that makes you "more productive". do you even learn anything new when you are not even the one doing the work. what is the point of anything at this point.
Releasing a major project in about a year (downread.com) while having several ones in the pipeline. Far more than I was able to do in previous years with similar time commitment.
> that vaguely understands the problem
This is not my experience at all (mostly with Opus). It can understand and explain to me even complex programs. And then edit them. Usually it solves tasks on the first attempt, if the instructions were precise enough (and with every new release, Opus needs less and less handholding / context).
> do you get your llm to bring a novel solution to a problem
> that hasnt been explored before?
No. But if I explain a novel solution to the LLM, it can create a complete implementation far faster than I ever could.
> do you even learn anything new
Usually not, unless I work in an area I have no experience in (like setting up an iOS app). But that's not even the point. I don't do it to learn; I do it to build products that either don't exist yet, or are better than the existing ones. These projects are no rocket science, but they are very labour-intensive.
i see. i guess its just my view that is different. i believe the value is in the process of producing, not driving an agent to get something to exist. because if im not learning anything new, is it really me that is producing? as long as you just keep prompting an llm at every opportunity you get, you will be at the exact same spot you are right now and may be easily outraced by someone else who just as well prompts an ai. i believe learning is perpetual no matter the amount of experience. now, are we going to achieve agi? will this really matter then? i guess that is another topic for later.
You can ask the same question when you lead a team of developers. To me, it doesn't really matter what or who is producing. Using whatever tools, I create something that did not exist before.
> you will be at the exact same spot you are right now
I don't think so. I am getting more efficient at delegating things.
> may be easily outraced by someone else who just as well prompts an ai
I've been lucky enough that that for most of my career so far I've been able to do a lot of stuff that I genuinely enjoy. In other words, I've been paid to do recreational programming. It hasn't all been like that, but there's been enough to keep me happy.
It's changing now, though. I don't really get joy from programming any more. I used to do things because they were challenging. I would ask myself "can I really do this" and the joy came from seeing that, yes, I really can. But now the answer to "can I do this" is increasingly just "yes". Actually doing it is just work at that point. I don't get joy from being a mindless button pusher.
I know and understand it. However I see a lot of people being sad and angry because of LLMs/AI agents. I would like to add to this website section about LLMs/AI. You can use them or not at all if you want. I guess nobody forces you to use "magic" AI in your hobby projects.
You could practice the magic in your 9-5 too before.
If you do so now, your coworker has built two features and automated some other job in the time you found the best design pattern for a particular problem.
Yeah. During job use AI if you have to (or just change job if you can). In your free time do programming by hand if you really need. I can understand it but some people can not handle it. I read on Hacker News, Reddit and some other places that people are sad and angry about LLMs/AI. They usually say some shit such as no more problem solving or AI do all work for them.
When you have made a life and career out of a particular skillset, like writing code, the fact that a machine is now doing your job is a hard swallow pill.
You will keep the denial and finding all the cons for as long as you can.
"Oh, but it's not clean", "Oh, but it's a spaghetti mess".
Because accepting that the previous points don't matter anymore in the overwhelming majority of cases, and the technology keeps getting better at each release is difficult.
It is sad after all. I enjoyed the magic and craft too. Now I'm a borderline meat relay, who'se added value is only because business and product people are too lazy to instruct the tools.
It's actually worse than that. In a repo where there is a heavy amount of AI code, it becomes impossible to manually write code. The AI code favors obtuse, unmaintainable mess (from the standpoint of a non-AI dev). Constantly overwriting your changes, large comments, hacky logic, overly-defensive programming, misunderstandings that the LLM made that cause you to waste hours debugging.
I've come to the realization that AI code bases are effectively AI-only code bases, unless one is using AI as just a code-autocomplete, then that seems mostly fine. But most devs are using it as an end2end implementation tool, having it 1-shot full features, and then iterating on them with the agent afterwards. The amount of churn and terrible code stops the manual coder from doing anything effectively.
In my own team's codebase, I'm confident that we would actually be further along without AI, and that AI coding is a hindrance (although AI debugging seems to be a pretty good tool). It is made worse that everyone does code reviews with AI now, and it constantly gets things wrong, and when its right, it's usually for the most basic, unimportant issues (again with the overly defensive coding style). This waste the manual coder time trying to figure out if the issue its requesting a fix for is an actual problem or not.
Is this a slideshow or what exactly? I mean clearly its not an article, but also slideshow Id expect more images and make it more skimmable and have a sense whats front or back and which page Im at.
Im sorry I really wanted to read what you wrote but please put it in a proper form because right now its uncomfortable.
```
KEY ACTION
N , SPACE Next slide
P , Shift SPACE Previous slide
← , H Navigate left
→ , L Navigate right
↑ , K Navigate up
↓ , J Navigate down
Alt + ←/↑/→/↓ Navigate without fragments
Shift + ←/↑/→/↓ Jump to first/last slide
B , . Pause
F Fullscreen
G Jump to slide
ESC, O Slide overview
I feel that. I got into programming because of video games. At some point I wanted to know how they are made and wanted to create something on my own. Through a friend I got known to BlitzBasic3D and shortly after BlitzMax. I learned to program while making games, just for me, most things never got released. I spent hours deep into the mornings at time and loved it. It's quite some years since I felt like that and had the energy and motivation to go on and on without hesitation.
I studied computer science and became a paid software engineer, all the experiences with BlitzMax laid out a good foundation for me (RIP Mark Sibly and thank you for your work), and while I like what I do, I don't love it like I did this game programming back then. These days I tend to look out for opportunities to create something that pays my bills or ultimately frees me of having to be employed but often enough I don't get myself to work on it because it's work after my paid work without knowing if that pays out and then the thought "Is it worth my time?" comes up even though the project itself might be even really interesting to pull off.
From time to time I looked back into game programming and every time I felt that little flame light up again. It's been a while now and I even have 2 ideas that I'd like to see implemented. After reading this I realize how much I crave this kind of programming currently. Should probably spend some time doing that :)
I can definitely see myself in there. I am mostly problem solver but each problem it's also place for explorign new ideas and/or developing some in-house library which gets reused over and over. Also I get easily distracted and thrown into some ADHD sidequest and end up with font tool which can also render maps.
Curious to get other's thoughts, but I recently got into a disagreement with a coworker when I stated that you can't be programming as a hobby if an AI writes the code for you. You could be developing software but if you're not actually writing the code, then you're not hobbyist programmer.
There is a big difference IMO between someone who wants to code traditionally and one that uses AI when it comes to developing software. And this difference illustrates what's a software developer to a programmer.
Programming for fun as a kid was a great way to learn.. however as an adult burnout is a killer, if I don't leave work at work then I turn into a mess pretty quickly. I'm pretty confused about how they think "recreational programming" prevents burnout, it sure doesn't in my experience.
To some degree it works for me, but it’s very “what am I doing at work right now” and “is this personal thing really for fun or am I forcing it on myself.”
A quick test (again, just for me) is “Do I intended to share this or is it exclusively for me?”
If there’s no angle where it’s a kind of work or pressure, of any kind, it’s genuinely exploratory and fun. And if it’s that, it might decompress me more than make me just feel busy.
I don't quite follow that either. I love my job and the work that I do, but you can't do too much of anything. I get to pay the bills doing something that I enjoy, but then I need to shut off my thinker and go do something else when 5 o'clock rolls around.
> I'm pretty confused about how they think "recreational programming" prevents burnout, it sure doesn't in my experience
This for sure varies from person-to-person, but in my experience day-job programming is a very different kettle of fish to off-the-books coding. There are no Product Managers, no sprints, no meetings, no Jira in my personal projects.
If your day job is mostly heads-down coding, you may not relate, but for me developing something I want to on my own terms provides a break from the stressors of collaboration in a corporate environment
A harsh reality that I didn't come to terms with until I was in my late 30s is that many things I enjoy doing still cost spoons to do. Which means I can also burn myself out doing things I enjoy. Programming is one of those things, so programming in my free time was still burning me out even though I found it rewarding.
My mental health improved quite a bit when I realized I needed to identify and prioritize more restorative forms of play. That did mean allowing my childhood passion to become just a day job. But that's OK. I honestly wish I had let it happen sooner. What got me to where I am now won't necessarily get me to where I want to go next.
If that's not how things work for you and programming for fun is genuinely restorative, great. I just wanted to put my own experience out there because tech's hustle culture can make it hard to realize that advice like this isn't for everybody. Especially for those of us who might have a touch of alexithymia. Which seems to be pretty common among professional programmers.
Same thing happened to me. I forced myself to take ~ a year off any recreational programming and can now do small projects here and there but I limit myself. I focus more on music and reading now. I find making games the least taxing programming project I think because it mixes in art, design, and music and programming is a smaller part of the process.
I found I get a similar level of joy if I just sketch out my idea, sometimes just in words/text docs and sometimes with pencil and paper. Once I have the creative outlet satisfied, I can visualize what code roughly needs to get written for the thing to come to life. This is usually where I stop now, I know the level of effort to build is much higher[0] and utility of the thing existing is usually quite low. So I throw it in an ideas folder and typically don’t revisit it unless it’s something that just keeps getting into my mind. This is a sign I might want to build it. However, there tends to also be an entrepreneurial aspect to my projects and so I have to further consider if I actually have any interest in being the founder, or spending any time on it after development, and the answer is usually no.
[0] effort can be low with ai now but I find no joy or sense of accomplishment in developing with that tooling
> Which means I can also burn myself out doing things I enjoy. Programming is one of those things, so programming in my free time was still burning me out even though I found it rewarding.
I reached the same conclusion earlier this year at mid-40s. I'll probably work another 10 years, retire early in mid 50s, and commit to full-time recreational programming.
I don't know. I have seen the first title, scrolled to see the rest of the text, and the "slide" changed and I said, "It's a slideshow", then navigated away. From what I see:
- Space, right arrow, down arrow and scrolling down: Next slide
- Up arrow, left arrow, scrolling up: Previous slide
But at this point making user interfaces actively confusing in the name of minimalist aesthetics seems to be so popular among front-end developers that I'm not sure what to do about it aside from gripe, grumble, and accept that family members are going to continue needing to call me for computer help about twice as often as they used to.
It's sort of like how increased mechanization led to a decrease in physical activity, so people do recreational exercises to stay physically fit. Eventually staying mentally fit by doing projects and exercises (leetcode, Advent of Code, etc) will be similarly normalized.
After initially starting coding as an escape from depression and being a shut in, all because my brother wanted to make a game (but couldn't be bothered with the coding), I realized after many years that in the end, what I find joyful in programming is the flow state and learning & understanding.
This made the university mantra of "contribute to open source for your resume. Show off your github profile" really hard for me to adapt in practice... I tried hard but I just struggled to finish project because as soon as I understood it to my content, which usually stopped at "ok I understand it now and I vaguely have a plan how I would implement it if I have to".
The good place for me to be in has therefore been coding for R&D, since understanding things are often as valued as implementing it. Consequently I often become the goto guy for debugging and understanding but maybe not the guy for "implementing it fast".
Also why I feel mixed with agentic coding... Humans don't really learn without iterations and doing it yourself; it's easy to fool yourself that you understand something after following someone's solution to a problem. But on the other hand, since I do have good understanding I should be able to be thorough with my reading of agentic coding (and therefore often becomes the goto guy for PR reviews for others vibe code).
In the small robot projects that I've had recreationally, I've struggled to find a balance. For getting things done quick, with the limited time I have, agentic coding is wonderful. But understanding takes a hit and I struggle to keep myself motivated of it. (exception are like plotting scripts. I can't be bothered anymore to wrestle with matplotlib everytime)
> I tried hard but I just struggled to finish project because as soon as I understood it to my content, which usually stopped at "ok I understand it now and I vaguely have a plan how I would implement it if I have to".
I sympathize, because I have the same issue. But in my experience the feeling that "Ok I got it now, this is not interesting anymore" often goes away when I actually try to implement the thing and realize how easy it is to convince oneself that our vague understanding is sound if we never actually test that.
Part of me would like to add tracking of human/AI provenance for every line of code in my future game the way I want to do it for in-game art. So when a human hobbyist modder writes a line of code by hand and open sources it, my platform shows that it's human (or it's someone disingenuously and deliberately writing off AI work as human, ideally with no in-between).
But even the very design of modding APIs itself is changing when expecting coding agents as the main consumer. So it might not even be possible to cheaply support human programmers at some point. For example perhaps some trusted APIs are inaccessible to human developers and must be programmed by AI with particular prompting to never generate code that abuse said APIs.
The examples seem to lean toward "code as means to an end", e.g. making random tools. There is also recreational programming where the code itself is the goal. Examples include IOCCC[1] and a lot of stuff by Yusuke Endoh[2]. I also have a few[3].
I didn't really recreationally program much before, and i never really wanted to be a programmer for work. Then a programming career kinda fell in my lap during the pandemic, and now i do program in my free time to the detriment of other hobbies.
If i knew how to pay the bills some other way i would love to do that and go back to it just being a hobby. And i kind of miss when i didn't know nearly as much programming so was less inclined to do it in my free time anyway, because the ideas i had were beyond my skills back then, and aren't now.
I've always been a huge computer nerd but basically everything else about them is more fun to me: graphics, video editing, audio production, self-hosting/networking, retro computing, gaming, building PCs
Programming can be a means to an end, or the pursuit itself. It can be recreational, for-profit, or both over time. It can be both an art and just a tool.
If you love to build, it's okay to build for curiosity's sake. If you love to ship solutions, ship using AI or whatever makes sense. First principles, here. To anyone hiring, this is typically obvious to spot, so manage expectations accordingly.
What's clearer as I've matured in this industry is that we need more folks who know technology intimately - you won't get this without programming by hand for fun. We also need to leverage tools efficiently to accomplish bigger and better things.
As a programmer, these have always seemed to be one process, but they are separate and are both worthwhile. Actually necessary and not always done by the same person or at the same time.
vitalnodo | 22 hours ago
DonHopkins | 15 hours ago
https://www.youtube.com/watch?v=fKMk6fcKbwE
Now that AI makes it so easy to play yer guitar, there's a lot more shutting up to do!
smnplk | 22 hours ago
[1] - https://www.youtube.com/@TsodingDaily
glouwbug | 21 hours ago
ge96 | 21 hours ago
kloop | 21 hours ago
ge96 | 16 hours ago
ykonstant | 10 hours ago
jacobgeorge08 | 19 hours ago
ge96 | 17 hours ago
bitwize | 21 hours ago
metaltyphoon | 17 hours ago
jvanderbot | 5 hours ago
markus_zhang | 4 hours ago
sublinear | 22 hours ago
I was looking for this one. It's far beyond a mere "style". It breaks the entire premise.
Being a "problem solver" means you live with the code you write on a daily basis the same way as anyone with any other skill such as woodworking or sewing/knitting.
For the people who think writing code (without AI) is so hard that they make it a separate "thing" away from their usual life, I have to also wonder whether they can cook their own breakfast.
ivolimmen | 14 hours ago
bitwize | 22 hours ago
markus_zhang | 20 hours ago
platevoltage | 20 hours ago
passive | 22 hours ago
praet | 19 hours ago
kmoser | 17 hours ago
brabel | 16 hours ago
oneeyedpigeon | 8 hours ago
brabel | 7 hours ago
vostrocity | 17 hours ago
randfur | 14 hours ago
queenkjuul | 4 hours ago
mintflow | 21 hours ago
Have been used some spare time to learn common lisp and write a manual project, still use web based AI as a quick search method.
But I managed to learn some common lisp and how to do cffi in common lisp and
- use gtk4 cffi binding to start a GUI app - write a ghostty cffi to encode/decode terminal escape sequences - write a libssh2 cffi to communicate with a ssh server
Hope I can build a minimal SSH Terminal using common lisp to keep on experiment and exploration
markus_zhang | 21 hours ago
I have a bunch of abandoned repos. I used to want to finish some of them, so perhaps I can show them to some people and get a in-domain job, but recently I realized that it is probably impossible for me to do so. I don’t have success because I don’t chase it. I chase fun and that’s what I should expect, not other things like career switch or monetary rewards.
Waterluvian | 20 hours ago
makapuf | 16 hours ago
mrandish | 20 hours ago
Teaching myself assembler was harder because I had no docs. I was so clueless I actually looked up Motorola in the phone book and called to ask where I could get a manual. The sales rep who answered the phone must have taken pity on me because he mailed the CPU manual for free. I still have the purple reference card and remember the common opcodes by heart (https://colorcomputerarchive.com/repo/Documents/Datasheets/M...)
The first time I made money was about 18 months later when I wrote a pretty handy disk utility program. Stayed up all Friday night finishing it. Copied onto floppies I sold for $5 at the local user's group Saturday morning. Made $140 and got my first 28 customers. That was enough to get me hooked on making software and selling it. ~40 years, three startups, over a dozen products, hundreds of good people employed, a couple million customers and two PC Magazine Product of the Year awards later - I regret nothing. Started on a lark to learn and have fun. Much was learned, fun was had. Wonderful journey - highly recommend.
glimshe | 20 hours ago
Is there an equivalent to that today? As soon as a cool technology appears, there are startups selling something within a few weeks. What is the "weird" kid doing today?
mrandish | 19 hours ago
Well, hitting the first home run took about a decade full of base hits and more than a few strike-outs on the way to figuring out what I needed to know to do a tech startup well.
> What is the "weird" kid doing today?
Over the last decade I've spent increasing pro bono time trying to 'pay it forward' talking to classes and groups of erstwhile entrepreneurs, so I've heard versions of that question a LOT. It actually took me a couple years before I realized there is no 'right' answer because the right thing for each person differs depending their unique personality, skills, interests, context and life journey.
The most helpful thing I can share isn't a guess about which target you should aim for but rather some advice about how to approach your journey. First, I hope you want to be a tech entrepreneur because that's the only thing I know about. I have no idea what skills will be in demand to get a high-paying, secure job or how to get promoted. I had to become an entrepreneur because I was terrible at being an employee.
I never aimed for my guess at what would be "hot" next and I doubt my guess would be right anyway. Every time I found success it was by starting with a real problem some customer actually had. Initially that customer was me or a friend but it doesn't matter. It just has to be a serious enough problem that motivated customers are actively looking for new and better solutions than what exists. Then figure out a way to solve their problem better enough that they'll actually buy it. It doesn't have to be perfect in every way, just better enough in most ways and perfect in at least one way.
In fact, some of my best products became hits by cleverly solving one part of a problem SUPER well, but only did so at the cost of some odd downsides in other areas. Here's a generic example of the pattern that worked: my friends and I all desperately wanted a Zig-Zag Widget but good ones were stupid expensive and the ones ordinary schmoes like us could afford Zigged and Zagged like shit. But while we were bitching about this sorry-ass state of affairs over pizza and beer one night we theory-crafted how it might be possible to make a Zig-Only Widget ordinary mortals could afford. The dumb idea was by not Zagging at all, it just might be able to Zig even better than the best. Since we all had no Zig or Zag, that seemed like a trade-off we might be pretty okay with. Turns out other people were too... especially after we worked on adding some 'pseudo-Zag' features that worked around the worst parts of not Zagging. And that's how we came up with the world's best Zig (but no Zag) and sold it at 1/4th the price of even a half-assed Zig-Zag. Not really new technology, just a very clever mixture of the exact right old tech with a little new stuff, some clever UX innovations and cool workflow integrations. Blam! First Product of the Year.
If prototyping dozens of different iterations and trying each one out with real, live problem-having customers and listening empathetically for hours to their constant complaints, ridiculous demands and occasional awesome suggestions sounds like fun, then you may have found your calling. If you just want to write great code for a good paycheck and be left in peace, then, my friend, run the other way. :-) It's ironic because I got into making products because I loved programming but after the first few years, I wasn't writing much code anymore. It was invaluable that I'd learned the business by starting as a self-taught, down-to-the-metal, assembly language, real-time graphics programmer because I was able to identify and hire programmers far more skilled than I'd ever been but after the first million in revenue and 20th employee I personally spent more time writing or reviewing ad copy and legal contracts than code. But that's also invaluable because as the company grew and various fires flared up in every part of our business, I got pretty damn good at doing marketing, sales, PR, finance and even legal stuff myself when necessary. And all that was the best prep ever for being able to run the place when we hit a hundred million in sales and hundreds of employees.
I used to hate the constant looming threat of existential doom always hovering over our tiny startup. Then one day I finally understood that the constant stream of scary new challenges were there to force me to keep growing and learning new skills. not only survive, but to level up and feel the satisfaction of summitting ever higher peaks. I hope you'll find the same on your journey. The best part is now that I'm retired, I'm back to programming in 8-bit assembler and 4K of RAM, except now I have a rather expansive collection with every model Atari, Commodore, Sinclair and Amstrad ever sold. :-)
bananaboy | 16 hours ago
glimshe | 13 hours ago
declaranation | 5 hours ago
To anyone that might listen, I wanna add my own insight on this: it's all about design. Not in any "shapes and colors" way, but in "Notes on the Synthesis of the Artificial", way.
People in tech obsess about, well, tech. While what sells and builds businesses is great design, achieving the right balance of user and developer experience and delivering some abstract shape that fits extraordinarily well with some high-dimensional definition of a problem space.
It's never been about the code, the tools, the tech. It's all about how things fit together. Think about "quality of life" mods in popular games. The more complicated abstract systems our minds engage with, the more opportunities to design something are created. The human cognitive space has a lot, and I mean A LOT of problems waiting to be solved that only need someone to realize how to build some abstract shape that fits better that what is currently available.
thwarted | 14 hours ago
My mom and I used to take turns reading the code from the magazines out loud while the other typed the code into our Commodore 64. She used to say things like "I was just having fun, typing in the games and playing them, but thwarted was actually learning something" (no, my mom doesn't call me "thwarted").
komodo99 | 4 hours ago
I hope its "Ted" and not "Wart".
diegolas | 10 hours ago
dgeiser13 | 8 hours ago
What were these products?
dd8601fn | 7 hours ago
You almost want to find out if that person is still around, to thank them.
cdkmoose | 6 hours ago
Nearly 40 years post college, I still play with coding and system design on my time and TBH, much more satisfaction and happiness from that than my day job.
markus_zhang | 4 hours ago
Do you have a blog somewhere we can read?
bitwize | 2 hours ago
The VIC-20 had a particularly good one. It could be read by children and gradually introduced programming concepts in such a way to ease anxiety. For example by stating that error messages were "your VIC-20's way of helping you". Since BASIC was the only thing the machine could do without an additional purchase, this was incredibly helpful.
GMoromisato | 20 hours ago
But, IMHO, the difference between writing programs for fun and writing programs that other people find valuable is like the difference between masturbating and making babies. The former is fun, the latter is fulfilling.
There is nothing wrong with having fun. But if you ever find yourself unsatisfied with all your half-built projects, maybe consider writing software that other people value or even love.
Yes, it can be frustrating to try (and often fail) to satisfy others. But seeing someone enjoying your software is an amazing feeling. It makes you feel proud, useful, and talented all at once.
vandyswa | 20 hours ago
xyzzy_apps | 20 hours ago
Hydraulix989 | 20 hours ago
scronkfinkle | 20 hours ago
bemtevi | 20 hours ago
jmkr | 19 hours ago
argee | 19 hours ago
bemtevi | 10 hours ago
d-u-d-e | 15 hours ago
bemtevi | 10 hours ago
kscarlet | 20 hours ago
brandonmenc | 19 hours ago
You can still build a table from scratch even though you can buy one from Ikea.
etc etc
Muromec | 19 hours ago
emptybits | 19 hours ago
So if an external factor like LLM prowess “killed it all” for you, I would suggest you may not have been intrinsically motivated in the first place.
Long live recreational programming. It’s fun and, personally, it’s satisfying building things close to the metal.
sixtyj | 17 hours ago
I like to swim.
(Just in case: Above is metaphor attempt.)
weezing | 13 hours ago
whateveracct | 17 hours ago
iperov | 16 hours ago
whateveracct | 15 hours ago
charcircuit | 16 hours ago
iperov | 16 hours ago
DonHopkins | 15 hours ago
https://hyperties.org/databases/playground/sun-founders-big-...
Lerc | 13 hours ago
I have many years of expeiments, a selection of just 3
https://k8.fingswotidun.com/static/ide/?gist=ad96329670965dc...
https://c50.fingswotidun.com/
https://lerc.neocities.org
But lots of things like evolving pictures, palettes, or little creatures. Fluid simulation, cellular automata. Fluid simulation in cellular automata. Enough game Jams that I no longer know how many games I have made.
I have done all sorts of things, I am undeterred by AI. For some things I will now get AI to explore entire ideas. Other things I will do entirely myself, and many things will be varying degrees of each.
I see more opportunities for exploration. If you can see further by standing on the shoulders of giants, why begrudge a personal giant assistant?
swiftcoder | 5 hours ago
LastTrain | 19 hours ago
brabel | 16 hours ago
globnomulous | 11 hours ago
acedTrex | 7 hours ago
My exact feelings, its so unpleasant
acedTrex | 7 hours ago
lioeters | 6 hours ago
That's our predicament in modern society - and I mean "modern" as in the obsolete value system and culture that produced the shameful century of world wars - that is stealing our dreams and choking the future of humanity. We didn't learn the lesson the last time fascists took over the world.
The message of the story was that imagination is our hope, it has the power to create new futures from the ruins of the old and the past, to bring forth new life from the dead.
cowboylowrez | 6 hours ago
Being a now hobbyist programmer, AI is just fun for me chatting with it, throwing structs and snippets at each other, but boy am I reading some horror stories about what it does for jobs, working conditions and code quality. The thing is, its just humans making great inventions and then as usual, fucking everything up with them.
monkmartinez | 19 hours ago
It has never been a better time to be a recreational programmer and I have never been more excited with all the changes! As someone that started making html pages with dial-up, I am just gobsmacked with LLM's! Programming has helped me immensely in my career as a professional firefighter and I hope to have a second act in tech... we'll see!
soulofmischief | 17 hours ago
DonHopkins | 15 hours ago
cobbzilla | 9 hours ago
If you actually enjoy the process of debugging, discovering root causes and fixing things, emergency medicine can be quite rewarding & fulfilling on very human level.
Fair warning: There are also some really bad experiences you will never un-see, if you're not ready for that I would stay away. Seeing death is objectively worse than the most catastrophic datacenter outage.
sonderotis | 17 hours ago
prophesi | 17 hours ago
At the same time, some of the workers in the industry were disgruntled that you were expected to enjoy coding in your spare time to keep up. While some truly just wanted to do it because they were good at it, and would rather turn off the software dev brain after work to do other things they enjoy in life.
With the advent of high-performing LLM's for coding, though, it seems more important to showcase how you can harness AI for your recreational projects than the projects themselves. It's a bit of a catch-22 for junior devs though.
I still think it's good rubric to get into programming if you like to do it recreationally, but these are just a few of my thoughts on how it can be problematic.
d-u-d-e | 15 hours ago
vrighter | 11 hours ago
RugnirViking | 10 hours ago
bigfishrunning | 6 hours ago
people who ride horses recreationally don't really care that cars exist
jan_m_savage | 17 hours ago
beej71 | 16 hours ago
privong | 11 hours ago
beej71 | 8 hours ago
DonHopkins | 16 hours ago
I prefer the term "Pleasure Programming", to de-emphasize how addictive it is.
>Permission to build useless things.
I prefer the term "Ultimate Things", to de-emphasize how useless they are.
https://en.wikipedia.org/wiki/Useless_machine
>The Italian artist Bruno Munari began building "useless machines" (macchine inutili) in the 1930s. He was a "third generation" Futurist and did not share the first generation's boundless enthusiasm for technology but sought to counter the threats of a world under machine rule by building machines that were artistic and unproductive.
>The version of the useless machine that became famous in information theory (basically a box with a simple switch which, when turned "on", causes a hand or lever to appear from inside the box that switches the machine "off" before disappearing inside the box again) appears to have been invented by MIT professor and artificial intelligence pioneer Marvin Minsky, while he was a graduate student at Bell Labs in 1952. Minsky dubbed his invention the "ultimate machine", but this nomenclature did not catch on. The device has also been called the "Leave Me Alone Box".
So here's a live demo of an ultimate thing I pleasure programmed:
https://hyperties.org/cabinet/ultimate/
What this is:
I've been using Claude to recreationally develop a PDP-7 and Type 340 vector graphics display emulator for the web browser, in order to run an early CAD system called PIXIE, which has the first known radial menus, driven by a light pen, developed at Cambridge in the late 1960's, whose 128 pages of PDP-7 assemblxy language source code the author Heinz Lemke scanned and sent me.
Once I got it working, I told Mitch Bradley about how much I wanted a Forth system for it. Mitch has written useful things like OpenFirmware and CForth, and I was his summer intern at Sun in 1987, where we had a fun time hacking his CForth into CADroid (a circuit editing system developed at LucasFilms) as an extension language and macro system.
https://github.com/MitchBradley/openfirmware
https://github.com/MitchBradley/cforth
http://www.art.net/~hopkins/Don/lang/forth.html
Since then, Mitch developed his Sun Forth system into OpenFirmware for the boot ROMs of systems like the Sparcstation, PowerPC Mac, and the OLPC. So naturally I thought it would be fun to run Forth on the same machine that ran PIXIE, mainly because I'd love to work together and hack Forth with Mitch again after all these years, but also because Forth was the perfect language for the PDP-7.
So then Mitch used Claude to whip up a PDP-7 Forth in one day, with Turtle Graphics!
https://github.com/MitchBradley/pdp7forth
https://hyperties.org/cabinet/forth/
It turns out that the PDP-7 instruction set is ideal for Forth. It has an "XCT" instruction for indirectly executing other instructions, which makes the Forth inner interpreter loop only require 3 instructions.
PDP-7 Forth — Mitch Bradley, 26 September 2026:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
PDP-7 Forth, by Mitch Bradley:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
PDP-7 Forth Source Code, NEXT: The Inner Interpreter:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Now that Forth runs like a bat out of hell, I'm hacking virtual hardware devices for the PDP-7, and controlling and visualizing them with Forth.First I made an "Ultimate Machine" device for the PDP-7, inspired by Claud Shannon and Marvin Minsky, whose only purpose is to turn itself off!
https://en.wikipedia.org/wiki/Useless_machine
Bruno Munari called it a "Useless Machine", but Minsky was more compassionate, and appreciated its purpose of turning itself off as being ultimately useful, so he renamed it the Ultimate Machine.
I think there are some deep implications to the halting problem, but I can't quite put my finger on it the way the Ultimate Machine puts its finger on its own off switch.
The Ultimate Machine emulator plugs into the PDP-7 emulator as a virtual device cabinet, which has its own device control IOTs that augment the PDP-7 instruction set.
DEC sold a lot of "plug-in instruction sets in a cabinet" like the Type 340 vector graphics display, its light pen, character generator, subroutine executer, advanced math instructions, etc.
https://gunkies.org/wiki/Type_340_Precision_Incremental_Disp...
The Ultimate Machine device, an emulator of device 56 with its registers, phases and IOTs:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Then I made a Forth program that draws an animation of the Ultimate Machine on the 340 display, with a switch activated by the light pen. It's not a "simulation" -- it's an actual interactive visual representation of the emulated Ultimate Machine device state that FORTH controls via IOT instructions, the same way it controls the 340 display and light pen!
The Forth 340 view, with the IOT words, the hand, lid and lamps, and the light-pen switch, so you can turn it on (and off) with the light pen (check out the tool tips the emulator user interface shows you when you point at the graphics):
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Instead of halting there, for even more Turing completeness, I made a Turing Machine device, which is like the 340 display in that it not only adds device control IOT instructions, but also executes its own Turing Machine instructions and tape via DMA from of the same 18-bit core memory as the PDP-7 and 340 display.
The 340 display and the Turing Machine are both co-processors that execute their own instructions from the shared 18-bit core memory of the PDP-7, which generates code for them to execute, and controls them via IOT instructions.
The Turing Machine device issues an interrupt when its head page faults off the edge of the tape window in core, so the PDP-7 can implement virtual memory to support "infinite" tape.
Live Demo:
https://hyperties.org/cabinet/turing/
Turing Engine:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Forth => Turing Machine Compiler I made based on Christopher Cherniak's "TM*" courseware from the "Philosophy and Computers" course I took from him in the 1980's:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
https://terpconnect.umd.edu/~cherniak/philcomp/
https://terpconnect.umd.edu/~cherniak/PhlCogSci.pdf
Ostensibly the real use is for education, but I actually did it because it was fun, and I felt like working with Mitch and programming Forth again.
Forth, the 340, and co-processors in one core: what the cabinet teaches:
https://github.com/SimHacker/WillWrightShowForFood/blob/main...
Here's a demo video that tries to explain it:
PIXIE and FORTH on PDP-7 Cabinet Emulator with Type 340 Vector Graphics Display:
https://www.youtube.com/watch?v=lo8kdY-5i6c
iperov | 15 hours ago
__m | 14 hours ago
sudo-bendg | 15 hours ago
tjansen | 14 hours ago
AI taught me that I don't really like programming per se. I was very good at it, I believe, but it's never been what I really wanted. I want to build stuff. AI let's me do it faster than ever before. But more important: it takes care of the boring, tedious stuff that caused me to abandon far more projects than I completed.
So far, 2026 has been my most productive year, by great margin. Things that I wouldn't have even dreamed of starting became possible. And the pace keeps accelerating.
lonelos | 13 hours ago
The only thing that bothers me about this new era is that many projects are built on shaky foundations, as it is easier to ship, and expectations of delivery speed are often unrealistic. But that is more of a question of prioritizing quality and reliability, and not an inherent feature of development with AI.
prxm | 8 hours ago
tjansen | 6 hours ago
Releasing a major project in about a year (downread.com) while having several ones in the pipeline. Far more than I was able to do in previous years with similar time commitment.
> that vaguely understands the problem
This is not my experience at all (mostly with Opus). It can understand and explain to me even complex programs. And then edit them. Usually it solves tasks on the first attempt, if the instructions were precise enough (and with every new release, Opus needs less and less handholding / context).
> do you get your llm to bring a novel solution to a problem > that hasnt been explored before?
No. But if I explain a novel solution to the LLM, it can create a complete implementation far faster than I ever could.
> do you even learn anything new
Usually not, unless I work in an area I have no experience in (like setting up an iOS app). But that's not even the point. I don't do it to learn; I do it to build products that either don't exist yet, or are better than the existing ones. These projects are no rocket science, but they are very labour-intensive.
prxm | 6 hours ago
tjansen | 5 hours ago
You can ask the same question when you lead a team of developers. To me, it doesn't really matter what or who is producing. Using whatever tools, I create something that did not exist before.
> you will be at the exact same spot you are right now
I don't think so. I am getting more efficient at delegating things.
> may be easily outraced by someone else who just as well prompts an ai
True. But there is no way to prevent that.
globular-toast | 14 hours ago
It's changing now, though. I don't really get joy from programming any more. I used to do things because they were challenging. I would ask myself "can I really do this" and the joy came from seeing that, yes, I really can. But now the answer to "can I do this" is increasingly just "yes". Actually doing it is just work at that point. I don't get joy from being a mindless button pusher.
testerius | 14 hours ago
I know and understand it. However I see a lot of people being sad and angry because of LLMs/AI agents. I would like to add to this website section about LLMs/AI. You can use them or not at all if you want. I guess nobody forces you to use "magic" AI in your hobby projects.
epolanski | 11 hours ago
If you do so now, your coworker has built two features and automated some other job in the time you found the best design pattern for a particular problem.
testerius | 10 hours ago
epolanski | 10 hours ago
When you have made a life and career out of a particular skillset, like writing code, the fact that a machine is now doing your job is a hard swallow pill.
You will keep the denial and finding all the cons for as long as you can.
"Oh, but it's not clean", "Oh, but it's a spaghetti mess".
Because accepting that the previous points don't matter anymore in the overwhelming majority of cases, and the technology keeps getting better at each release is difficult.
It is sad after all. I enjoyed the magic and craft too. Now I'm a borderline meat relay, who'se added value is only because business and product people are too lazy to instruct the tools.
jackling | 8 hours ago
I've come to the realization that AI code bases are effectively AI-only code bases, unless one is using AI as just a code-autocomplete, then that seems mostly fine. But most devs are using it as an end2end implementation tool, having it 1-shot full features, and then iterating on them with the agent afterwards. The amount of churn and terrible code stops the manual coder from doing anything effectively.
In my own team's codebase, I'm confident that we would actually be further along without AI, and that AI coding is a hindrance (although AI debugging seems to be a pretty good tool). It is made worse that everyone does code reviews with AI now, and it constantly gets things wrong, and when its right, it's usually for the most basic, unimportant issues (again with the overly defensive coding style). This waste the manual coder time trying to figure out if the issue its requesting a fix for is an actual problem or not.
grahar64 | 12 hours ago
6. The Perfectionist
. Solves the problems every different way they can think of looking for the perfect abstraction
. Obsesses over finding the correct name for things. The right name will make the thing better
. Moves code around until it finds a home. Where the code lives is important
. Shares work only when beautiful
1dontknow_ | 11 hours ago
Im sorry I really wanted to read what you wrote but please put it in a proper form because right now its uncomfortable.
a3w | 10 hours ago
``` KEY ACTION N , SPACE Next slide P , Shift SPACE Previous slide ← , H Navigate left → , L Navigate right ↑ , K Navigate up ↓ , J Navigate down Alt + ←/↑/→/↓ Navigate without fragments Shift + ←/↑/→/↓ Jump to first/last slide B , . Pause F Fullscreen G Jump to slide ESC, O Slide overview
```
gauntr | 11 hours ago
I studied computer science and became a paid software engineer, all the experiences with BlitzMax laid out a good foundation for me (RIP Mark Sibly and thank you for your work), and while I like what I do, I don't love it like I did this game programming back then. These days I tend to look out for opportunities to create something that pays my bills or ultimately frees me of having to be employed but often enough I don't get myself to work on it because it's work after my paid work without knowing if that pays out and then the thought "Is it worth my time?" comes up even though the project itself might be even really interesting to pull off.
From time to time I looked back into game programming and every time I felt that little flame light up again. It's been a while now and I even have 2 ideas that I'd like to see implemented. After reading this I realize how much I crave this kind of programming currently. Should probably spend some time doing that :)
atan2 | 10 hours ago
severak_cz | 10 hours ago
See https://github.com/severak
jackling | 10 hours ago
There is a big difference IMO between someone who wants to code traditionally and one that uses AI when it comes to developing software. And this difference illustrates what's a software developer to a programmer.
sergent_moon | 8 hours ago
ktm5j | 8 hours ago
dd8601fn | 7 hours ago
To some degree it works for me, but it’s very “what am I doing at work right now” and “is this personal thing really for fun or am I forcing it on myself.”
A quick test (again, just for me) is “Do I intended to share this or is it exclusively for me?”
If there’s no angle where it’s a kind of work or pressure, of any kind, it’s genuinely exploratory and fun. And if it’s that, it might decompress me more than make me just feel busy.
bigfishrunning | 6 hours ago
ktm5j | 5 hours ago
swiftcoder | 5 hours ago
This for sure varies from person-to-person, but in my experience day-job programming is a very different kettle of fish to off-the-books coding. There are no Product Managers, no sprints, no meetings, no Jira in my personal projects.
If your day job is mostly heads-down coding, you may not relate, but for me developing something I want to on my own terms provides a break from the stressors of collaboration in a corporate environment
bunderbunder | 7 hours ago
My mental health improved quite a bit when I realized I needed to identify and prioritize more restorative forms of play. That did mean allowing my childhood passion to become just a day job. But that's OK. I honestly wish I had let it happen sooner. What got me to where I am now won't necessarily get me to where I want to go next.
If that's not how things work for you and programming for fun is genuinely restorative, great. I just wanted to put my own experience out there because tech's hustle culture can make it hard to realize that advice like this isn't for everybody. Especially for those of us who might have a touch of alexithymia. Which seems to be pretty common among professional programmers.
frakt0x90 | 7 hours ago
awepofiwaop | 6 hours ago
Is this a typo? I don't understand it.
zabriel_goss | 6 hours ago
https://en.wikipedia.org/wiki/Spoon_theory
conductr | 6 hours ago
[0] effort can be low with ai now but I find no joy or sense of accomplishment in developing with that tooling
markus_zhang | 5 hours ago
I reached the same conclusion earlier this year at mid-40s. I'll probably work another 10 years, retire early in mid 50s, and commit to full-time recreational programming.
220hertz | 5 hours ago
Good4boothee | 7 hours ago
bunderbunder | 7 hours ago
freecodeio | 7 hours ago
bayindirh | 6 hours ago
bunderbunder | 6 hours ago
But at this point making user interfaces actively confusing in the name of minimalist aesthetics seems to be so popular among front-end developers that I'm not sure what to do about it aside from gripe, grumble, and accept that family members are going to continue needing to call me for computer help about twice as often as they used to.
queenkjuul | 4 hours ago
United857 | 6 hours ago
NalNezumi | 6 hours ago
This made the university mantra of "contribute to open source for your resume. Show off your github profile" really hard for me to adapt in practice... I tried hard but I just struggled to finish project because as soon as I understood it to my content, which usually stopped at "ok I understand it now and I vaguely have a plan how I would implement it if I have to".
The good place for me to be in has therefore been coding for R&D, since understanding things are often as valued as implementing it. Consequently I often become the goto guy for debugging and understanding but maybe not the guy for "implementing it fast".
Also why I feel mixed with agentic coding... Humans don't really learn without iterations and doing it yourself; it's easy to fool yourself that you understand something after following someone's solution to a problem. But on the other hand, since I do have good understanding I should be able to be thorough with my reading of agentic coding (and therefore often becomes the goto guy for PR reviews for others vibe code).
In the small robot projects that I've had recreationally, I've struggled to find a balance. For getting things done quick, with the limited time I have, agentic coding is wonderful. But understanding takes a hit and I struggle to keep myself motivated of it. (exception are like plotting scripts. I can't be bothered anymore to wrestle with matplotlib everytime)
declaranation | 5 hours ago
I sympathize, because I have the same issue. But in my experience the feeling that "Ok I got it now, this is not interesting anymore" often goes away when I actually try to implement the thing and realize how easy it is to convince oneself that our vague understanding is sound if we never actually test that.
markus_zhang | 4 hours ago
What do you do right now, and how did you find the venue? Thanks in advance.
2001zhaozhao | 5 hours ago
But even the very design of modding APIs itself is changing when expecting coding agents as the main consumer. So it might not even be possible to cheaply support human programmers at some point. For example perhaps some trusted APIs are inaccessible to human developers and must be programmed by AI with particular prompting to never generate code that abuse said APIs.
omoikane | 5 hours ago
[1] https://www.ioccc.org/years.html
[2] https://news.ycombinator.com/from?site=github.com/mame
[3] https://uguu.org/sources.html
queenkjuul | 4 hours ago
If i knew how to pay the bills some other way i would love to do that and go back to it just being a hobby. And i kind of miss when i didn't know nearly as much programming so was less inclined to do it in my free time anyway, because the ideas i had were beyond my skills back then, and aren't now.
I've always been a huge computer nerd but basically everything else about them is more fun to me: graphics, video editing, audio production, self-hosting/networking, retro computing, gaming, building PCs
cj-builds | 3 hours ago
If you love to build, it's okay to build for curiosity's sake. If you love to ship solutions, ship using AI or whatever makes sense. First principles, here. To anyone hiring, this is typically obvious to spot, so manage expectations accordingly.
What's clearer as I've matured in this industry is that we need more folks who know technology intimately - you won't get this without programming by hand for fun. We also need to leverage tools efficiently to accomplish bigger and better things.
As a programmer, these have always seemed to be one process, but they are separate and are both worthwhile. Actually necessary and not always done by the same person or at the same time.