was chatting with a friend about some of the challenges with teaching yourself programming topics:

* you have random gaps that you don’t even know about
* it's hard to assess your level, you might know a lot about one subtopic and be a total beginner elsewhere
* it's very difficult to guess what other fellow autodidacts know about the subject

I've had to learn how to suss out what shared knowledge base I have with another programmer on any given topic quickly so that we can talk

(1/?)

I also think a lot about what it means to be "self taught" in programming, for example I "taught myself" about how TLS works under the hood by writing a toy implementation of TLS 1.3. But I used this guide https://tls13.xargs.org/, and I probably could not (or would not) have done the project if that guide didn't exist

so if we want to make it easier for people to teach themselves effectively, what kinds of resources do we need to provide?

(2/?)

The Illustrated TLS 1.3 Connection

Every byte of a TLS connection explained and reproduced

we have a lot of amazing "teach yourself" resources in programming (like nand2tetris or all of the great guides to writing your own compiler / programming language).

But I think a lot about -- which programming topics *don't* have great guides for how to "teach yourself" that thing? What's missing? How can we fill in the gaps?

(3/?)

also, how can we help people who are self-taught in an area recognize what knowledge gaps we might have? Not in a gatekeeping “EVERY REAL PROGRAMMER SHOULD KNOW X” way, but more "hey, if you feel like you're missing something, here are some ideas for where to start"

(4/?)

@b0rk I had an instructor in college who took time to mention how he was making his cursor jump around the screen so quickly (not vim or emacs or anything like that, just alt/option and ctrl/cmd with arrow keys). For me this is less about being a real programmer and more about ergonomics and sustainability of the career, which isn’t well-documented.
@ajf @b0rk omg there’s so much stuff I only learn from shoulder-surfing (IME one of the big down sides of remote work)