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.
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.
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.
That's true! And to add, a lot of the valuable "experience signals" comes from the understanding gained by actually doing it.
The actual doing (and failures) are always the best stories I've used in technical interviews that convey expertise.
For my spare time project it's just so hard to do that extra push. My distracted mind have a long list of things I want to learn and jump in to the next one before I get that far on the current project
Right now I work in R&D, kinda like a research engineer? a little multi role in the sense that for one project I'm a contributor, another I'm just an "expert resource" that chime in now and then for some domain knowledge, and then I also get pulled now and then for my expertise when the business guys need some technical input (due diligence work etc). A weird role in my first ever big corporation work so I don't know how to find it, I got lucky being in the right place right time with the right background.
Before that it was mostly startup (robotics engineering) and out of sheer sense of impostor syndrome (and curiosity) I spent a lot of my free time just learning(online courses) and going to tech meetup and through that met a researcher, that suggested a joint research project on the weekend, and later got a research job at a startup (with a pretty steep pay cut). I think that experience is what helped me the most.
It's fun but at the same time expertise and learning is a continual process and at some places (like where I am right now) it's a bit tricky to keep it up through free time study alone. I also feel like unless you're exceptional(I'm not) you'll struggle to convince others of your expertise a lot if you don't have it on paper (I don't have a PhD, when many do in what I do).
I guess also being "expert, in a cross domain project" helps. My last job was ML + Neuroscience + Robotics and I was the only person with expertise in robotics which made me valuable, and I could spend time learning a lot. In a team of exceptional robotics experts, I think it would've been a little bit harder for me
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
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
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 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.
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
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 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 :)
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.
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.
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.
> the upside is that AI is the real deal, this stuff really works
Now imagine how depressing the industry is when you don't actually agree that this stuff really works. People are tripping over themselves to replace human craft with a tool that can't even do the job properly. It's so awful to watch.
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.
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.
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
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.
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.
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.
> 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.
And his stuff is also broken, whereas mine is not. So in the end he isn't actually faster than me.
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.
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.
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".
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.
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.
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.
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.
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
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.
>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:
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.
> cost spoons to do
Is this a typo? I don't understand it.
Search for spoon theory.
https://en.wikipedia.org/wiki/Spoon_theory
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.
Similarly, I would avoid Factorio then if hobby programming is burning you out.
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?
> but no PC Magazine Product of the Year!
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. :-)
I love this! Thanks for sharing!
I'm retired too, but after the opposite journey, one of a successful employee. :) Thanks for the insights!
> 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").
> (no, my mom doesn't call me "thwarted")
I hope its "Ted" and not "Wart".
this comment put a smile on my face
> two PC Magazine Product of the Year
What were these products?
> The sales rep who answered the phone must have taken pity on me because he mailed the CPU manual for free.
You almost want to find out if that person is still around, to thank them.
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.
Do you have a blog somewhere we can read?
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.
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.
That's true! And to add, a lot of the valuable "experience signals" comes from the understanding gained by actually doing it.
The actual doing (and failures) are always the best stories I've used in technical interviews that convey expertise.
For my spare time project it's just so hard to do that extra push. My distracted mind have a long list of things I want to learn and jump in to the next one before I get that far on the current project
I have exactly the same personality, and had thought that perhaps I’d like to be a researcher, or a debugger, or a technical archaeologist.
What do you do right now, and how did you find the venue? Thanks in advance.
Right now I work in R&D, kinda like a research engineer? a little multi role in the sense that for one project I'm a contributor, another I'm just an "expert resource" that chime in now and then for some domain knowledge, and then I also get pulled now and then for my expertise when the business guys need some technical input (due diligence work etc). A weird role in my first ever big corporation work so I don't know how to find it, I got lucky being in the right place right time with the right background.
Before that it was mostly startup (robotics engineering) and out of sheer sense of impostor syndrome (and curiosity) I spent a lot of my free time just learning(online courses) and going to tech meetup and through that met a researcher, that suggested a joint research project on the weekend, and later got a research job at a startup (with a pretty steep pay cut). I think that experience is what helped me the most.
It's fun but at the same time expertise and learning is a continual process and at some places (like where I am right now) it's a bit tricky to keep it up through free time study alone. I also feel like unless you're exceptional(I'm not) you'll struggle to convince others of your expertise a lot if you don't have it on paper (I don't have a PhD, when many do in what I do).
I guess also being "expert, in a cross domain project" helps. My last job was ML + Neuroscience + Robotics and I was the only person with expertise in robotics which made me valuable, and I could spend time learning a lot. In a team of exceptional robotics experts, I think it would've been a little bit harder for me
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.
if any of them are doing it because they feel they have to then that's not recreational programming. That's resume filling.
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
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.
It seems obvious that it’s somewhat personal.
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.
Life lesson: don't do something you love professionally, because eventually it'll make you not love it anymore
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
Shout out to Tsoding [1]. He is my favorite recreational programmer.
[1] - https://www.youtube.com/@TsodingDaily
I always champion Bisqwit too
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.
He's the "doing ui in c to piss of react devs" guy, right?
tsoding is
Ooh that's interesting, can you point me to the exact videos?
Could it be https://www.youtube.com/@sphaerophoria ?
Oh yeah that's him thank you
Tsoding's streams are so my jam. Right up there with Bisqwit.
Mista Azosin!
At the point that you run a successful (paid) youtube channel with sponsorship, is it recreational?
I think he is still enjoying it, so it still counts.
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.
Besides arrow keys, hjkl (vim-style) apparently also works for navigation
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.
There is a progress bar of sorts on the right side, little squares tell you where you are.
On all browsers? I can't see what you're referring to on Chrome, macOS.
How would i know , i am on Firefox on iOS. They only appear when you scroll, like most scroll bars.
This looks like it was meant to be presented to a live audience.
It really needed prev/next buttons, using the scroll wheel with such a long debounce was laborious.
It didn't seem to want to do anything right in Firefox android
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.
reveal.js , press o for menu. Or ? for this help:
``` 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
```
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].
[1] https://www.ioccc.org/years.html
[2] https://news.ycombinator.com/from?site=github.com/mame
[3] https://uguu.org/sources.html
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 :)
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.
I would add what I think I am to Styles:
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
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.
I don't mean to suggest ham radio and hackers followed the same historical trajectory; rather that hacking will become as ham radio has always been.
This describes me, or described me - AI has brought on some existential feelings about programming as a hobby for the moment.
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.
> and the value it attached to an activity even when I choose not to use the tool.
My exact feelings, its so unpleasant
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.
> the upside is that AI is the real deal, this stuff really works
Now imagine how depressing the industry is when you don't actually agree that this stuff really works. People are tripping over themselves to replace human craft with a tool that can't even do the job properly. It's so awful to watch.
I would add to the "what it's not" with one extra point, building without the expectation of others using the product. Not even buying, just using.
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.
See https://github.com/severak
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!
I'd love to know more about how hobby programming and your professional firefighter career intersect, this sounds very interesting.
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.
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.
> what is your metric for "productivity" exactly?
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.
> is it really me that is producing?
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.
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.
Too bad it is all over after this year because AI killed it all :(
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).
True! But that doesn't mean we should exacerbate the situation and make it worse....
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.
No, this is just a fringe perspective based on the hyper-introvert bias in a lot of people on this forum....
I was so pissed when I wrote a cool data visualization tool then some people at work immediately assume Claude did it.
You can still write a program even though AI can do it.
You can still build a table from scratch even though you can buy one from Ikea.
etc etc
If anything, I'm having more fun with programming since the lying machine was invented
One of the first slides clarifies that recreational programming is INTRINSICALLY MOTIVATED. I agree with this definition.
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.
Would you stop swimming just because chlorine started being added to the pool water?
I like to swim.
(Just in case: Above is metaphor attempt.)
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.
you can just not use AI
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.
sounds like a psychological skill issue
If anything AI super charged it. I'm taking on more and more ambitious projects and am able to make tremendous progress in just a weekend.
why? Has AI taken away your permission to create useless things?
You must be holding it wrong, because I'm using AI to bring lots of old dead code back to life!
https://hyperties.org/databases/playground/sun-founders-big-...
I definitely align with a lot of styles 2, 3, and 4
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?
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.
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.
THIS IS IT.
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.
> people are sad and angry about LLMs/AI
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.
> 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.
And his stuff is also broken, whereas mine is not. So in the end he isn't actually faster than me.
Give me a damn scrollbar, arrows or at least tell me how I am supposed to read this site.
It's meant to be a slide show. The easiest way to navigate it is with arrow keys.
if your navigation info lies in a comment in hackernews then you failed UX
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:
Makes sense. No?
100% agreed.
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.
Aha, nice of them to let me know, I'll just plug a keyboard into my phone
If painters have a canvas then programmers have a buffer.
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 have so many abandoned repos. Once I see the finish line and I know exactly how they solve the problem, it stops being interesting to me.
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.
Not trying to be a dick, but as soon as I see two "not" statements, I usually stop reading.
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".
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!
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.
Loved this presentation. I personally know the presenter and he presented it at a hackathon :)
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 keep seeing posts about MiSTer on X and HN. Maybe I should get one.
It's a fun little device, I recommend it. It gives me a break from this world of slop.
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.
> Style 4: The Problem Solver
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.
I am style 4 and 5. I run 2 websites I use daily myself. And yes I can cook. And no I do not use LLM's
Worth including a mention of pikuma.com here as well.
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
That text sounds like a programmer's depression in the era of AI.
Yeah, i too am sad that my hobby is no longer the biggest part of my job, it’s still fun to create things though.
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.
"Recreational Programming" sounds like a fun legal alternative to "Medical Programming" that you don't need a prescription from your doctor to do.
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
Painful website, tho
maybe use a shade of gray on black bg? white is too hard on the eyes.