On learning difficult things

I have been au­to­di­dact­ing quite a bit lately. You may have seen my re­views of books on the MIRI course list. I’ve been go­ing for about ten weeks now. This post con­tains my notes about the ex­pe­rience thus far.

Much of this may seem ob­vi­ous, and would have seemed ob­vi­ous if some­body had told me in ad­vance. But no­body told me in ad­vance. As such, this is a col­lec­tion of things that were some­what sur­pris­ing at the time.

Part of the rea­son I’m post­ing this is be­cause I don’t know a lot of au­to­di­dacts, and I’m not sure how nor­mal any of my ex­pe­riences are. (Though on av­er­age, I’d guess they’re about av­er­age.) As always, keep in mind that I am only one per­son and that your mileage may vary.

Pair up

When I be­gan my quest for more knowl­edge, I figured that in this mod­ern era, a well-writ­ten text­book and an ac­count on math.stack­ex­change would be enough to get me through any­thing. And I was right… sort of.

But not re­ally.

The prob­lem is, most of the time that I get stuck, I get stuck on some­thing in­cred­ibly stupid. I’ve ei­ther mis­read some­thing some­where or mis­re­mem­bered a con­cept from ear­lier in the book. Usu­ally, some­one look­ing over my shoulder could cor­rect me in ten sec­onds with three words.

“Dude. Disjunc­tion. Disjunc­tion.

Th­ese are the things that eat my days.

In prin­ci­ple, places like stack­ex­change can get me un­stuck, but they’re an awk­ward tool for the job. First of all, my stupid mis­takes are heav­ily con­tex­tu­al­ized. A full con­text dump is nec­es­sary be­fore I can even ask my ques­tion, and this takes time. Fur­ther­more, I feel dumb ask­ing stupid ques­tions on stack­ex­change-type sites. My ques­tions are usu­ally things that I can figure out with a close re-read (ex­cept, I’m not sure which part needs a re-read). I usu­ally opt for a close re-read of ev­ery­thing rather than ask­ing for help. This is even more time con­sum­ing.

The in­furi­at­ing thing is that an­swer­ing these ques­tions usu­ally doesn’t re­quire some­one who already knows the an­swers: it just re­quires some­one who didn’t make ex­actly the same mis­takes as me. I lose hours on lit­tle mis­takes that could have been fixed within sec­onds if I was do­ing this with some­one else.

That’s why my num­ber one piece of ad­vice for other peo­ple at­tempt­ing to learn on their own is do it with a friend. They don’t need to be more knowl­edge­able than you to an­swer most of the ques­tions that come up. They just need to make differ­ent mi­s­un­der­stand­ings, and you’ll be able to cor­rect each other as you go along.

The thing I miss most about col­lege is tight feed­back loops while learn­ing. When au­to­di­dact­ing, the feed­back loop can be long.

I still haven’t man­aged to fol­low my own ad­vice here. I’m writ­ing this ad­vice in part be­cause it should mo­ti­vate me to ac­tu­ally pair up. Un­for­tu­nately, there is no­body in my im­me­di­ate cir­cle who has the time or pa­tience to read along with me, but there are a num­ber of re­sources I have not yet ex­plored (the LessWrong study hall, for ex­am­ple, or so­lic­it­ing to ac­tual math­e­mat­i­ci­ans). It’s on my list of things to do.

Read, reread, rereread

Read­ing Model The­ory was one of the hard­est things I’ve done. Not nec­es­sar­ily be­cause the con­tent was hard, but be­cause it was the first time I ac­tu­ally learned some­thing that was way out­side my com­fort zone.

The short ver­sion is that Ba­sic Cat­e­gory The­ory and Naïve Set The­ory left me some­what over­con­fi­dent, and that I should have read a for­mal logic text­book be­fore div­ing in. I had ba­sic fa­mil­iar­ity with logic, but no prac­tice. Turns out prac­tice is im­por­tant.

Any­way, it’s not like Model The­ory was im­pos­si­ble just be­cause I skipped my logic ex­er­cises. It was just hard. There are a num­ber of lit­tle mis­con­cep­tions you have when you’re fa­mil­iar with some­thing but you’ve never ap­plied it, and I found my­self hav­ing to clean those out just to un­der­stand what Model The­ory was try­ing to say to me.

In ret­ro­spect, this was an effi­cient way to strengthen my un­der­stand­ing of math­e­mat­i­cal logic and learn Model The­ory at the same time. (I’ve moved on to a logic text­book, and it’s been a cake­walk.) That said, I wouldn’t wish the ex­pe­rience on oth­ers.

In the pro­cess, I learned how to learn things that are way out­side my com­fort zone. In the past, all the stuff I’ve learned has been ei­ther easy, or an ex­ten­sion of things that I was already in­ter­ested in and ex­pe­rienced with. Read­ing Model The­ory was the first time in my life where I read a chap­ter of a text­book and it made ab­solutely no sense. In fact, it took about three passes per chap­ter be­fore they made sense.

  1. The first pass was barely suffi­cient to un­der­stand all the words and sym­bols. I con­stantly had to go re­search a topic. I fol­lowed proofs one step at a time, able to ver­ify the val­idity of each step but not re­ally un­der­stand what was go­ing on. I came out the other end be­liev­ing the re­sults, but not know­ing them.

  2. Another pass was re­quired to figure out what the book was ac­tu­ally try­ing to say to me. Once all the words made sense and I was com­fortable with their us­age, the sec­ond pass al­lowed me to see what the the­o­rems and proofs were ac­tu­ally say­ing. This was nice, but it still wasn’t suffi­cient: I un­der­stood the the­o­rems, but they seemed like a ran­dom walk through the­o­rem-space. I couldn’t yet un­der­stand why any­one would say those par­tic­u­lar things on pur­pose.

  3. The third pass was nec­es­sary to un­der­stand the greater the­ory. I’ve never been par­tic­u­larly good at mem­o­riz­ing things, and it’s not suffi­cient for me to be­lieve and mem­o­rize a the­o­rem. If it’s go­ing to stick, I have to un­der­stand why it’s im­por­tant. I have to un­der­stand why this the­o­rem in par­tic­u­lar is be­ing stated, rather than an­other. I have to un­der­stand the prob­lem that’s be­ing solved. A third pass was nec­es­sary to figure out the con­text in which the text made sense.

After a third pass of any given chap­ter, the next chap­ter didn’t seem quite so ran­dom. When the up­com­ing con­tent started feel­ing like a nat­u­ral pro­gres­sion in­stead of a ran­dom walk, I knew I was mak­ing progress.

I note this be­cause this is the first time that I had to read a math text more than once to un­der­stand what was go­ing on. I’m not talk­ing about in­di­vi­d­ual sen­tences or para­graphs, I’m talk­ing about finish­ing a chap­ter, feel­ing like “wat”, and then start­ing the whole chap­ter over. Twice.

I’m not sure if I’m be­ing naïve (for never hav­ing needed to do this be­fore) or slow (for hav­ing to do this for Model The­ory), but I did not an­ti­ci­pate re­quiring three passes. Mostly, I didn’t an­ti­ci­pate gain­ing as much as I did from a re-read; I would have guessed that some­thing opaque on the first pass would re­main opaque on a sec­ond pass.

This, I’m pretty sure, was naïvety.

So take note: if you stum­ble upon some­thing that feels very hard, it might be more use­ful than an­ti­ci­pated to re-read it.

Cog­ni­tive ex­change rates

When read­ing Model The­ory, I was only able to con­vert 30-50% of my al­lot­ted “study time” into ac­tual study.

This is some­what sur­pris­ing, as I had no such trou­bles with Ba­sic Cat­e­gory The­ory or Naïve Set The­ory.

(I of­ten have the op­po­site prob­lem when writ­ing code; this is prob­a­bly due to the differ­ent re­ward struc­ture.)

I was some­what frus­trated with my in­abil­ity to study as much as I would have liked. My usual time-into-study­ing con­ver­sion rate is much higher (I’d guess 80%ish, though I haven’t been mea­sur­ing).

