Being Deep in an Abstraction Stack

Hi everyone,

After last week’s letter about maintaining niche interests, I’ve been trying to write a bit more about my niche technical interests on my notebook (e.g. this one about Boltzmann sampling), but I’ve not been able to shake the feeling that nobody really cares about it. I don’t think this feeling is true (people have definitely expressed interest in it) but it is certainly true that fewer people are interested in them. Mostly because fewer people can be interested in them, because most people don’t have the background to really understand them.

I was talking about this problem of niche interests with a friend, and she expressed vague disbelief that the problem of having interests that you couldn’t explain to people was a real thing. I, on the other hand, can’t imagine not constantly having this problem, so I found this position a little confusing.

I think it boils down to one fairly big difference in our respective specialities: Our respective areas of expertise have very different abstraction stacks. Mine tend to be quite deep, hers tend to be quite shallow (this is not a put down - depth of abstraction stack doesn’t predict importance or difficulty of a subject especially well).

If you are not used to having a deep abstraction stack, it can be very hard to understand what it’s like, because the lived experience is very different, and I thought it might be helpful to explain it in more detail.

What’s an abstraction stack?

It’s the stack of stuff that you need to know in order to understand something, or for a person it’s the stack of concepts you have to build your understanding in general.

Typically parts of the abstraction stack are built on top of other parts - in order to understand A, you need to understand B, in order to understand B you need to understand C, etc. This is why it’s a stack: You’ve got abstractions piled on top of abstractions on top of abstractions.

I think people end up having wildly different experiences of life and work because of differing depths of abstraction stack. If you work in, say, therapy, you have a lot of specialist knowledge for sure, but it’s fairly specialist knowledge that is grounded in immediately practical and relatable problems for most people. Most people have experience with the sort of life problems that therapeutic techniques are designed to solved, and this is rather tied to the nature of therapy.

If on the other hand you work on some weird area of pure mathematics, your abstraction stack can go almost arbitrarily deep. Imagine trying to explain why you’re interested in whether there exists a Banach space that is not isomorphic to any of its proper subspaces to a non-mathematician (or even to most mathematicians really).

You can try to build up someone’s abstraction stack to get them to the point where you can explain what you need - if they’re just missing a concept or two it’s probably entirely doable - but at that point you are teaching and they are learning, and these are hard activities, and you can only fit so much of them into a conversation. It takes a year of a maths degree to get to the point where it would be reasonable for you to know what a Banach space is (you probably don’t hear the term until your third year, or at least I don’t think I did, but you could understand it after the first), we’re never going to cover it in a conversation in more than sketch form.

The difference between something like mathematics and something like therapy isn’t one of degrees of skill or knowledge, it’s how that knowledge builds on itself: The mathematical knowledge tends to be built up, with theory building on theory building on theory and no real shortcuts to get you to the end result, while the therapy knowledge tends to be built out - there’s a great deal of knowledge and detail, but it’s mostly things you can ground out in common knowledge relatively quickly.

Getting the Joke

The easiest way I have to describe the felt sense of the problem is that sometimes you make a joke and it’s a hilarious joke and the person you’re with absolutely doesn’t get it because they don’t have the context for the joke. You can explain the joke, but even after you’ve explained the joke it won’t be funny, because the humour of the joke relies on their emotional relationship to the subject, and worked only in the moment.

It’s not that you can’t explain the joke, it’s that even after explaining the joke it’s not funny. It’s that the emotional connection you form with someone by telling the joke is not possible without having previously established that surrounding context.

This ties in to the problem I talked about last week in Maintaining Niche Interests. We use social connections to maintain our interests in a subject, and shared humour is part of that social connection.

The problem of interest come in more directly too: Even if you can explain something to someone by giving them just enough of the abstraction stack to understand what you’re talking about, it’s probably not interesting to them, because interest derives from something being worth thinking about, and if it’s ten levels down the abstraction stack then it genuinely isn’t worth spending too much time thinking about. It might act as a sort of teaser - a sense that there could be something interesting here, but I think that’s more a kind of fascination or curiosity than the kind of deep interest than you can develop in a subject you know well.

This doesn’t mean it has to be a bad conversation. There are many problems where I’m quite deep in the abstraction stack but they connect back to problems that are sufficiently explainable to people who aren’t that it’s perfectly possible to have a good and pleasant discussion with people who do not share my abstraction stacks.

Generally one way to do this is that you can talk about the problems you’re solving. Necessarily, problems tend to have much shallower abstraction stacks than their solutions (because the abstraction stack for the solution rests on that for the problem), so you can talk about that. It may still take a while to bridge the gap of understanding, but it’s doable, and it will potentially be an interesting and rewarding conversation for all people involved.

But, at the end of it, there is still the persistent sense that no matter how well they now understand the subject, they probably still don’t get the joke.

Unmet Emotional/Intellectual Needs

The basic problem with conversations like the one I’m describing is that they have a particular format, and you adopt a particular role, and if you’re anything like me it is not one that is actually capable of filling certain emotional and intellectual needs.

In particular there are two key features here:

  • This is not a conversation in which we are taking on the role of equals.

  • It may be an interesting conversation, but it is not a conversation about the thing you are interested in and want to have a conversation about.

Take my recent writing about Getting Test-Case Reduction Unstuck with Automaton Inference. I can tell you about the problem this solves (it lets us automate the process of getting Hypothesis better at shrinking things that it would previously struggled with), and we can have a good conversation about why that’s a useful thing to do. It might involve a lot of interesting wide-ranging discussion of the problems and the field. I will probably learn something for it.

But the thing I am excited about is not the problem. The problem is very well-trodden territory for me. The thing I am excited about is the solution, and what I would like is to connect with someone who can share that excitement with me, so that we can riff off each other, construct the emotion of excitement together, and explore the subject together.

This is, I think, a basic emotional and intellectual need most of us have around our subjects of interest: We want to be able to have conversations with people about the subject which improves our relationship with the subject, as well as the person.

Note that this is not a question of willingness on their part to have those conversation. I think many of my friends would be entirely happy to hear me talk to them about the weird shit I work on. It’s a standard feature of the nerd friendship contract that we’re each not just willing but delighted to hear about each other’s weird interests, because we will enjoy learning something new, they will enjoy having someone to talk to about it. It’s that, due to our different abstraction stacks, they are fundamentally unable to offer the sorts of conversations about the subject that I would like to have.

It’s not that every conversation about a subject has to be between equals, or that the conversations we have which are translating down an abstraction stack are not good and interesting ones, but we need a variety of types of conversation, both across a given subject and a given person. Someone who you are always teaching is not someone you can relate to fully as an equal, and having a subject you are always having to teach is not one you can really participate fully in with the people around you because your conversations will always be one sided.

For me at least this ends up with me just not talking about these subjects at all. I have plenty of other subjects I can talk about instead, both because I like not feeling isolated from my friends, and because it tends to highlight that I have nobody to talk about these subjects with in the way that I want to, which causes me to feel worse about my interest in it.

The Solution

Unlike last week’s “Help I don’t know what to do about this problem” this one has an easy and clear solution: You need to hang out with people who share most of an abstraction stack with you, in a context where it is common knowledge that this abstraction stack is shared, and talk with them about the stuff you find interesting that can only be understood properly with that shared stack.

The problem with this of course is that this means you need to find these people, and you need to make friends with them. Making friends is hard at the best of times, let alone friends with speciality requirements.

Fortunately, this is something we have the internet for, and “fortunately” in 2020 people are extra up for making friends on the internet.

I’ve hopefully solved my version of this problem between the conversation that prompted this letter and the letter itself, by creating the Weird CS Theory community discord, which is pretty much a place for just getting together and talking about whatever computer science stuff we find interesting. We’re not all going to be interested in the same things, but we have enough common context that we can generally talk about what it is we are interested in, and it’s reasonable to expect that the people there understand us.

Initial impressions are that it’s great and I needed this years ago. If you’re interested in computer science and have this problem, I can recommend it as a place to talk to others about that.

I was lucky in that it was relatively easy to get this going - I have enough Twitter followers interested in this area that I could literally just put out a call and see who wanted to join - but I think even a relatively small group like this is going to be a valuable thing for many people.

So my recommendation is:

  1. Try to identify subjects that you currently can’t talk about with enough people.

  2. Look for an online space of people to talk about that with.

  3. If you don’t find one, or don’t like the one you find (regrettably a lot of online communities are awful), try creating your own. The small discord model works pretty well.

If you struggle with this feel free to drop me a line and I’ll see if I have any suggestions - I can’t promise I’ll be useful, but it’s worth a shot!