中文 →
Blog Deep Read · 09 · jvns.ca

Julia Evans · jvns.ca
Not understanding isn't a verdict on you. It's a problem you can take apart.

2013 to now · 596 posts · still going (most recent 21 July 2026) · incorporated in 2018, quit her job in August 2019 to sell zines full time, after which the blog turned from "here's what I'm learning at work" to "here's an attempt to explain something I mostly already know" · this page is built on 22 posts read end to end, spanning September 2013 to July 2026

In July 2026, Julia Evans ran a query against a table with 4,000 rows. It took 5 seconds.

Her reaction:

That seemed wrong to me: computers are fast! "Learning a few things about running SQLite", 17 July 2026

"Computers are *fast*!" is the title of a post she wrote in 2014. In it she took a 1GB episode of The Newsroom, wrote a C program to add up every byte in the file, and measured her own machine by hand. Two seconds to read from disk, 0.6 to do the arithmetic. Switch to the CPU's vector instructions: 0.25 seconds. Then she deliberately wrote a version that skipped around memory to manufacture cache misses: 20 seconds. Conclusion: cache misses can make your code 40 times slower.

Twelve years, 596 blog posts and a dozen programming zines later, her first thought on hitting a slow query is word-for-word what it was in 2014. That isn't a failure to develop. It's the method: she treats the reflex "that seems wrong" as a piece of equipment that has to be maintained for life.

Here's a stranger fact. She holds two degrees in mathematics and computer science, and she graduated not knowing what a system call is — the interface a program uses to ask the operating system to do anything at all. When someone said this was a failure of CS education, she published her entire transcript instead: thirteen honours math courses, quantum information theory, compiler design, combinatorial optimisation. Then:

But more importantly – it's ok to not know things. "How I got a CS degree without learning what a system call is", 12 September 2016

The thing she's been fighting for fourteen years

Lay all 596 posts out and the range is alarming: TCP, Huffman coding in gzip, Linux containers, DNS, git's data model, CSS flexbox, how to do the math on your stock options, how to write a performance review, how to crochet a cactus. It looks like the notebook of someone who is curious about everything.

Underneath there is one question, and it isn't a technical one. It's social: why does the gap between using a thing and understanding it carry shame in this profession?

Her entire body of work is an attempt to re-describe that gap — from "you're not good enough" to "there is one specific thing here you don't know yet, it has a name, and you can look it up." She has three answers, and each is counterintuitive.

Answer one: understanding something takes sixteen years, and sixteen years is normal speed

It took her sixteen years to learn DNS — the system that turns a domain name into an IP address. Sixteen years from buying her first domain and setting up records to feeling she actually understood how it worked.

What matters is how she accounts for those years. Not "I'm slow." Not "I studied hard." This:

My favorite way of learning things is to do nothing, most of the time. That's why it takes 10 years. "Learning DNS in 10 years", talk transcript, published 8 May 2023

Six months of nothing, then a furious thirty minutes or three hours or one afternoon, then declare victory and go back to nothing. She calls them tiny deep dives.

Why does it work? Because every dive is forced by a real bug, so it lands precisely on the piece you're missing rather than on the piece a textbook author thought you'd need. Her worked example: she set up DNS records for a new subdomain, refreshed, nothing. Her mental model said the cache expires in five minutes. She waited five minutes. Still nothing — the model broke, which is the worst moment and the most valuable one. Carrying exactly one question ("how long do I actually have to wait?"), she opened RFC 2308, read one deeply boring sentence in section 3, worked out the answer was 10,800 seconds — three hours — waited three hours, and it worked.

And the point:

So sometimes learning one small thing really can solve all your problems. ibid.

What she'd been missing was one fact: a negative answer gets cached too. Not "I don't understand DNS" — one missing line. That conversion, from a diffuse sense of incompetence into a single lookupable fact, is the core move of everything she does.

Answer two: "I'm confused" is not an emotion. It's a sentence you can translate.

She calls this the most important learning skill, and it's just an act of translation:

This is the skill of translating "I'm confused, I don't get it" to "I have a specific question about X". "How to teach yourself hard things", 1 September 2018