I’m not sure what fac­tor made it harder for me to study model the­ory. I don’t think it was the difficulty di­rectly, as I of­ten tend to work harder in the face of a challenge. I’d guess that it was ei­ther the slower rate of re­wards (caused by a slower pace of learn­ing) or ac­tual cog­ni­tive ex­haus­tion.

In the vein of cog­ni­tive ex­haus­tion, there were a few times while read­ing Model The­ory where I seem to have be­come cog­ni­tively ex­hausted be­fore be­com­ing phys­i­cally ex­hausted. This was a first for me. I’m not refer­ring to those times when you’ve done a lot of men­tal work and you shy away from do­ing any­thing difficult, that’s hap­pened to me plenty. Rather, in this case, I felt fully awake and ready to keep read­ing. And I did keep read­ing. It just… didn’t work. I’d have trou­ble fol­low­ing sim­ple proofs. I’d fail at pars­ing sen­tences that were quite clear af­ter rest­ing.

I’m still not sure what to make of this, and I don’t have suffi­cient data to draw con­clu­sions. How­ever, it seems like there are men­tal states where my I feel awake and able to con­tinue, but my mind is just not ca­pa­ble of do­ing the heavy lift­ing.

Again, the fact that I’m only just re­al­iz­ing this now is prob­a­bly naïvety, but it’s some­thing to re­mem­ber be­fore get­ting frus­trated with your­self.

Ex­plain it to someone

As I’ve said be­fore, one of the best ways to learn some­thing is to do the prob­lem sets. For Model The­ory, though, there were times when I finished read­ing through a chap­ter and was not ca­pa­ble of do­ing the prob­lems.

Re-read­ing helped, as men­tioned above. Another thing that helped was ex­plain­ing the con­cepts.

I ex­plained model the­ory pretty ex­ten­sively to a text file on my com­puter. I sketched the proofs in my own words and stated their sig­nifi­cance. I ex­plained the syn­tax be­ing used. I tried to mo­ti­vate each idea. (The notes are still ly­ing around some­where; I haven’t posted them be­cause they’re pretty much a deriva­tive work at this point.)

I found that this went a long way to­wards helping me track down places where I’d thought I learned some­thing, but ac­tu­ally hadn’t. If you’re hav­ing trou­ble, go ex­plain the con­cept to some­body (or to a text file). This can bridge the gap be­tween “I read it” and “I can do the prob­lems” quite well. For me, this tech­nique of­ten took prob­lems from “un­ap­proach­able” to “easy” in one fell swoop.

Don’t book your­self solid

I’m pretty good at avoid­ing stress. I have the (ap­par­ently rare) abil­ity to drop all work-re­lated con­cerns at the door when I leave. I don’t even know how to get stressed by bad luck, es­pe­cially if I made good choices given the in­for­ma­tion I had at the time. I get nor­mally tense in stress­ful situ­a­tions with time con­straints, but I’m adept at avoid­ing the per­mas­tress that I’ve seen plague friends and fam­ily un­less I’ve booked my­self solid.

I’ve had a packed sched­ule these past few weeks. I try to move the nee­dle on at least two pro­jects a day (more on week­ends). Even if it’s en­tirely rea­son­able to fit all these things into my sched­ule, I have not yet found a way to avoid the stress.

Even when I know that, if I push my­self, I can read this much and write that much and code this fea­ture all in one day, I haven’t found a good way to push my­self with­out pres­sure-stress.

I’m still hop­ing that I’ll learn how to move quickly with­out stress as I learn my ca­pa­bil­ities, but I’m not sure I’ve been ad­e­quately ac­count­ing for the cost of stress.

It’s worth re­mem­ber­ing that do­ing less than you’re ca­pa­ble of on pur­pose might be a good strat­egy for max­i­miz­ing long-term out­put.

There you go. Those are my notes gath­ered from try­ing to learn lots of things very quickly (and try­ing to learn one hard thing in par­tic­u­lar). Com­ments are en­couraged; I am by no means an ex­pert.