Live data from Hacker News

Teaching how to code is broken

neil.computer

121–130 of 258 posts

Re: Teaching how to code is broken

#121
Do they still use Java to teach object oriented to newbies? I remember being absolutely puzzled about all the boilerplate in my first coding class in high school. What do public, static, void, main, String[], and args all mean? The teacher telling us “Don’t worry about it, we’ll get to it later” always felt weird to me - why are we starting here?

Re: Teaching how to code is broken

#122
I've generally followed the article's outline for some programming tutorials I created.

The lessons are based on building a simple role-playing game. They try to quickly get to something to make the students feel, "I wrote a program!". I try to get them creating a screen, displaying a little data on it, and adding a button that makes a change they can see on the screen.

However, a big problem is that this approach avoids a lot of good architectural decisions. I don't want to spend the first twenty lessons describing abstract application architecture. So, as the lessons progress, and students ask for more-advanced features, I inevitably need to do a big series of refactoring lessons - which loses a good percentage of the students.

Another struggle has been with the language and tools changing over the years. I really wish people stopped using the lessons I wrote in 2014, with Windows Forms, .Net Framework 4.5, and Visual Studio 2013. Most of my support has been for version issues. Unfortunately, I don't have the time/energy to re-do all those lessons and videos.

Re: Teaching how to code is broken

#123
post #17

I have always struggled with how to advise my friends & family on this path of learning. It seems like everyone wants to be a WFH developer these days, but I don't know how to enable them to succeed on that path. "Go build something you want to build!" is something I keep reiterating (as does this article). But most don't seem to be interested in that for whatever reason (presumably because its fucking hard). Maybe I…

I feel like I have a reasonably good track record of helping people get into tech (and was myself helped) and I'd note two things I've found very helpful: 1. It is very useful to let people know that the first ~500 hours of programming are the worst (not unusual for hard skills). I've seen now successful developers reduced to scream crying by the feelings lack of agency and overwhelming complexity during this period.…

That's what made "101 Basic Computer Games" so successful. Type in the game code, often just a few lines, and you've got a working game!

Re: Teaching how to code is broken

#124

I must share the very wonderful video by Seymour Papert on teaching LOGO. He makes a similar observation: imagine if we taught people dancing by sitting them at a desk and explaining all the steps to them, making them memorize them and write them down, but they were never allowed to actually move or try the steps. We find when teaching people a language for example that immersion works very well. So Papert suggests t…

Missing from those analysis is the fact that not everyone has it in them to learn to code like that. I've genuinely tried learning to dance before with practice and I just sucked at it so I put it down and picked up another hobby. Yet in today's world we have this obsession with getting everyone to learn how to program in python. Instead we could be teaching the actual skills like critical thinking and problem solving in a ton of other ways that might stick better with students.

Re: Teaching how to code is broken

#125

Earlier quoted context omitted.

> This is especially important in CS especially when boys are encouraged from a young age to do "techy" and "geeky" things in ways that girls usually aren't. Just be aware that this is not everyones experience. Many places boys are held back and girls are pushed forward. And then afterwards boys gets told they are somehow "privileged" and would never be were they are if it wasn't for "male privilege". Obviously this…

What places?

Most public schools in my state.

Re: Teaching how to code is broken

#126

Earlier quoted context omitted.

> 1. Girls in STEM: society needs to quit telling people "math is hard, tee hee" and quit shopping in the Pink Aisle at the toy store and reinforcing that culture. Buy your kids Lego and Raspberry Pi circuit kits and see what happens. Girls in STEM =/= Girls becoming professional programmers. There are plenty of girls in STEM fields such as medicine, biology, geology, physics, Math, civil engineering... The fact that…

> Girls in STEM: society needs to quit telling people "math is hard, tee hee" To me, the very existence of "Girls in STEM" groups is sending a weird message to girls (and I’m apparently not the only one to think that). Something along the lines of “sure you can do STEM, you’re just not good enough to do it the regular way so we created a group just for you”. Honestly that’s the message a lot of diversity initiatives…

