2020-09-23
------------------------------------------------------------------

I just read Free Thinker's post about DIY-ability. I think the
term makes sense since it teases out a feature that terms like
"simplicity" necessarily doesn't. Free Thinker seems to end up
with something close to simplicity but I think the term could be
used in relation to the learner's perspective.

For myself it isn't easy to learn anything by starting with the
most detailed version of abstraction. I need to start at a level
where I will be able to get a result out of the next step of the
process. It's a bit like evolution through natural selection:
You have to increase the usefulness of the organ with each new
mutation. If you don't, the mutation is lost.

So, for me it has taken unreasonably long to start understand
Linux, for example. I had to first use Ubuntu because it was the
small mutation from Windows, then I distrohopped a long time and
started getting some idea of what is out there. Then I failed at
Arch many times. Now I am at a point where I am attempting to
build a Linux from Scratch system, and the learning curve is
(so far) manageable.

In a similar way, my entry to programming was through After
Effects. In AE there is a system where each value of any object
can be manipulated through Expressions, which are little pieces
of Javascript. When you learn even the tiniest little piece of
code, you get immediate and quite big reward. AE is very 
powerful to begin with, but if you can write expressions, the 
possibilities of what you can do are increased exponentially.
Then, when you realize what cannot be done with expressions,
you can start writing scripts for AE and have even more power.

So, for me it is important that I see gains all the time. This
works fine when the layer of abstraction is kept constant.
I cannot learn several levels of abstraction at the same time.

I have tried to find a website generator that I would like. It
is a horrible undertaking. There are usually at least three 
different abstraction I would have to learn. Themes, database,
plugin management. I don't understand any of the logic used here
so it is pretty close to impossible for me to learn this. Of
course I can throw together some basic template from Wordpress,
but that isn't the point. I would like to actually learn.

So, to make this challenge more DIY-able, I have sort of zoned
in on Python, Pandoc and HTML. I already know what HTML does,
more or less. With Pandoc I can create pages out of Markdown,
so it's a bit easier to get some basic content production going.
Basically Pandoc gives me the first mutation without which I
could not get the project started since it would be too many
steps for the first draft (Hello World is really not motivating
enough). So, I only have to learn Python and I will be able
to script a website builder. This is a small step from knowing
how I would do it as a Shell script.

So, I would say that DIY-ability is not necessarily defined by
the simplicity of the tools, material or workflow, but rather
by the level of abstraction in relation to the learner's
current skill level and perspective.

It may also be that my brain works funny. I can only remember
stuff if I can attach it to a scaffolding that is already there.
So, it makes it hard to learn anything that is not related to
what I already know.

------------------------------------------------------------------

gopher://aussies.space/0/%7efreet/phlog/2020-09-20DIY-Ability.txt

------------------------------------------------------------------