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

So what's wrong with a EVERY REAL PROGRAMMER SHOULD KNOW X approach? I would have loved to have one of those when I was starting out.

@SnerkRabbledauber Its starting from a point of gatekeeping and shaming is why. its more fun to explore a mysterious land of interesting ideas than mope over a list of one's deficiencies.

@pr06lefs @b0rk

Sounds like a problem in the learner to me. I start a learning project knowing I don't know. That's kind of why I start the project, right?

@SnerkRabbledauber Ah yes, a problem in the learner.

@pr06lefs @b0rk

Yes. But the good news is that that is exactly the part the learner has control of. So they don't have to wait around for a fix from outside.

@SnerkRabbledauber @pr06lefs can you remove me from this argument I’m not interested