On digital gardens.

Warm greetings to all zero of my readers. This blog has been fairly dead for a while now. I've mostly been busy trying out a lot of things, and working on yet another programming language this time (more on this later).

In the past several months I've made a simple observation about my learning methods: they're very ad-hoc and not disciplined. This often leaves me 'half-invested' in many different topics and I end up having to choose one thing to learn, leaving everything else on a lonesome todo list. When I find something interesting or fun, I end up scouring the web for books, papers, blog posts and all kinds of resources, I get very invested into it and everything else that I should have been doing gets sidelined to an extent. I'm sure there is an analogy to be drawn between this behavior of mine and a poorly designed OS scheduler giving all it's CPU time to a single process while starving the others. But I won't make that bad pun today. Moving on...

For the past couple of months I've mostly been invested heavily in compilers, virtual machines, interpreters and optimization techniques. The primary reason for this is my project, Vyse (again, more on this later). Save that, I've been able to find some good books to read. Though my progress reading them has been very slow because I couldn't decide a proper order or schedule to read them in. Mentioned below is the list of books that I plan on finishing. I have a rough idea of how big each one is, so my plan is to cover half the list over what's left of this year.

These are the top few books in my to-read list, and they all happen to be tech related at the moment. There are some other books that I know I definitely want to read, but they're not as high priority as the ones mentioned above. OS 0 to 1, Engineering a compiler, Types and programming languages, Computer graphics from scratch and Compiling to assembly from scratch to name a few.

You're right, that's enough books. So now I'll get a bit vague and mention names of topics I want to cover and become better at:

And finally, I'm working two projects:

Wokay, so what's the title of this post about ?

Alright, I'll finally get to the point. The first paragraph had something to say about my ad-hoc ways of learning, and so I've decided to get in proper shape by keeping myself accountable. Accountable to who you ask? That's a good question.

Before getting into it, let me establish the goal one more time.

The goal is to learn multiple things in a well structured manner but specialize in one/few of them. A T shaped learning is what I hear it's called, though I don't quite see the correlation.

Digital Gardens... ?

I've been thinking about the aforementioned structure I want to follow for quite a long while now. Recently, I came across a blog post by Joel Hooks. It does a very good job of explaining what digital gardens are, so I highly recommend it. You may also find this very ambitiously named repository useful.

In short, a digital garden is an online showcase of a collection of ideas. It can be a form of writing, art, interactive data viz, music, or anything creative. In the sprit of Joel's blog and github repo, I want to do something similar. Grow an online space of some kind to showcase fields that I am interested in, the related work I've done and resources/interesting links. And I believe doing so will hone my skills in the process.

A garden in real life is very visual, that's the entire point of them. So for my digital garden, I want to do something similar and create a modular, visual way of keeping track of what I do. I haven't quite figured out what I'm going to exactly yet. Until I figure that out, I am going to keep track of my work in form of writing, collecting seeds and farming equipment and storing some of them in a git repo equivalent to Joel's "knowledge", and some in this blog for later use in the garden. You can consider this blog a prototypical digital garden until then :)

This part was fairly short because I think Joel's blog does a great job of explaining this idea, so I don't want to repeat his points.

My next post is most likely going to be about the Vyse language and what I've carved out of it so far. See ya until then 👋.