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

This is a great project but I can't help say it: I don't like Scratch (and similar block-based languages). They are limited, in some cases by design (e.g. opening files in Scratch) but usually by their very nature. I very much prefer the safety wheel way of learning to ride a bike: use the real thing with addons until you don't need them.

Maybe I'm wrong, any thoughts from people who worked with kids? I can give anecdotal evidence from my son (had no problems with Python or CHIP-8) but that's a sample size of 1.




I've worked with kids from elementary to high school age. One of the obstacles for getting nearly any kid into coding is conditioning their response to things like syntax errors and the other obtuse-looking things compilers and interpreters like to spit out.

For example, a kid can spend an hour adding a tree of dialogue to their text-based dungeon crawler, only to get a compilation error they've never seen before. They might have forgotten a curly brace somewhere and I'll help them find it, then they give it another go only to find out they forgot a semicolon or misspelled a variable name. That series of events can be pretty demoralizing, and it takes some coaching to get them through.

The above is obviously a teachable moment to test early and often, but the point is kids often lose motivation in the face of errors they don't yet know how to interpret. On the other hand, kids get really interested when they can see the fruits of their labor come to life, which can happen without a lot of friction in Scratch.

So to give students a taste for that success without the slog through syntax errors and stuff, things like Scratch are fantastic. Especially for younger kids where attention span and getting bored or disinterested come more easily. We quickly move on to real languages, though, and the concepts they picked up in Scratch are easily portable to Python or whatever else.


In my experience, kids recognize the brightly-colored sanitized tools as "not real" programming. The moment they hit the overwhelming UI or unfriendly error messages of many environments, they feel under-prepared for "real" programming and take a hit to their confidence.

I tentatively agree with them. If I can take a stab at what "real" programming is, it's when you can't expect everything to just work out of the box. You can screw it up in unexpected ways. Sure, that's demoralizing. But you either win or you learn, and I wonder if winning too much, too early prevents cultivating the mental ruggedness it takes to really program.


When I learned to program (I was ~13 years old) using Small Basic I had no issues whatsoever with the errors the interpreter gave me, even though they weren't even in my native language. It was pretty obvious to me that I had committed a mistake at some point of my code.

For kids younger than that, maybe it's better to learn scratch, but I wouldn't trade Small Basic, it's a great language to learn, the only bad thing is that it's made by Microsoft and only runs on Windows.


Yeah, in my experience teenagers (especially those that are highly self-motivated) can see stack traces and stuff as just another part of the puzzle. It's the younger and less motivated kids that tend to get frustrated.

Edit: I'll also point out this:

> It was pretty obvious to me that I had committed a mistake at some point of my code.

How a student handles this is also often a sticking point. "Oh no, another error, I'm bad at this, maybe this isn't for me." Is an attitude that I've had to turn around. It goes a long way to convince a kid that it's actually the computer's fault because it isn't smart enough to understand what you're trying to tell it. So you have to be really specific in how you write to it. Then suddenly error messages are informative clues on the way to making your program work, rather than the computer scolding you for being a bad coder.


I taught years 3 - 6 kids scratch for about 3 months. While I wouldn't say that Scratch taught them how to code, what it did do was teach them two things: thinking like a coder, and to be excited about coding.

Critical thinking and problem solving is something that seems like it's slowly fading away in modern education. So much of it is pure memorization for fill-in-the-bubble style tests. Letting kids at an early age tackle a problem that requires them to use separate steps and pieces of logic to complete seemed very developmental to me. Even over that short time span I noticed a huge difference in the mentality of how the kids approached problems after the course was finished.

As far as being excited about coding, I can't say just how important this is. Especially at a young age, as long as they feel like they have the capability to use the tools, almost 95% of the students I taught were fully engaged in playing with Scratch. I've taught adults js for a while now, and I usually get about a 30% engagement in any course, so those numbers were crazy to me. The problem though is when they get stuck, it has to be intuitive enough for them to figure out how to solve without being able to pour through stackoverflow posts. Kids don't use SO, they use Youtube to figure things out. Youtube had great scratch tutorials for them to follow, and so it was easy for them to get past things in a way they were comfortable with.

Overall while I think it isn't something that should be invested in heavily by kids, it's a great lauchpad to get them excited for coding in general. I see it as something akin to lego - it's there to fuel creativity and interest, not necessarily to replace architecture or engineering.


Well, my sample size is also one: myself.

I wouldn't say that Scratch was my gateway to programming, but I played with it a lot in my early teens. In my opinion Scratch is very good, for the following reason:

Programming is about achieving something by abusing the tools you have, right? (This is not all of programming, but I would say it's ~86% of it. You might call it technical sophistication). And for that, Scratch is wonderfull. The tools are colorful, easy to understand and while there are a lot, it's limited in size. You're learning the soft skills of programming with a lot more fun.

What about the limitation? In scratch, you will explore the borders yourself and will have much easier time to understand why the solutions which exist in other languages are usefull ("Oh, finally I can automatically spawn a lot of the same object in")

Limited, of course, to my own expierience...


It depends on the age of the kid and the sophistication of the teacher. So for a 6 year old with a basic computer or tablet with parents who don't code for a living (aka the VAST majority) Scratch is fantastic.

No IDE to set-up, no installation, simple interface, tons of kid based examples, highly WYSIWYG, speed to first output etc...

I think we techies forget how much patience it takes to just get an environment up and running.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

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

Search: