Hacker News new | past | comments | ask | show | jobs | submit login
Why we should teach kids actual programming, not Scratch, etc. (medium.com/vopi)
18 points by vopi on June 15, 2017 | hide | past | favorite | 10 comments



Languages like Scratch really shine in the 9-12 year old range where the goal is to get them playing with the core concepts of languages and inspire them to pursue computer science further on their own time. The end goal isn't to make them ready to work in the industry, and it definitely isn't to teach them typing and syntax skills, as those things become what "programming" is to them. Some people really only think of computer science as black magic, but Scratch helps them see the problem solving and joy of creation; the other parts can come once they have the drive to continue.

I don't think Scratch has much of a place in a high school classroom as a "beginner" language, and it won't help an already impassioned programmer who has his or her heart set out to pursue it, like the author. Production languages work better for that.

I started learning C as a kid and I was hooked, Scratch wasn't for me (and also wasn't around at the time). But now I teach kids in a volunteer program and they have trouble paying attention for long periods of time, they have trouble typing, and most of them haven't chosen programming as their career. They will either see the light or move onto other things. Fast-tracking them to the important concepts hopefully better informs that decision.


If your high school programming class was using Alice or Scratch, that's probably the real issue. My kids picked up Scratch at around 9 or 10, and loved it. My oldest got the bug and went on to learn Python, Java, and Lua; he's a HS Junior and contemplating going into CS. The younger ones are less inclined to programming proper but still like making things in Scratch. But if I were presented with Scratch or Alice as a teenager I'd feel a bit patronised.

If you were already a passionate programmer when you took these classes, it's not surprising you felt disappointed; but that doesn't mean these aren't effective tools to introduce the uninitiated to programming concepts.


I have an eight year old (3rd grade) who loves playing around in Scratch, it seems entirely appropriate for him at this stage. In a year or two I'll likely get him to do Swift Playgrounds, it was just a bit too hard for him right now.


Scratch and Alice look like actual programming to me.

The odd features: You have a structured editor. You are tightly tied to a graphics library that focuses on cartoon animation.

I would prefer that you could have one feature or the other, or both, or neither.

The structured editor is very important. It is like syntax highlighting, but it actively prevents syntax mistakes instead of just complaining. Structured editors usually come with non-standard languages, which is a shame. You could do a decent subset of most modern languages, even C. Code written in a normal editor could even be loaded into the structured editor as long as the code doesn't go outside the supported feature set. Look at the code, imagine the colorful shapes missing, and you can see a pretty ordinary text-based program.

The graphics library is so typical. I suppose it is needed, sadly. Kids allegedly get bored with printf. I wonder if the kids who seem to require graphics are simply uninterested. If you can't simply enjoy the pure pleasure of manipulating data with code, programming might not be your thing. In any case, a graphics library is the norm.


Hi, I'm one of those people that got bored with simple printf. Always enjoyed making programmes with graphics and Sound. These days a lot of my work is "the simple pleasure of my manipulating data with code", it's OK but I would prefer to be doing graphics.


I agree with what you say.

I went to a British Secondary School, and am just about to leave Sixth Form - I took computer science at both levels.

The trouble is - again, at both levels - there are few teachers who understand the topic. Scratch and the like are easy to learn for more or less anyone, and teachers can teach it easily. I know that in some cases CS teachers are IT teachers who took on the extra subject.

With like Python, unless the teacher has actually written a decent amount of it then they're going to struggle to teach it well. If they've never properly programmed, they will also struggle to point out that "Twitter has an API that you may want to use to analyse tweet contents", for instance.

I'd just like to reiterate that I am not disagreeing with you, I would very much love a curriculum change. I just think that the lack of qualified teachers needs to be addressed as well.


https://processing.org/ is nice alternative. While still highly visual, this thing teaches real Java programming, not that visual programming BS.

Personally, I did visual programming more than once during my career, in biztalk, virtools and unity3d. I like regular programming much better. Could be the whole idea is somewhat flawed, at least once a program being developed is larger than three blocks in size.


Author here. First time posting something publicly like this so sorry for any basic mistakes. If you have any questions feel free to ask! (PS: Sorry for any grammar mistakes).


Its really important to consider who the class is for when looking at how you enjoyed it.

You took the class already having 'lots of prior programming experience'. This class was clearly designed for people who have never programmed in their life. This class was not designed for you.

I was in the very same situation when being taught the basic programming concepts in Python at University, after having held software dev jobs and written assembly and C for several years.

Scratch, Alice and others are great starting tools for kids around 5 to 13 who have never programmed before. They're reasonable initial platforms to spend a couple of hours on for older people too (your age group and even upwards).

It might be worth talking to some of your peers who had never programmed and asking what they thought. Its super easy to forget than only a little while ago, you also knew nothing.

I do agree that the whole course should not have been modelled around Alice. At your age you could probably pick up the Python REPL quickly after an initial into to the concepts in Alice.


I started programming in Assembly when I was 10-11-years-old. I feel that Scratch is underestimating kids' intelligence and sending them the wrong path. There was an endless polemic when I was a kid that starting programming with BASIC vs Pascal was disabling kids. I think that Scratch is nowadays' BASIC!




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: