I think it's the same story as with Snap Circuits for learning electronics, or baking soda + citric acid "chemistry sets". Many parents really wanted their kids to get a STEM career, and so we lowered the bar to the point where STEM-shaped educational activities are accessible to any kid. But because there's no bar to entry, playing with these toys doesn't really translate into motivation to really learn electronics, programming, or something like that. That motivation still manifests only in a small percentage of kids.
But 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. And stuff like that is probably good even if it doesn't lead to a STEM "success story". It keeps kids exploring instead of constantly scrolling Tiktok or playing Fortnite.
I was a naysayer before I had kids, too. I now am able to get a first person view of Scratch usage through my child who likes the platform very much.
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 loved Scratch as a kid and got really deep into it. Not sure if I could call myself a "success story" but it did get me much more comfortable with programming!
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.
It's not always your first exposure that you later identify as a catalyst.
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...
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 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.
I always love hearing from other people who started with computers by typing in basic from magazines.
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.
This really made me think about what got me interested in programming and I have no idea. In HS, I had a Physics teacher who had a TRS-80 (Model 3, I think) and he would let us use it during Lunch for whatever. But I was already interested at that point. We had a "programming" class where we programmed some kind of computer in some unknown language, but again, I was already interested in programming before then: that was just the outlet.
I feel like the baseline teaching is trivially necessary, and should simply be assumed in these kinds of assessments. Getting someone to invest themselves emotionally into a subject is both infinitely harder and valuable, and should always be the focal point.
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)
I very first got into programming by trying to fix a graphic adventure game that somehow was released with a pretty clear syntax error. This was back in the VIC-20 days. Really, for the first while it was about the games ... tweaking them, altering them, and later writing them.
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.
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.
Ive been volunteering with a foster kid for a number of years now (8 -> 10 year old) . We would build robotic kits, Lego and work through origami books. If problems came up, most of time he would say 'it's too hard' and give up.
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
Where are you likely to hear a "Success Story" especially an adult who likely moved on from Scratch since they were... what.. 10 years old. Perhaps younger.
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.
My kid is 13 now and has been creating Scratch games since the pandemic, he's set to be a game designer/developer as a career: https://gamejolt.com/@S10_Studio
I'm legit baffled by his creativity and clever visual jokes.
I can say it has for me. I spent a couple years on scratch as a kid before moving on to other languages, and it helped me really get into programming.
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.
Scratch's problem is ecosystem. It develops UX for children who are still early to the keyboard but children learn so fast, and at some point they get past the high friction stage and end up in a desert.
I still see picture books as an introductory path to literacy for kids, but unlike posting fan fiction on AO3, I have never heard a “success story”, where someone credits their early experience with picture books as key to a fulfilling career. Anyone?
Dolly Parton's Imagination Library project had to have had some justification.
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.
The snarky analogy doesn’t really really work because plenty of people actually do credit video games for their successful career, myself included. Thanks, Roblox.
And plenty of great authors start with fanfic. Like actually. But apologies the snark landed that way. I was not intending to diminish people learning via game modding at all.
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.
> 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.
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?
I still see mashed peas as an introductory path to solid food for kids, but unlike attending Montessori schools, I have never seen a "success story", where someone credits their early experience with avant-garde curriculum as a key to a fulfilling career. Anyone?
Same distance, from A to B to C. Thanks for wasting all of our time with you comment.
The absurdity is the point. Comparing the merits of scratch vs game modding in children’s eventual programming career success is such a silly overly serious adult thing to do. If kids experience fun and exploration while learning along the way, that’s what matters.
My kids are learning on Scratch. 10 and 9 years old, been doing it for a few years at this point. The older one has had the opportunity to switch to Python but keeps going back to Scratch. He can make less trivial things than I used to make with Mark Overmars' GameMaker when I was a teen, and I'm now a C++ developer. So it would seem like a high possibility. He's done pathfinding algorithms, raycasting, file loading/saving, etc. The other kid likes it for creating artwork.
For my tutoring job one of the things I teach is Scratch but I do so very rarely (most of my lessons are for Python). So far, I’ve had two Scratch students that have stuck out to me:
- 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.
I spent my childhood using crappy 4K versions of BASIC. Love my career. Still get to do everything from embedded nonsense to database architecture.
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.
Yes, I credit Scratch as leading to my fulfilling career. I made so many games and simulations! Spending hours over the summer creating operating systems, animations, puzzles, and so on.
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.
Most students (90%+) in the CS program I teach at have used scratch as their first language and went on to have a good career. Whenever I ask they have great things to say about Scratch and how it fueled their love for programming.
This is like asking if anyone in the Tour de France has credited training wheels for their success.
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.
More apt than you intended. Training wheels actually make it harder to learn how to ride a bike. I think this is what Carmack is implying about Scratch. I'm sure he would rate VB much higher than Scratch as an intro to programming.
> This is like asking if anyone in the Tour de France has credited training wheels for their success.
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
More like asking if anyone in the Tour de France has credited a win to early use ofone of those little Fred Flinstone-style kiddie cars where they use their feet on the ground for locomotion.
Too soon to tell if it'll lead to "fulfilling careers" but both my kids learnt Scratch very early on, in the 2nd grade or so, and found they had a knack for programming. Based on that I prodded them to dabble in Python. Now in high school, at least the older one is already planning a career in software engineering.
(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.
"Too soon to tell if it'll lead to "fulfilling careers" but both my kids learnt Scratch very early on…"
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."
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?
Before scratch was popular I was heavily into Game Maker as a teenager (2006-2009). Didn't pick up actual programming again until I got to university and did some Matlab as a part of a math unit which triggered a major shift into CompSci.
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.
I think there's a misplaced focus on "first" experiences being optimal in some way.
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?".
I programmed in Basic some as a kid but it was programming a MUSH (Amber-MUSH) in grad school that got me hooked and changed career course to programming. Made some great friends too.
My niece made what was (I thought) a pretty impressive scratch game when she was 12 or 13. But now several years later she doesn't seem to have much interest in programming. She is thinking of going into nursing or some related healthcare area in college. I haven't encouraged her with programming, because I think its a dead career - I myself have a CS degree and can no longer earn income from it.
I loved scratch in seventh grade and now I’m a principal software engineer a few years out of college, but I think correlating the two would be problematic
Learning to code isn’t really the point of Scratch. But it does have lasting effects on those who immerse themselves in it, and especially when they immerse themselves in the community. Hear from some of them on the podcast out of the group that created Scratch: https://youtu.be/5h709icMHt4
When I was at school I never really saw the tools intended to get kids interested in CS work out. In fact, many of my classmates began to hate programming because of the Python coursework we had to do. (terrible language choice for classes by the way, because beginners don’t understand how to indent their code and Python is unforgiving in this regard.)
My kids grew up on Scratch and still occasionally play games there. It was a nice way to casually introduce them to programming concepts. My oldest is now 16 and an active member of Hack Club, so I'd say Scratch is one of the activities that may have given him the itch.
Introduced my son to Scratch yonks ago. He found the graphics editor and dove in - he never developed any interest in programming, and now he’s third year in law school.
So maybe his Scratch experience will result in a fulfilling career far from high tech :)
My similar correlation question is with Minecraft. I know multiple people, myself included, who credit Minecraft with starting their career in computing. Would be interesting to hear how many people would credit Minecraft as their start.
I personally find that Scratch has very limited utility because kids can start to code in a "real" programming language pretty early on, by like 11 or 12. Would it make a difference in outcome had they started even earlier? I doubt it.
Is there any language designed to be robust in the face of typos? That seems like it would be a pretty big pain point for young coders. I suppose Basic is pretty good in that regard.
I used the lego mindstorms environment (scratch-based) way back.
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.
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).
I had never heard of scratch before but I find this line of thought generally backwards. Maybe that's what carmack is getting at but it seems to me that early "exposure" doesn't really matter as much as people want it to.
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.
I think it's the same story as with Snap Circuits for learning electronics, or baking soda + citric acid "chemistry sets". Many parents really wanted their kids to get a STEM career, and so we lowered the bar to the point where STEM-shaped educational activities are accessible to any kid. But because there's no bar to entry, playing with these toys doesn't really translate into motivation to really learn electronics, programming, or something like that. That motivation still manifests only in a small percentage of kids.
But 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. And stuff like that is probably good even if it doesn't lead to a STEM "success story". It keeps kids exploring instead of constantly scrolling Tiktok or playing Fortnite.
I was a naysayer before I had kids, too. I now am able to get a first person view of Scratch usage through my child who likes the platform very much.
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 loved Scratch as a kid and got really deep into it. Not sure if I could call myself a "success story" but it did get me much more comfortable with programming!
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.
It's not always your first exposure that you later identify as a catalyst.
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...
> not always your first exposure
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.
Absolutely agreed.
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.
I always love hearing from other people who started with computers by typing in basic from magazines.
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.
This really made me think about what got me interested in programming and I have no idea. In HS, I had a Physics teacher who had a TRS-80 (Model 3, I think) and he would let us use it during Lunch for whatever. But I was already interested at that point. We had a "programming" class where we programmed some kind of computer in some unknown language, but again, I was already interested in programming before then: that was just the outlet.
Really have me wondering now.
I feel like the baseline teaching is trivially necessary, and should simply be assumed in these kinds of assessments. Getting someone to invest themselves emotionally into a subject is both infinitely harder and valuable, and should always be the focal point.
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)
I very first got into programming by trying to fix a graphic adventure game that somehow was released with a pretty clear syntax error. This was back in the VIC-20 days. Really, for the first while it was about the games ... tweaking them, altering them, and later writing them.
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.
but even today, don't you write code to solve a problem? to fix a bug in an application? to achieve something?
feels to me not that different. just that the targets are no longer games but other kinds of applications.
Of course. But still it's not the same.
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.
Ive been volunteering with a foster kid for a number of years now (8 -> 10 year old) . We would build robotic kits, Lego and work through origami books. If problems came up, most of time he would say 'it's too hard' and give up.
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
Where are you likely to hear a "Success Story" especially an adult who likely moved on from Scratch since they were... what.. 10 years old. Perhaps younger.
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'"
My kid is 13 now and has been creating Scratch games since the pandemic, he's set to be a game designer/developer as a career: https://gamejolt.com/@S10_Studio
I'm legit baffled by his creativity and clever visual jokes.
I understand why people value the code John Carmack has released but I do not understand why people value his public statements.
"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...
[1] https://x.com/ID_AA_Carmack/status/1308069857913720832
He's been clearly corrupted by money, long ago.
I can say it has for me. I spent a couple years on scratch as a kid before moving on to other languages, and it helped me really get into programming.
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.
Scratch's problem is ecosystem. It develops UX for children who are still early to the keyboard but children learn so fast, and at some point they get past the high friction stage and end up in a desert.
I still see picture books as an introductory path to literacy for kids, but unlike posting fan fiction on AO3, I have never heard a “success story”, where someone credits their early experience with picture books as key to a fulfilling career. Anyone?
Dolly Parton's Imagination Library project had to have had some justification.
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.
The snarky analogy doesn’t really really work because plenty of people actually do credit video games for their successful career, myself included. Thanks, Roblox.
I'm guessing that Roblox will be responsible for more people learning programming than essentially any other single entity
And plenty of great authors start with fanfic. Like actually. But apologies the snark landed that way. I was not intending to diminish people learning via game modding at all.
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.
> 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.
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?
There are many things that no one will think to later attribute to “career success” that were in fact foundational to their learning and development.
In my experience it’s designed around a make/build/experiment pedagogical approach, not as a bootcamp system to get kids into programming careers
I still see mashed peas as an introductory path to solid food for kids, but unlike attending Montessori schools, I have never seen a "success story", where someone credits their early experience with avant-garde curriculum as a key to a fulfilling career. Anyone?
Same distance, from A to B to C. Thanks for wasting all of our time with you comment.
The absurdity is the point. Comparing the merits of scratch vs game modding in children’s eventual programming career success is such a silly overly serious adult thing to do. If kids experience fun and exploration while learning along the way, that’s what matters.
My kids are learning on Scratch. 10 and 9 years old, been doing it for a few years at this point. The older one has had the opportunity to switch to Python but keeps going back to Scratch. He can make less trivial things than I used to make with Mark Overmars' GameMaker when I was a teen, and I'm now a C++ developer. So it would seem like a high possibility. He's done pathfinding algorithms, raycasting, file loading/saving, etc. The other kid likes it for creating artwork.
For my tutoring job one of the things I teach is Scratch but I do so very rarely (most of my lessons are for Python). So far, I’ve had two Scratch students that have stuck out to me:
- 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.
I spent my childhood using crappy 4K versions of BASIC. Love my career. Still get to do everything from embedded nonsense to database architecture.
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.
I was housemates with a couple with a kid. The kid learned Scratch first, and made some surprisingly sophisticated apps in that semester (or two).
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.
n=1, I started programming with Scratch and it led to my software-adjacent career today.
Yes, I credit Scratch as leading to my fulfilling career. I made so many games and simulations! Spending hours over the summer creating operating systems, animations, puzzles, and so on.
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.
Most students (90%+) in the CS program I teach at have used scratch as their first language and went on to have a good career. Whenever I ask they have great things to say about Scratch and how it fueled their love for programming.
This is like asking if anyone in the Tour de France has credited training wheels for their success.
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.
More apt than you intended. Training wheels actually make it harder to learn how to ride a bike. I think this is what Carmack is implying about Scratch. I'm sure he would rate VB much higher than Scratch as an intro to programming.
> This is like asking if anyone in the Tour de France has credited training wheels for their success.
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
More like asking if anyone in the Tour de France has credited a win to early use ofone of those little Fred Flinstone-style kiddie cars where they use their feet on the ground for locomotion.
Too soon to tell if it'll lead to "fulfilling careers" but both my kids learnt Scratch very early on, in the 2nd grade or so, and found they had a knack for programming. Based on that I prodded them to dabble in Python. Now in high school, at least the older one is already planning a career in software engineering.
(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.
"Too soon to tell if it'll lead to "fulfilling careers" but both my kids learnt Scratch very early on…"
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— )
Parse the question more closely:
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?
Before scratch was popular I was heavily into Game Maker as a teenager (2006-2009). Didn't pick up actual programming again until I got to university and did some Matlab as a part of a math unit which triggered a major shift into CompSci.
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.
I think there's a misplaced focus on "first" experiences being optimal in some way.
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?".
For me the criterion was "is it awesome?"
Growing up, that meant Flash and Java.
Still not sure why we decided to make the internet stop being awesome.
I programmed in Basic some as a kid but it was programming a MUSH (Amber-MUSH) in grad school that got me hooked and changed career course to programming. Made some great friends too.
I dunno about fulfilling career, but I have to admit that I often use BlockSCAD:
https://www.blockscad3d.com/editor/
to rough out designs as well as simple algorithms for OpenSCAD and ultimately, PythonSCAD for my current project:
https://github.com/WillAdams/gcodepreview
My niece made what was (I thought) a pretty impressive scratch game when she was 12 or 13. But now several years later she doesn't seem to have much interest in programming. She is thinking of going into nursing or some related healthcare area in college. I haven't encouraged her with programming, because I think its a dead career - I myself have a CS degree and can no longer earn income from it.
I loved scratch in seventh grade and now I’m a principal software engineer a few years out of college, but I think correlating the two would be problematic
Learning to code isn’t really the point of Scratch. But it does have lasting effects on those who immerse themselves in it, and especially when they immerse themselves in the community. Hear from some of them on the podcast out of the group that created Scratch: https://youtu.be/5h709icMHt4
When I was at school I never really saw the tools intended to get kids interested in CS work out. In fact, many of my classmates began to hate programming because of the Python coursework we had to do. (terrible language choice for classes by the way, because beginners don’t understand how to indent their code and Python is unforgiving in this regard.)
My kids grew up on Scratch and still occasionally play games there. It was a nice way to casually introduce them to programming concepts. My oldest is now 16 and an active member of Hack Club, so I'd say Scratch is one of the activities that may have given him the itch.
Introduced my son to Scratch yonks ago. He found the graphics editor and dove in - he never developed any interest in programming, and now he’s third year in law school.
So maybe his Scratch experience will result in a fulfilling career far from high tech :)
My similar correlation question is with Minecraft. I know multiple people, myself included, who credit Minecraft with starting their career in computing. Would be interesting to hear how many people would credit Minecraft as their start.
I personally find that Scratch has very limited utility because kids can start to code in a "real" programming language pretty early on, by like 11 or 12. Would it make a difference in outcome had they started even earlier? I doubt it.
Is there any language designed to be robust in the face of typos? That seems like it would be a pretty big pain point for young coders. I suppose Basic is pretty good in that regard.
I used scratch in cs50 to make a music platformer. I would say it led me down a career in computing
What's a music platformer?
I don't know about the parent's project, but bit.trip runner immediately comes to mind for me!
I used the lego mindstorms environment (scratch-based) way back.
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.
My son (13) does some pretty advanced stuff with Scratch which often leaves me speechless:
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).
I do however know a lot of successful engineers crediting programming on TI-8* graphing calculators to getting them into programming...
I wonder what the best modern equivalent would be? Perhaps web/JS is easy enough to get into these days?
Yes John I got my first job because a recruiter noticed I had Scratch and Magna-tiles on my resume.
not scratch, but GameMaker visual programming was the first exposure to programming I could understand.
I had never heard of scratch before but I find this line of thought generally backwards. Maybe that's what carmack is getting at but it seems to me that early "exposure" doesn't really matter as much as people want it to.
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.
Too bad this is on Nazi Twitter so I’ll never get to read it.
https://archive.ph/XKLGF