Depends what girls think though, no? I know many who've taken part in such initiatives and enjoyed it, and seen it have an impact.

Re: Teaching how to code is broken

#127
post #80

Earlier quoted context omitted.

Yes, learning is much easier if you have motivation. How do you motivate kids, if they rather play games rather than coding (and they even ignore in-game scripted coding such ad Minecraft or Roblox coding)?

Try a game like Factorio or Satisfactory. Even just Minecraft can be good enough to train their problem solving and critical thinking skills. They don't need to start with redstone to learn to code. They should play the game and naturally realize that redstone is a way to solve their problem (like making an automatic sliding 2x2 door) and then solve it. I feel like those skills will take you much further in life beca…

Not sure if Factorio would work, because I played it and it didn't work for me.

But.... I can finally program.

Re: Teaching how to code is broken

#128
post #23

Earlier quoted context omitted.

I've attempted to teach multiple family members/friends over the years "how to code", and they give up almost immediately. They "just don't get it", and I'd argue one needs to seriously find enjoyment in building things, and knowing how long things can take, to get started.

I'm not trying to level this against your friends and family, just an observation that I've been meaning to share, spurred by "just don't get it": When I was in community college I had to take "Critical Thinking" as a pre-req for Symbolic Logic. We spent the first 1/3 of the class, 8 weeks, analyzing truth statements, basically and, or and not. I was bored to tears, but attendance was mandatory, so I got to see how p…

Sometimes it's hard for engineers. In college, I majored in Computer Science, and for an elective, I took Electronics for non-EE majors. The first half of the course was analog electronics which I struggled with, but everyone else appeared to be following along fine. It was the second half of the class, with digital electronics, where things flipped. Students would struggle with "5V is a 1? 5V isn't 1V! What's going on?" while for me it was, "yeah, yeah, I know this already ... "

Re: Teaching how to code is broken

#129
post #5

I have opinions™, but mostly agree with this article. Most intro coding classes and course materials read more like a glossary than a lesson. This contributes (rather directly) to the failure to retain a diverse student base in intro CS program. We've gotten a lot better at recruiting CS students from underrepresented groups (women and BIPOC chiefly), but numbers drop off quickly[1]. Studies in math education have sh…

Do you know of any comparative studies with other countries? Or is this a predominately US/Canada issue? For example, do BIPOC students in Botswana drop out at similar rates? Do non-BIPOC students in Taiwan experience similar drop out rates? What are the classes and course materials like in these countries in comparison to the US/Canada? What about drop out numbers from international students? For example, do Polish…

There's some work on it. One might start at the keyphrase "Gender-equality paradox".

Re: Teaching how to code is broken

#130
post #36

Earlier quoted context omitted.

I always thought the best way to learn programming is to find a program you want to create, and then figure out how to make that happen. This is still how i learn (most effectively) today. If i want to learn a new language or something, i write something that i always wanted to write in it anyways. That way it doesn't get boring. I think what you're describing might be similar in that canned-data is not interesting.

Yes, learning is much easier if you have motivation. How do you motivate kids, if they rather play games rather than coding (and they even ignore in-game scripted coding such ad Minecraft or Roblox coding)?

Heck, I'm employed to write code and I'd still rather play games. Just I get paid for the code, and not for playing the games.

But you will do better teaching-wise if you do find something that has intrinsic motivation, not turning it into a chore.

It just might not be the right time! They've basically got until they are 18-20ish to decide to get into it. The programming books my parents gave me after 8th grade never interested me. The 11th grade programming class didn't either. The junior year of college tangentially-related course where I was like "oh I could write a program to help with this homework!" That did the trick for me.

So just keep trying, see if you can find programming-related aspects of other hobbies. And just try to focus on them learning things around those hobbies or obsessions, even if it doesn't seem to have a practical application. Get in the habit of going deep on subjects and practicing learning.

Post reply on HN