_     _             
                        _ __ | |__ | | ___   __ _ 
                       | '_ \| '_ \| |/ _ \ / _` |
                       | |_) | | | | | (_) | (_| |
                       | .__/|_| |_|_|\___/ \__, |
                       |_|    ...2021-12-14 |___/ 

A few thoughts on recreative computering

I like to program, I've loved it for as long as I've been able to do it, and earlier, when I was 8 or 9 and couldn't read English, I knew, I wanted to program the computers.. To make them do things, explore their inner worlds. So naturally, I became a recreative programmer, sunk huge amounts of time into that very special place, "the flow" and loved every moment. Finding some project, and deep-diving into it, working on features just because I wanted to try to do them.

My approach to programming has always been to figure it out as much as possible.

I love to solve a problem, figure out an algorithm to solve something by my self and THEN look to see how it's really done. For me, there is orders of magnitude more satisfaction in deriving an inefficient solution by myself, than to look up "the right way" to do it.. Sure, that's not how we do it professionally, but recreationally, that's how I program, that's where I derive pleasure.

If something is less obvious, a description of an algorithm is a good starting

point, but no looking at pseudo-code, that takes the fun out of it.

Well, these days, my time is so limited, I can no longer partake in those

week-long isolated deep-dives that I so enjoy. It'd not be fair to my family, and it'd not work with having a job. So my main programming-fix these days are the professional work, which is also satisfying, because it's still somewhat related to tinkering with computers, and solving problems, even if the challenge has changed from "what do do and how to do it" to mostly "what to do, download the library that does it and bolt it on".

But I've still managed some hobby programming, and it's due to a new approach

that I've somehow come to adopt. It's nothing special really, but it makes a difference. Instead of month long deep-dives, I'm now going the opposite way. If the core idea can't be 90% done in an hour or so, forget it. Yeah, write the absolutely minimum needed to do the Thing. Even change the Thing if it makes it easier to program it. Bare-bones software, like dstream or hedon, takes almost no time to write, thought hedon took more like 4 hours, and it's so hacked together, it only works in xterm and not even tmux. Sure, I could polish it, I could make it work everywhere, and robust and pretty, but that's orders of magnitude more work, because it requires me to figure out a lot of things that I simply don't know right now. But, because I allowed myself to make something "bad" and in the wrong way, I was able to make it in an extremely constrained timeframe, and I even enjoyed making it, and now I enjoy using it.

It's been the same with a lot of things, just hack something together if that's

all you've got the time for, hack and enjoy.

This attitude is a bit new to me, I've always been at least a little worried about

how to do things, how to show my cleverness, or my dicipline or my ability to do "The Righ Thing", and so, because of my job, I don't have to carry that load in my hobby coding, I am proving, every day, that I _CAN_ write professional quality code, and so, I'm free from it, at last, when I work on my hobbies. That's a bit revelation to me, that I don't have to be good, as long as I'm having fun. - DST