Most developers I know write code for money or fame. They serve corporations or burn hard at startups. There is nothing wrong about it, but I see programming for fun is fading away in my peer group. For shame.
Last month I've published pssst.zone. It's QR code sticker that leads you to a anonymous chat room. Usernames are generated automatically and only last 100 messages are kept. I've printed bunch of stickers and glued it to few public places.
video of qr chat
People were using these and I felt long forgotten waves of excitment and energy. To be honest it was most satisfying thing I did this month. Despite whole project being ~100 lines of code and ~50 lines of HTML. Built with wooden sticks, ducktape and bones of a dead bird (If you have to, see the source code). ROI from time spent to endorphins felt was amazing.
Project was sitting lonely in the dark corner of my github repo for 2 years. I was too afraid to share it. I thoght code is not that great, people hate QR codes and the whole idea was stupid to begin with. But more on that later.
Projects doesn't have to be big or great. Last summer me and my friend decided to test this crypto thing everybody talked about. So we createted "crypto-bazar". It's bunch of energy bars and fruits and printed card board with "pay anything you want" text. We wanted to know if people in our coworking space actually willing to crypto currencies.
picture of crypto-bazar
Results: 1 sold, 4 stolen, rest rotten. Compeete failure. And that's OK. It would be much better if that was start of our energy bars crypto empire. But we had our fun moments with it, so it served it's purpose to entertain.
Projects may have no intent to be used. In a few cold winter nights servasm was born. It's webserver in assembler. I've shared it and got some nice feedback. But I'm sure nobody ever used it. And good for them.
Few month later I've stumbled upon web server in PostScript. It's project in a same spirit. But way better. Webserver in a language you printer uses. Pure art. And of course nobody should be using this.
Building things is fullfilling and like any art it can be both escape and destination. It got me to programming in a first place, and most likely it got you to a programming too. We need to rediscover it. And for me it's nice treatment for imposter syndrome. And this can restore your faith in tech. And cure all mental illness in the world. Ok maybe I'm exaggerating a bit.
But I you can walk out with one thought out of this post – please share you projects. More on that later.
I talk to many people about this ideas. Their position tends to fall into three buckets.
It's pointless. To this, I have to agree. Like everything else is and we all will die really soon. In a few moments our sun will get cold and there will be nobody to use your project.
This is really-really hard. I would say it's just hard. Most of my projects don't see light of a day, my ratio is 1 done to 3 failed. And it got better after I stared to pick smaller projects and allow myself to be not perfectionist. You don't have to be exceptional to make things, just persistent.
People will think that I'm bad developer when see my useless shit. I'm in this bucket most of the time. And truth is most of the people really don't care. But in the end you will have some positive feedback and few haters will say something about your choice of programming language.
But they are just vocal minority of people who most likely doesn't create anything. You just ignore them, create things. And listen to feedback mostly from few people you trust.
I will say it one last time. you need to show your projects to other people. Other people feedback is source of energy. Show failed projects. It gets the wheel spinning.
It's OK to be not perfect and create sometimes stupid things. Enjoy this Endless horse.
For me it's started with Why the lucky stiff. Very profilic member of Ruby community. His output volume was amazing. Many of his projects were playfull experiments that were closer to realm of recreational programming.
- poignant.guide comic guide to Ruby programming.
- Camping Web framework limited to 4k of code.
- bloopsaphone: arcade sounds and chiptunes library.
I was inspired by his unique style. He wasn't afraid to look messy and publish and share his work even if it wasn't perfect. he was weird and strange, and that was good. He dissapeared from internets at 19 August 2009, but it's another story.
But his is not the only one. I feel same vibe from Julia Evans and Aaron "tenderlove" Patterson. Julia makes cool zines about computers and blogs about her adventures in computing. Aaron while being one of the most profilic people in ruby computing markets himself as adequate istead of 10x engineer. Openly admits his flaws and mistakes and creates cool small projects. See Magic the Gathering scannign machine.
It's ok not be perfect, messy and create strange things.
Recreational code can have many forms, there is no true way what to do it. But here is some examples to awake your appetite.
- Sound: Experimental music generated from 1 line C programs
- clicker games: Universal paperclips.
- 8bit games: arduboy
- small services: Itty bitty
- single serving sites: fast-good-cheap
- shaders: Cloudy Terrain
- live coding: Sam Aaron live coding an ambient electro
- mad code: Infinite Zip Files
If you like that I started link-blog with cool recreational projects. Join the movement, publish something cool.