Her own example is embarrassing enough to be credible: she was confused about references and borrowing in Rust for three years. Three years of knowing she didn't understand, which is useless, because it converts to no action. Then she sat down and broke the fog into three answerable factual questions — what does & actually mean? how do I tell whether a variable lives on the stack or the heap? how do I avoid putting lifetimes on my structs? — and the fog lifted permanently.

The skill has a mandatory other half: knowing what you do know. She says she doesn't know everything about networking, but she is 100% certain there are 65,535 TCP ports, because the port field in the TCP header is 16 bits and 216 = 65,536. So when a log prints "port 1823832," she doesn't spend a second doubting herself. She calls it a bug.

there is a big difference between "I'm 97% sure this is true" and "I am 100% sure about this and I never need to question it again" ibid.

Together the two halves draw a boundary: solid ground on one side, fog on the other. Work happens standing on the solid ground with one hand in the fog. All of her writing is laying another paving stone on someone else's solid ground.

Answer three: confusing explanations aren't "badly written". They're thirteen specific, shaped mistakes.

In 2021 she did something few writers do: she asked why nearly every technical explanation she reads is confusing. Her writing process had always been learn a thing → read a pile of confusing explanations → finally understand → write the version that would have helped. So what exactly was wrong with the pile?

She reverse-engineered thirteen patterns. One is "outdated assumptions about the audience's knowledge": a Git book explains branching by comparing it to other version control systems — true value in 2009, when everyone learning Git was coming from Subversion; pure noise by 2021, when almost nobody learning Git has used anything else.

The best move is why she framed the list negatively at all, against her usual habit:

the problem with positive patterns (like "avoid introducing unnecessary jargon") is that they seem so obvious that I trick myself into thinking I'm following them, even when I'm not! "Patterns in confusing explanations", 19 August 2021

And the list turns out to help readers more than writers, because it moves the blame:

"oh, I'm not confused by this explanation because I'm stupid, I'm confused because it's introduced 6 new-to-me concepts and it hasn't explained what any of them is yet!" ibid.

The cute drawings are a nakedly utilitarian decision

In 2016 someone on a tech news site wrote: "I don't understand why these, frankly, childish drawings of things you can learn from reading a wikipedia article have reached this level of popularity."

She didn't defend her art:

I don't do it because I'm a visual thinker or because I'm a good artist or because I think comics are always the best way to learn. I just do it because it works, and it's fun. "Why cute drawings?", 14 November 2016

Her evidence is numbers. A 1,200-word post readers said took fifteen minutes to understand; the accompanying comic got the main ideas across in thirty seconds. A drawing about the /proc directory took her fifteen minutes and got 180,000 impressions. In her words, comics let her "trick people into reading about useful concepts that they might otherwise think are too hard or not useful or not fun."

In 2018 she started charging $10 a zine and published the arithmetic: her most-downloaded free zine got 5,000 clicks; her best-selling one got 3,000 sales. Her verdict:

3,000 sales is WAY BETTER than 5,000 clicks "Why sell zines?", 23 September 2018

Because someone who paid is roughly four times likelier to actually read it — a number she labels, in parentheses, "a Totally Unscientific Arbitrary Number." Price here isn't a revenue mechanism; it's a filter on attention. That arithmetic is what let her quit her job in August 2019.

So what do you walk away with

Not TCP or DNS — that's all in her posts, and she says outright in the talk that she doesn't care whether you learn DNS.

You walk away with an operating procedure for not knowing things: confusion is an engineering state that can be located, split up and scheduled, not a judgement about who you are. It has concrete moves — go watch the real traffic (strace, tcpdump, Wireshark), read the boring spec carrying exactly one question, run cheap experiments, write your own terrible version. And its most important rule is social, from the Recurse Center manual she read in 2013: don't feign surprise when someone says they don't know something — not even if you're genuinely surprised. Real or performed, the effect is the same: next time, they won't admit it.

In 2026 she's working on Git's man pages. She built her fourth website on SQLite and then wrote: "I do not know a lot about operating databases." Fourteen years in, the reflex is intact. That seems wrong. Computers are fast. Let me go look.