Imitation

One of the unhelpful things that I commonly experience when I read things about software (and very occasionally other things, but usually software) is the urge to make my own version of whatever the thing is.

gemini://gem.twunk.uk/log/2023-06-06-the-urge.gmi

Imitation is a common way to learn. An urge could be good, or bad. The experience could be educational, or might land you a job. Or it could go down the barren rabbit hole, again. One way to defuse fad following is to toss the task onto a TODO list and let the subconscious chew on it. If it's still interesting after a while, or has been reinforced by something else, then give it a spin. You may also need to free up a block of time for dedicated study: no internet, no distractions. Or it could end up being deleted off the TODO list after a while.

Patience: how long will that take?
Discipline: aww man I gotta follow some stupid rules?

For example I have a half-baked forth implementation sitting in some directory. This has been educational to write, in particular having to figure out the distinction between compile and immediate mode that never was very clear from instructional materials. Practical? Nope. Innovative? Nope. But you can start to get a sense of the shape of a forth system and therefore the various tradeoffs you have to make, terribly clever things you might be able to do with the state machine, things like that. That's the educational front; someone actually skilled at jobs or money could comment on how to turn hobby projects into payable work.

It may also help that forth implementations are generally pretty small, Toki Pona of programming languages. Imitating something big and hairy like Ithkuil or a C++ probably is more challenging and make take more effort than one has time or dedication points for.

A lot of my little hobby projects are just my own versions of things other people have made. I wonder why that is. Do I lack creativity?

Shakespeare copied from Ovid, a lot. In his day one was expected to copy. So the creativity was not some new thing (as if) but rather doing something interesting or useful with existing materials. "The Hero with a Thousand Faces" (Joseph Campbell, 1949) and other works may be relevant here. Want a buddy novel? That would be Gilgamesh. An English teacher once had a useful grading system--Mechanics, Organization, Ideas, Style. Under this system a Shakespeare would not score well on the ideas front. However, a well organized implementation of something could be useful.

Mozart copied out various works by Bach. This need not be a direct copy; with a little skill one might make a new arrangement, perhaps one that suits a 8-bit game platform. If anything this is good practice, and maybe you'll think up something else in the process. There are probably parallels between figuring out how a fugue or a Forth actually work. On the other hand, a deep study of a work may ruin it from spending too long with the same material.

(On the other hand, chasing fad after fad can get you nowhere, as there's more programming languages to learn than can fill a lifetime. At some point you might want to stop onboarding yet another language, especially if there are productive things you could be doing in your existing languages.)

bphflog links

bphflog index

next: Meanwhile In The Real World