A Note On Learning Things

It's been about two and a half weeks since I finished my batch at the Recurse Center, and I have a confession to make: despite those three months being some of, if not the most educational months of my life, I haven't really learned very much since then.

That's not for lack of trying. Here's a pretty comprehensive list of things I've done, or half-done, in those two and a half weeks (look for the obvious pattern, and if you're feeling up to committing more time to this blog post than I would expect, contrast it with the list of things I did while at the Recurse Center):

And so, as I'm starting this week with an implacable sense of malaise (some of which is admittedly/definitely related to the process of looking for a job) and a strong gut-level feeling of having not scratched the itch to just learn something, anything, in many days, I decided to write the list above to make very plain to myself (and maybe others, but mostly myself) the most practical and important truth I learned at the Recurse Center: you learn by doing things.

Yet, as is obvious, I've spent a lot of time recently just reading about how to do things in abstract, with the hope of that somehow quickly filling many of the gaps in my (mainly frontend) programming knowledge.

The irony, of course, is that I spent the entirety of my Recurse batch quickly filling numerous other knowledge gaps by just doing, i.e. diving off the ledge toward solvable problems I could glimpse somewhere down in those gaps. And then, after crashing at the bottom of Postgres or Python or whatever, resetting figurative bones, getting my bearings, and flailing around for a while, I had both 1) tangible, tested, working code and 2) a satisfying sense of having thoroughly learned a thing--which, honestly, is what I'm always chasing, as it's one of the few states of being that makes me reliably and deeply happy.

As an aside, I'm not knocking the value of books/documentation/fiddling/tweaking--you have to reference things; you have to be bored and listless and unproductive sometimes; you can study examples; you can avoid basic mistakes people with more experience have already made. In short, I don't think I've completely wasted my time on the things I've been doing recently. (Okay, okay, the Vim stuff was a bit much.)

On top of that, I studied literature in college, and there are large swaths of my life from which no details persist in my memory other than whatever stack of novels or poetry books I was chewing through--not much learning by doing there.

What I was trying to accomplish through reading literature all the time, though, was more comparable to what I get out of a day of hiking through the mountains than, say, attempting to grok red-black trees or composing Vim keybindings: it was about savoring the moments and maybe, sometimes, having a little light blink on somewhere internally, giving a minor but language-defying insight into the human condition.

Those types of things (and it's possible this is just me) are not exactly what I seek through learning programming and programming-related topics, because those things aren't even learning, exactly--more like some sort of refined and/or heightened form of experience.

Basically, I think I've been confusing the methods I've successfully used to get to that experience--constant reading--with the methods I've successfully used to rapidly learn programming and things like it--constant writing & doing.

So, here's a list of things I'm going to try to do to in order to learn the things I want to learn:

Maybe I'll report back, but I'm already confident this is the more effective--and more enjoyable--way to go.