Hacker News new | past | comments | ask | show | jobs | submit login

I was self directed as apparently are many software engineers so I've always assumed that the best way to teach would be to let kids direct themselves and they can ask questions if they get stuck.

Well, this video claims I'm wrong. Self directed study doesn't fit most students according to the research presented in the video.

https://www.youtube.com/watch?v=g1ib43q3uXQ

you can jump to 11:00 if you want to jump to the part about learning.




I think that self-directed and self-motivated learning for _programmers_ is critical. All the best programmers I know are almost entirely self taught. I think the best way to go about it is first motivation (they have to really want to be able to make things) and then an introduction (here's a REPL, type 2+2, hello world, here's a function, here's Google, stackoverflow) and then provide help when needed.

Every time I've seen kids take this path, it's very black and white - either they quickly learn to learn on their own, and succeed, or they need guidance/lack motivation and fail.

For non-programming, I think learning on your own is far less critical.


I think maybe things are being conflated here. (1) being motivated (2) being self directed (3) being made to figure things out on your own

The video above basically says vast amounts of research show that showing people the answers with explanations is far more effective than saying "figure out on your own". Not only are people given the answers with explanations more able to solve the problems they are more able to apply them to future problems.

It also seems to say being directed (being given lessons) is usually better than leaving it up to the student what to study (of course there are exceptions for some students)

I know for me I didn't invent link lists, hash tables, sorting algorithms. One way or another I was taught the solutions. But I was often self motivated. Still, I was taught via assignment how to open a file, and read and write to it. As well as how to implement a bubble sort. Enjoying programming I enjoyed learning those topics but it might have been much longer for me to apply them if a teacher hadn't taught me both by choosing what to teach (so not self directed) and explaining it (so I didn't have to invent sorting). I had no idea I wanted to know about those topics until after being taught.


Sure, I'm not going to argue with the research's applicability to learning in general, but I think that programming is a clear exception. The majority of the best programmers in the world learned what they did in a mostly self-directed way. This is unique in comparison to the vast majority of other fields. For a while, there was a counterargument to be made that that was because of the relatively modern invention of programming, but this is clearly not the cause anymore - the first CS diploma was awarded in 1953, and now in 2020 you can get a CS bachelor's everywhere from liberal arts colleges to online. Go to those CS bachelor's students and you'll find that of the best, the majority were competent programmers before starting their degree.

> I was taught via assignment how to open a file, and read and write to it. As well as how to implement a bubble sort.

And I learned those, as millions of programmers, on my own - through documentation, and Google, and so on.

That said, I certainly don't think that the _only_ way to be good is to be self taught. I have met people who went to university with zero prior CS knowledge, and they ended up excellent programmers. But to be entirely honest, that is a small population. It's an uncomfortable topic for universities - nobody wants to sell an expensive degree to become a programmer, with the prerequisite that you're already a programmer - but my university did admit that the students that were already programmers before starting did significantly better in every way.





Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: