b0rk, (edited )
@b0rk@jvns.ca avatar

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/?)

b0rk,
@b0rk@jvns.ca avatar

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/?)

alice,

@b0rk Since a majority of the internet standards are written as RFCs, a critical resource is instruction on how to read RFCs. There's a specific meaning to many words; for a standard to be "good", one mustn't need to "interpret" as much.

This helps reading other standards and documentation on such, such as the MDN.

It's like scientific studies: many might read over them, fewer will understand the actual implications of one. Formalized structure only really helps those "in the know".

b0rk,
@b0rk@jvns.ca avatar

@alice yeah! i've been working on a guide to implementing network protocols and one of the nicest pieces of feedback I've gotten was that they helped people be less intimidated by RFCs

b0rk,
@b0rk@jvns.ca avatar

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/?)

b0rk, (edited )
@b0rk@jvns.ca avatar

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/?)

SnerkRabbledauber,
@SnerkRabbledauber@mas.to avatar

@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.

b0rk,
@b0rk@jvns.ca avatar

@SnerkRabbledauber I just fundamentally don't think it makes sense, @galaxykate has a great thread about this on twitter https://twitter.com/GalaxyKate/status/1751618131187884089

there are too many different kinds of programmers and programming is too big

pr06lefs,
@pr06lefs@mastodon.social avatar

@SnerkRabbledauber @b0rk 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.

SnerkRabbledauber,
@SnerkRabbledauber@mas.to avatar

@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?

pr06lefs,
@pr06lefs@mastodon.social avatar

@SnerkRabbledauber @b0rk Ah yes, a problem in the learner.

SnerkRabbledauber,
@SnerkRabbledauber@mas.to avatar

@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.

b0rk,
@b0rk@jvns.ca avatar

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

ramsey,
@ramsey@phpc.social avatar

@b0rk I was recently recommended the book The Imposter’s Handbook, for this very reason. https://sales.bigmachine.io/imposter-second

QEDan,

@b0rk
The view that self-taught folks have "gaps" and the implication that degree holders have a "complete" education is a mental model of learning that...has gaps. It also privileges a certain type of background that ends up excluding a lot of people.

There is never a standard mental model you can assume when discussing things. Even the people who all took the same degree will have very different knowledge and misconceptions despite the students learning to pass the same tests.

b0rk,
@b0rk@jvns.ca avatar

@QEDan my personal experience is that in areas where i’m self taught (like computer networking) my knowledge is much more patchy than in areas where I have a more traditional education (like theoretical CS or programming languages)

QEDan,

@b0rk How do you measure the "patchiness" of your knowledge? Performance on a standardized test? Amount of frustration you feel trying to complete tasks? Personal confidence in your knowledge? How frequently colleagues correct your misconceptions? Something else?

b0rk,
@b0rk@jvns.ca avatar

@QEDan frustration getting stuff done, sometimes i’ll run into a problem and it will take me literally years to figure it out because there was some basic knowledge I was missing about how the system works

sidereal,
@sidereal@kolektiva.social avatar

@b0rk @QEDan Sure, but that's not everyone's experience. For me, I feel the opposite; I consider my "traditional education" patchy because I was undiagnosed and unmedicated back then. The things I've taught myself since, as an adult aware of my own neurology, I have a [much] firmer handle on. And now I see some people my age with degrees making mistakes bc their crammed college knowledge is out of date and they never learned how to learn. There are advantages and disadvantages to every approach.

b0rk,
@b0rk@jvns.ca avatar

I used to get a bit mad when people referred to me as "self taught" (“I have TWO computer science degrees!! I literally have the most normal possible CS education!”) but I've learned to embrace it. There's no way you can learn everything in your CS degree, careers are long, and we're all gonna have to teach ourselves a lot of stuff anyway.

(5/?)

bynkii,
@bynkii@mastodon.social avatar

@b0rk and it’s not like a CS degree from school A is the same curriculum as School B

lea,
@lea@mastodon.social avatar

@b0rk I too have Feelings about “self taught” but from the other side of things — most of what I have learned has been heavily supported by friends and loved ones. I [still!] haven’t taken any formal CS classes but I am much more “self taught” in the fiber arts, where I’ve mostly learned from experimentation and reading, than in computer stuff, where I’ve had people available to answer questions about all kinds of things.

b0rk,
@b0rk@jvns.ca avatar

@lea i hadn't thought it in terms of having people around to answer questions, I think that resonates

researchbuzz,
@researchbuzz@researchbuzz.masto.host avatar

@b0rk I started teaching myself JavaScript in April 2022. I started getting into fetch early because there were API things I wanted to do, but I could not wrap my head around how you interacted with the returned object.

It took a LONG time for light to dawn on my marble head, because there was no place that said something simple like, "Now that your fetch has successfully completed you can assign returned data to a variable and do things to it."

1/2

researchbuzz,
@researchbuzz@researchbuzz.masto.host avatar

@b0rk It seems to me that I can find a lot of teaching information written in the service of simplicity (basic understanding) or activity (creating code) but less written in the service of possibility (giving mid-beginners a perspective into how things work with the aim of understanding early on how far you can go.) I spend a lot of time with that on my own.

2/2

bynkii, (edited )
@bynkii@mastodon.social avatar

@b0rk Tech needs to stop acting like writing educational and training materials is some blowoff job that “any idiot” can do. As someone who was actually taught how to write those things, tech documentation is a circle-jerk written by and for experienced developers by people in an industry who think that if you’re any good, you don’t need anything beyond header files and a copy of the K&R book.

bynkii,
@bynkii@mastodon.social avatar

