The biggest anecdote I'd share is that learning to code as early as 1st grade unexpectedly led to children taking the ability to troubleshoot problems and using it across all their subjects in school. They started to treat struggles in other classes as debugging assignments: "What went wrong? What do I need to fix?" Their entire attitude changed from pass/fail into optimization. It has led to academic improvements across entire school districts, which was not at all expected but was a delightful surprise.
So the question posed seems fairly irrelevant to me. Maybe some of those kids grew up to be coders, maybe they did not. Either way, it helped their education.
This sounds amazing! Is there anything more you can share about this? Or any articles/papers about the results or how you supported kids to progress with Scratch?
I'm an American that took a C++ class in Europe when I was 13 (forward thinking school in retrospect). But when asked, I usually say scripting RS bots was what got me into the field, because I had fun and it was more memorable.
But would I have chosen to do that had I no idea what coding was? Maybe not...
I had a trash-80 in the early 80s and used to copy BASIC from magazines, and then in the mid 90s I bought a book with a CD in it that taught me how to set up perl-based e-commerce store, which I set up for my mom's retail shop. Neither of those got me interested in programming.
The event in my life that got me there was around 2000, when I bought a Cold Fusion 4 book off of a street vendor - literally on Wall Street - and I spent my evenings building an intranet that replaced the Access database that my company shipped and merged across the country every Friday.
That's when I got hooked, and started building my career (and hobby).
Not sure if something like Scratch would have gotten me there (LOGO definitely didn't) - but I imagine the level of comfort I had with computers at a young age kept me in the vicinity that eventually got me there.
For me it was a TI 99/4a and typing in code got me completely hooked on programming. Whether it was a game, a 4 bit cpu simulator of some sort (memories are vague) or a word search solver didn’t matter. It all felt magical.
Logo did nothing for me. It never gave me that sense of satisfaction that I got from writing in basic or assembly.
Really have me wondering now.
That is, the true “origin” isn’t worth much — the origin of interest is whatever kicked off the feedback loop of joy —> learning —> joy (in my own case, it was learning djikstra’s algorithm)
The actual programming was always a means to that gaming end back then and not the end in itself. So in that sense I can completely relate to where you're coming from.
Over a couple years of that, it started to dawn on me that the programming itself had a power and interest all its own worth pursuing.
But I think if it was dropped in front of me as something I ought to do, no matter how dressed up in "fun" it was, it would have set off my non-conformist predispositions a little too much.
feels to me not that different. just that the targets are no longer games but other kinds of applications.
Great point. How many professional sports players credit their elementary aged PE classes to their success in sport (as opposed to say crediting a high school coach)?
Progressive, unbridled access and exposure is key.
I introduced him to scratch the other month. I have loved his excitement when he builds the simplest things. I've seen him run into problems where I thought his attitude of 'it's too hard' would come to the surface. He tackled them head on, figured out where the bug was and supplied a fix.
I hope he has a fulfilling career in CS or sciences in general. So I sincerely hope scratch and this experience builds up his confidence and beak the cycle of poverty and drug abuse
What's missing in a lot of these discussions about Scratch efficacy is the community aspect. Kids like getting a response in the comments section from their peers and many of the alternatives proposed don't have that. Without an active community, a lot of kids might never use the alternative despite being "better". In the case of Scratch (unlike Khan academy, which he completed also), he keeps using it, keeps trying things and keeps coming back because of the rewarding community interactions.
I think it is a decent programming paradigm but really just teach 6502 binary code entered by flipping switches and blinking lights and let only the children who love it go on to learn programming and computer science.
A while back, I powered up an Atari 800, and she was fascinated.
10 Input "What's your name?", N$
20 Print "Hi, ";N$
She was asking questions, trying out things. Something about that simple, imperative, dynamic type of language connects in ways that most conceptually purer and more powerful languages just do not. Python was close, but then it swerved.Before Scratch I think the two biggest barriers in my childhood programming experiments were 1) Remembering all the different syntax and function names, and 2) Being bored by the basic CLI programs that all tutorials started with. Scratch helped with both of those. It had a palette with all possible commands available to you, it was impossible to make syntax errors, and it was visually-oriented so I could dive right into making games. Lowering those barriers helped me learn how to structure code in a fun way, so when I did eventually go back to the "real" languages I felt much less lost.
I also remember really loving the social features, getting comments on my work, and collaborating with people.
I'd love to see more experimentation in this area, there's definitely potential for a more modernized educational language that builds on these ideas.
My hobby projects are almost always video games to this day, partially because of it. I even built my first compiler/interpreter on there before I knew what those words meant, and got exposed to lots of math that I otherwise wouldn't have seen until high school. Being able to easily discover what others were doing, and learn from their projects, helped me out a lot.
It will always be special to me, as I'm sure BASIC and such are to others.
"eventually id Tech 5 is going to be open source also. This is still the law of the land at id"[0]
"Great! I think Microsoft has been a good parent company for gaming IPs"[1]
[0] https://web.archive.org/web/20081003111457/http://www.linuxg...
Truth is you are either going to be interested in programming.. or not. The question is how the brain triggers to get you interested.
I could argue the starting point (for me) was Visual Studio 6.0. (1998)
Or.. maybe.. it was Turbo Pascal and Turbo C. (1997)
Or.. maybe.. it was Quake and QuakeC. (1997)
Or.. maybe.. it was the Open University books laying around. (1995)
Or.. maybe.. it was watching DooM for the first time. (1993)
Or.. maybe.. it was playing the Amiga at my friends house (1991)
Or.. maybe.. it was playing the Amstrad at my friends house (1989-1990)
Or.. maybe.. it was the BBC Microcomputer I never got to touch in school. I saw others using it, though. (1988?)
Or.. maybe.. it was watching a zx spectrum advert around 1985. A little toddler pointing at the screen and expressing his interest to Mum. I loved that advert (and actually came across it again recently on YT) -- is this the REAL starting point?
Point is... Scratch is likely a great starting point for kids today. For some they might move to Python or something and forgetting where they started. Like me, they probably had other things before Scratch that peaked their interest.
"I wonder how they made 'X'"
- Student A started with Scratch, but within 2-3 lessons I convinced his mother to switch him over to Python. He wasn’t my best student, but he was very open to trying things and had a fun time coding. Plus it was really great to see him go from zero to competent within a short period of time. Personally I think it’s 50/50 that he continues coding on his own, but I hope the skills I taught him (not the exact syntax) will stick with in some form or another
- Student J is far more interesting to me as he’s not interested in making games or coding. Rather, he prefers making animations and really likes the Scratch interface. While his animations aren’t the highest quality stuff I’ve come across, I really admire his attitude of making one animation per lesson and trying all kinds of stuff vs sticking to just one thing.
Personally I think scratch is a decent start for teaching kids to code, but I wouldn’t recommend it for that purpose. If you want to teach your kids to code, I think it’s best to start with a “real” language. That said, I think it’s a very good introduction for animation and graphical projects without all the complexity of a game engine.
What I found irritating in the post is the premise that what we put in front of kids should be judged by counts of attributions to career success.
I think picture books are not the same as Scratch. Scratch is much farther along that process. An equivalent might be comic books or graphic novels, which people actually do attribute a love of either as an introduction to fulfilling careers.
Same distance, from A to B to C. Thanks for wasting all of our time with you comment.
Basic HTML class -> Scratch Android dev -> Java course that used Lego Mindstorms -> Exploring Minecraft mods in free time -> Realized I don't really like Java
I have mixed feelings about Scratch but it does engage children more than most other tools out there and I suspect its value isn't so much for the children who would have become programmers come what may, but in terms of increasing a baseline understanding of some programming concepts in the more general population and helping some children discover they enjoy programming who never would have done otherwise.
My son started on Scratch, then Minecraft, and 15 years later he's working on designing jigs in parametric CAD for space lasers. I'm sure he'll be fine.
This was when Scratch was still a downloaded program. The community was also really encouraging back then - you'd see adults and kids commenting on new projects and cheering people on, remixing, and sharing knowledge.
I started on Scratch when I was 7 years old, and although I'm not mainly going into programming, I'm very passionate about IT infrastructure and cybersecurity. I absolutely credit Scratch for my interest in computers and systems. I'm one year away from graduating college in IT and am currently working in IT. https://dreamstation.systems/professional/
Feel free to ask me anything
By now he’s moved on to textual languages (not yet old enough for a career), but Scratch was engaging and gave him a good start.
FWIW, it's not exactly a new phenomenon. Two decades before Scratch, many schools were using Logo to teach kids programming, probably with similar success rates. Stuff like that is probably good even if it doesn't lead to a STEM "success story". It makes kids actively participate instead of scrolling Tiktok all day.
I would never credit my Visual Basic class in middle school for my career but it did introduce me to a lot of things I didn’t know about before, and certainly wasn’t a net negative.
And yet every F1 driver credits gokarting for their career. Laying the groundwork in your early years makes a big difference. My career would be very different without Logo and Turbo Pascal
Whether a kid is going to take to programming or not is pretty unlikely to change based on whether they're introduced to a block-based or text-based language, or whether it's object oriented or functional (the push for objects-first has mostly died off, but I still see remnants of it in various curricula).
If it's got a few basics like conditionals, iteration, structured grammar, etc. it will be plenty to give students the flavor of what programming is about.
The better criteria, in my mind, are "does it allow you to make/do something interesting?" and "how easily does it lead into the next level of learning?".
Growing up, that meant Flash and Java.
Still not sure why we decided to make the internet stop being awesome.
The issue was always the barrier to entry and ability to self-teach for real-world programming seemed so high as a kid, especially when you had nobody around you to even point you in the right direction. It seems so obvious now but I'm certain back then googling things was not as useful as it is now, you couldn't just stumble your way into a programming environment.
Has [early] Scratch [experience] [led to] [fulfilling] [careers]?
All those modifiers create so much leeway that answering the question can be no more than a parlor game. How early? What kind of experience? By led, do we mean direct causality? What is fulfilling? Is a job a career?
Teaching is lighting tinder in various stages of dryness and hoping that it smolders for long enough that you can add fuel to the fire and get something going. In the right environment, it doesn't matter how you light it. Scratch, card games, helping grandma with recipes, does it really matter?
(He also teaches elementary schoolers Scratch at a Coder School location, and they seem to like it.)
The visual game-building aspect is an immediate draw, of course, but I also think the block-based approach is a great analogue to building things with Lego. It just clicks for some kids. It is also fairly representative of most coding, in the sense you assemble "blocks" comprising commands / statements / function calls in a particular order based on the shapes of their inputs and ouputs to build a larger structure.
One thing my kids struggled a bit with was going from the event-based nature of Scratch to the more linear nature of Python, along with the concept of scopes. It led to some form of "magical" thinking where they assumed e.g. a function / variable would be reachable based just on its signature / type. But other than that most concepts transferred over easily enough to conventional languages.
And indeed, who cares if Scratch leads to a fulfilling career? "Computer literacy" is even more important these days—understanding what goes on behind the curtain. Scratch (and a whole lot of other things) show children that it's not magic—it's just a machine following instructions.
(Never mind whether software engineering can be described as fulfilling.
"The paramedic thinks I'm clever because I play guitar,
I think she's clever because she stops people dying."
Courtney Barnett— )
How responsible was fiddling with vbulletin/phpbb forum plugins in my eventual career, one of the first things I remember doing and for quite a long time?
I have no idea, and it was just one of the various things I did as a noob, none of them with an impact particularly memorable. There were a bunch of nodes in a daisy chain of things I tried out, and over time I could take on bigger and bigger projects with fewer and fewer rails.
That being said, I use scratch to teach my kids programming. While computers are only a small piece of STEM, I think the zero marginal cost nature of it which allows unbounded trial and error is an amazing learning tool.
Yeah its not exactly predictable.
I know very few people in my high school who even attempted technology careers, and all of them from my year who tried, other than myself and one other, went in with scholarships. And all of them, left when the scholarship money ended. Its literally the 2 of us out of 6, and we are the 2 who werent funded by scholarships.
And one of the blokes who bailed was consistently turning in better quality coding assignments, and also had access to a pre uni IT pathway, and was studying for it. He just got bored and wandered off when no one wanted to finance it anymore (and this is australia, where full time students of that age are already eligible for money)
Logo was a Programming Language, not a blunt-edged primary-colored disposable plastic blinkenlight.
You wire them up to something else then blow their mind by programming an ESP32 to be a switch with a touchscreen.
My mom did a great job making sure I always had a computer but she didn't know enough about them to help.
Elementary school put us in front of them and taught us how to type and let us play oregon trail and print shop, but that wasn't it. And my high school has us programming in Pascal. Meh.
When I was in my 20s, in a new city, working to pay my own way I found the determination needed to teach myself. It absolutely helped that the internet was becoming this wealth of information for the self-taught. That was my launch pad. I definitely think everything else helped get me there
What's different is that I found the journey can be just as interesting and engaging as the destination. I read papers, books, and even spend time around here... not because the solutions require it, but because I care about the craft and the process itself.
So yes, the resulting solution is the prime mover, but the process of finding the solutions is no longer just a means to the end, it's part of the motivation of being involved in the profession at all.
“Why??!” doesn’t come in a bottle, and that’s the X factor here.
For a start, that's effectively the premise it's sold on. And for another thing, if it's not contributing to the kind of thinking that would help with that job, what is it other than another esoteric game?
In my experience it’s designed around a make/build/experiment pedagogical approach, not as a bootcamp system to get kids into programming careers
But yeah we push out a lot of engineers, just mostly Mining, Electrical, Structural. Much fewer software engineers.
I didn't even get a computer I could mess with until I was like 15. We had a family pc for maybe 6 months in the 90s and I played like, magic school bus, lol.
I really started programming in HS when someone showed me what a function was, that was an epiphany moment. Before that I just liked to build computers and servers; I was hosting HTML sites from our house in 7th grade I think? But still not programming.
I also wish I listed to some rando telling me the money was in C++. I did PHP for too long.
There is so much software all around us these days, any curious kid who's interest is piqued by it will find a way in to the hobby and maybe to a career.
There was a period where having a computer in a classroom was a big deal because it might be a kids only exposure to one but that's not the case today (not everywhere, I know). Kids pursue their interests if they can and software is very easily pursuable these days.
The benefit of kids learning coding isn’t the language or system. It’s about them learning abstract thought and problem solving. It also introduces them to the concepts of variables, loops, etc. If you can do that in an engaging and enjoyable way you’ve won half the battle already.
https://www.blockscad3d.com/editor/
to rough out designs as well as simple algorithms for OpenSCAD and ultimately, PythonSCAD for my current project:
> people who started with computers by typing "in basic from magazines."
I recall "typing in" Palo Alto Tiny Basic from Dr. Dobbs,in 8080 assembly code.
Unless I wrote or typed in code to read a paper tape of said code that I got from who knows where, but not from a dumpster.
Or both.
I'm legit baffled by his creativity and clever visual jokes.
I am trying to get my son to learn Python using Carol Vorderman's book.
It was quite excellent, along with stuff like Clik n' Play. Basically "event driven" + "blocks so you can't have syntax errors and other silliness" was very good for me.
So maybe his Scratch experience will result in a fulfilling career far from high tech :)
I wonder what the best modern equivalent would be? Perhaps web/JS is easy enough to get into these days?
https://scratch.mit.edu/projects/1374719935
He started using it when he was 9 and hasn't complained about it being too limited yet.
On the contrary: Whenever I show him environments like Godot or GameMaker he's instantly repelled by how complex everything is. I guess there's nothing quite like Scratch because it's easy yet powerful enough and everything is built-in (code editor, graphics editor, audio editor).