I used to be pretty anxious about my memory as a programmer and a student. Reframing my brain as a cache, not the source of truth, together with a small constellation of tools, helped me worry less. If you’ve got memory anxiety, maybe this can help you too.
🧠🧐 Brains are surprisingly durable.
Brains are surprisingly good storage systems in some dimensions. Mine, for example, can vividly recall commercial jingles from my childhood. This includes the phone numbers and addresses of what I assume must now be long-defunct local companies. And even some not so local ones.
My brain still thinks it’s important to remember that if I see something shady, I’m supposed to call (cue the music 🎵) Scruff McGruff, Chicago Illinois, 60652 to “take a bite out of crime.” Why that particular ad aired on my local PBS station, deep in Michigan’s thumb region, is a mystery to adult me. I remain convinced, though, that my childhood vigilance for Chicago-based crime has been keeping the city safe, basically single-handedly, for the last 20 years. You’re welcome, Chicago.
🧠🤷 Brains are surprisingly unreliable.
And yet, for every childhood jingle that it works hard to remember, my brain makes an equally valiant effort to forget important things. That includes things like “What I said I would take care of in that one meeting with my boss” or “the names of my coworkers’ significant others that sometimes I see at work events.” It even applies to fun things like “that one Switch game that seemed cool but wasn’t out yet when I heard about it.”
When I thought of my brain as a durable store of information, this behavior bothered me. I would feel broken and confused about why my storage system let me down. The coin-flip nature of whether I could trust information to stay in there added a super not-fun game of chance to my day. It also added a fun new layer to the imposter feelings that I carried around especially early in my career.
🧠📦 Why I’ve reframed brains as caches.
I don’t recall where this idea about databases vs. caches came from (go figure). But, it’s helped me a lot to think of my brain not as a reliable database but as an ephemeral cache, subject to a myriad of relevance-based invalidations.
Thinking about it this way lets me bring my software development intuition to bear on what was otherwise a vexing problem. Unreliable caches I can deal with.
🥡 Caches aren’t durable.
I know, for instance, that I should never store something important only in cache. There always needs to be a durable store in the picture. For me, this means that important knowledge must exist somewhere outside of my head. If it only exists in my head, then it doesn’t really exist.
On teams, I always work with shared memory tools. At Atomic, for instance, we almost always have a shared backlog in something like Pivotal Tracker. We also have shared project automation in something like bin
directory and shared documentation on something like a wiki.
For less team-oriented information, I use a small constellation of tools to durably store what I may need later. Fantastical keeps track of events and meetings. OmniFocus keeps track of things that I need to do. Cardhop keeps track of every person I meet and whatever I remembered to write down about their significant others, kids, pets, etc. Obsidian keeps track of ideas and connections. Drafts keeps track of quick “don’t forget…” things until I have time to put them somewhere safe.
📰 Caches need to be updated.
I also know, from experience, that caches need regular updating and a good way of indicating when their contents need to be refreshed. Programming knowledge is especially vulnerable to decay over time. Whenever someone asks me how to do a thing, I’ve built a habit of saying, “The Last time I checked, this was a decent way to do that thing” instead of, “Here’s how.”
This behavior also happens to encourage language that breaks down experience imbalances. It’s harder to accidentally sound ivory-tower while treating your knowledge as merely a cache that happened to be primed a while ago and probably needs refreshing.
🏎️ Caches are really fast.
One perk of the brain as cache metaphor is that once I freed my brain up from trying (badly) to be a durable database, I gained extra capacity to use for finding connections. I find it way easier to play with new ideas, think divergently, and empathize deeply with the people around me when I’m spending fewer cycles trying to remember important information.
This way, I rely on only a tiny bit of working memory to hold information while it’s en route to the durable storage system. I can give over the rest of my brain to being more present, more empathetic, and more engaged in the moment.
Programming expertise is particularly susceptible to deterioration over time. I’ve developed the practice of answering, “The Last Time I Checked, this was a great method to accomplish that thing,” rather than “Here’s how,” whenever someone asks me how to do something.