@b0rk Every time I think “hey, this could be a neat app”, I look at the dev. “documentation”, and remind myself why I should stop having those thoughts.

Tech people treat education like it’s some overcomplicated howto, and then don’t even write good howtos because of the dickwaving that has dominated tech for my three decades in it. Almost four decades if we count military.

Tech has the education and training it wants: nothing but gatekeeping.

If they want to change that,

bynkii,
@bynkii@mastodon.social avatar

@b0rk

try talking to people who have been trained how to teach and write.

Or don’t. I stopped giving a fuck long ago and now that I have my compsci degree, I don’t even have to pretend to care about it.

Y’all have the world you want.

b0rk,
@b0rk@jvns.ca avatar

@bynkii yeah this is SO real, the more time I spend working on getting better at teaching the more I realize how difficult of a skill it is

bynkii,
@bynkii@mastodon.social avatar

@b0rk as part of my documentation training, I had to write a procedure for properly grounding a B-1B. This is really simple in concept:

  1. connect alligator clips on one end of cable to steel loop in ground.

  2. plug other end of cable into plane.

Almost four pages by the time it was properly done because when I put myself in the place of a complete n00b, there was a LOT.

Documentation is hard and tedious and critical and everyone blows it off.

JMMaok,
@JMMaok@mastodon.online avatar

@bynkii @b0rk

Building on this idea, I think some autodidacts could benefit from guidance on how to choose educational materials. Scaffolding of concepts is a real thing. Learning multiple concepts in a consistent structure reduces cognitive load. Random YouTube or Stack Overflow can be good for experienced folks filling gaps, but I see newer folks wasting a lot of time by consuming bits and pieces (often full of filler).

b0rk,
@b0rk@jvns.ca avatar

@JMMaok @bynkii man I've been doing this for 20 years and I still don't know how to choose educational materials for myself half the time. It's so hard.

bynkii,
@bynkii@mastodon.social avatar

@b0rk @JMMaok because it’s an industry that really does treat learning as a gatekeeping function.

I mean, if you’re new to swift and SwiftUI, you’re better off ignoring Apple’s “documentation”, it’s nonsense. Shit, they don’t even explain what shit does much less how to use it.

They’re not the only ones, just the easiest example.

There’s fundamental stuff I am comvinced no one really understands, they just plug in code samples and tweak until Xcode stops whining

bynkii,
@bynkii@mastodon.social avatar

@b0rk @JMMaok also, no one actually teaches anyone how to write docs.

Well, they do, but those are technical writers and editors and we know how they’re viewed in the industry.

JMMaok,
@JMMaok@mastodon.online avatar

@bynkii @b0rk

lol, masters in technical communication in my distant past

bynkii,
@bynkii@mastodon.social avatar

@JMMaok @b0rk I have a friend who’s been tech writing for decades. She’s amazing. I have another friend who could do it if anyone was willing to hire someone with the writing/language skills and teach them the tech bits. She’s amazing, but she’s given up on using her degree.

There’s a LOT of people with expertise in the core of writing and communicating who would be great for documentation because they’re not experienced devs.

But the only industry hiring them is advertising & PR

bynkii,
@bynkii@mastodon.social avatar

@JMMaok @b0rk yep. And the sample code has to be meticulously documented, almost over documented

alpha,
@alpha@social.kejadlen.dev avatar

@b0rk I feel like this is the case even for non-self-taught programmers - there’s such a wide range of knowledge depending on someone’s history.

b0rk,
@b0rk@jvns.ca avatar

@alpha yeah!! that's a thing that i'm struggling to articulate, to me "self taught" doesn't mean "person who doesn't have a CS degree" (I have two CS degrees and I"ve had to teach myself SO much stuff), it's just about how much stuff you've had to pick up yourself in a haphazard way

thatandromeda,
@thatandromeda@ohai.social avatar

@b0rk Do you know Rob Conery’s Impostor’s Handbook?

b0rk,
@b0rk@jvns.ca avatar

@thatandromeda i don’t!

gvwilson,
@gvwilson@mastodon.social avatar

@thatandromeda @b0rk I've given away several copies over the years

gvwilson,
@gvwilson@mastodon.social avatar

@thatandromeda @b0rk (it was one of the things that got me thinking about "Sex and Drugs and Guns and Code": would it be possible to write something like the Impostor's Handbook that explained how organizations and society as a whole worked, at a superficial-but-useful level, for people who didn't get it in school?)

jani,
@jani@fosstodon.org avatar

@b0rk I'm not sure this is entirely specific to self-taught programmers, though. Maybe you can make some assumptions what programmers with formal education (should) have been taught, but I think the curriculums are diverse, e.g. with different emphasis between theory and practice. You're going to have gaps no matter what.

b0rk,
@b0rk@jvns.ca avatar
preinheimer,
@preinheimer@phpc.social avatar

@b0rk I think the random gaps thing is a huge. That whole "you don't know what you don't know" thing can really bite you when you don't expect it.

e.g. It turns out those 250 lines of quite buggy code I've been working on for the past week because there's no good prior art... are handled by a single built in function. I guess that's why there's no prior art!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • InstantRegret
  • ngwrru68w68
  • everett
  • mdbf
  • modclub
  • rosin
  • khanakhh
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • Youngstown
  • GTA5RPClips
  • slotface
  • kavyap
  • JUstTest
  • ethstaker
  • osvaldo12
  • normalnudes
  • tacticalgear
  • cisconetworking
  • cubers
  • Durango
  • Leos
  • anitta
  • tester
  • megavids
  • provamag3
  • lostlight
  • All magazines