Different Instrument, Different Signal
- #encode
- #building-in-public
- #cs50p
- #memory-palace
Sat down today for two thirty-minute blocks. The plan was a cold walk through all thirteen palace loci I’ve built for CS50P fundamentals — Python language, interpreter, .py files, function, argument, string, side effect, return value, bug taxonomy, variable, assignment operator, comment, pseudocode — then continue Lecture 0 from minute thirty-one. The pretest from yesterday’s session was still loaded: print("hi", end="") — what does that do, and what’s end="" actually doing?
Here’s the thing the last two sessions didn’t tell me. Yesterday I ran a cold walk on the same thirteen items and got one out of thirteen clean on the first attempt. The session before that, I’d been at five. I’d assumed the palace was decaying and that I needed more reps on the canonical images. Then later in yesterday’s session I changed the test — instead of asking myself for the image AND the term AND the definition all at once, I just asked for the term paired with the location. Eight out of thirteen clean. Same brain, same loci, same window. Different instrument.
So today I ran the version of the test I’d discovered worked: rapid term plus locus first, no definitions, fire fast. Then a second pass for definition recall ONLY on the items that drifted in the first pass. Step one: thirteen out of thirteen. Step two: five items needed work. The first time I’ve seen the structural cue layer of this palace come back fully intact across a twenty-four-hour gap.
The moment that mattered came at locus six. We were in the middle of a recurring confusion I’ve had for three sessions running — the difference between what the language calls a “type” (what KIND of data something is) and what it calls a “role” (what JOB that data is doing in this expression). Quotes around something make it a string (type). Parens around something make it an argument (role). The trap is that those two facts about the same piece of code feel like they should compete, when they don’t — they describe different layers. Every time it came up across the last four sessions, I’d reach for one and miss the other. Today, mid-drill, I said it back in my own words: “quotes equal type marker, parens equal role marker.” Not a definition I’d been handed and parroted — words I generated to lock the distinction down. Twenty minutes later it survived a fresh test that exactly mirrored the one I’d failed last session: print("3", "+", "5"). Last session I answered “8” because my brain saw “3 plus 5” and reached for math. Today the answer was “3 + 5” — three strings, auto-spaced — and the reasoning was clean (“the quotes make them act as separate inputs”). Lock held under retrieval pressure for the first time in four sessions of trying.
The Instrument Shapes the Signal
The lesson runs deeper than memory palaces. The way I tested recall on those thirteen loci was the difference between a 7.7% result and a 100% result on the same brain in the same week. The coarse one-pass test (image + term + definition together) couldn’t tell me which layer was failing — so I’d been treating the whole palace as fragile when only the definitions were drifting. The two-step test exposed it cleanly: structural cue holds, content needs more reps. Same data, different signal.
Train dispatching has the same shape. The default consist for a typical Z train might be a hundred cars, helper at the back, max grade one-and-a-half percent, single conductor. You don’t have to specify any of that on a normal trip — those are the defaults, and dispatch knows them. When the trip is unusual, you override only the parameter that’s different, by name: this trip use one-fifty cars, no helper, max grade one percent. You name what you’re changing. Everything else falls back. Memory testing works the same way — you can override the test parameters (cue-only, definition-only, image-only, full-recall) to surface different signal. Default isn’t always the right test. The right test depends on what question you’re actually asking.
This generalizes way past my palace. Performance reviews scored once a year against one rubric tell a wildly different story than continuous feedback scored monthly against five — same employee, same year, two instruments, two signals. Product KPIs collapsed into a single north-star metric tell a different story than a small dashboard with five complementary measures — same product, different signal. Incident retrospectives that ask one question (“did it go well?”) miss what five layered questions catch. The instrument is the variable. Pick it like you mean it.
Tomorrow I encode the new vocabulary from today’s lecture into the palace — parameter, named parameter, default value, escape sequence — then test the encoding with the two-step protocol the session after that. The thing I want to know is whether brand-new loci behave the way the eight-day-old ones do, or whether age matters more than I think. Different question, probably needs a different instrument.