One of the blessings of working with computers—though it is not universally described as such—is that you get to learn new things constantly. For years, I’ve kept notes about things I learned. I wrote them scattered across text files, in Notational Velocity, and on my phone. Here’s a random file from my first software internship:
RUBY REMINDERS
Variables
---------
local
@instance
@@class
$global
This is really basic stuff but you have to start somewhere!
When I worked at Slack, I created a #cli-pro-tips channel and started to write up the notes I had accumulated as a kind of mini-blog. I posted an entry every day for weeks. Other people added theirs too, which I loved. Now I wish I hadn’t locked all that writing up inside a company that I don’t work for anymore, but that’s just another lesson.
A bunch of people have been sharing things like this in a format called TIL, “Today I Learned.” I think Josh Branchaud’s collection is one of the oldest. I also really enjoy Simon Willison’s and Julia Evans’s TIL sites.
I really like this practice of learning in public. It shows that even experienced people are still picking up new things. Sometimes when we hear that someone else doesn’t know a thing, we react with a kind of feigned shock. But there’s so much stuff to learn! Of course everybody has missed some of it.
I remember once at a work dinner I mentioned how ctrl + r in your terminal shell lets you search through your history (this is a typical conversation, I’m a great guest, please invite me). Another person said “Wait—what?” And I took a lot of joy in explaining it because this person was one of the best engineers at the company—much more talented than I am—and I got to share something they didn’t know. xkcd has a great strip about this:
In that spirit of learning and sharing, I’m adding a TIL section to my site. I’m trying to revive some of those old lessons from my notes alongside new ones. I hope you’re surprised by some of the things I didn’t know yet and learn something new yourself.