Ask HN: Did any of you first encounter programming through Scratch?

33 points by MarcScott ↗ HN
I'm old enough that my first encounter with programming was though BBC BASIC and LOGO. I'd be interested how many of today's younger programmers had their first experience in coding while using a block based language, and what they're experience was like.

53 comments

[ 4.7 ms ] story [ 84.0 ms ] thread
We did a little Cocoa first, and messed about a bit with html, but basically yeah I did. It was pitched as a fun exercise more than a learning opportunity, but we were bored out of our minds in that class and the teacher had little interest in teaching the material, and it seemed to hit very well with students.
I’ve only seen it from the sidelines, but our 7 y.o. was introduced to it through an activity with Girl Scouts last year.

We went through a number of lessons via a website (which escapes me right more) and she was really into it. So much so, that we ended up downloading Scratch Junior and let her run free with it.

She uses it to make little interactive stories, with movement, audio recordings and the like. It’s pretty neat!

Now, whether that translates into her having more interest: I’m not sure. Her eyes kind of glaze over when she sees a wall of code on my screen when working from home.

—-

Side note: There is a board game called Robot Turtles that is supposedly good at teaching very basic programming concepts to kiddos, but she has had very little interest in ever playing it.

Try web dev or game mods - when I was her age that was what I did and a lot of the joy was making something that I could immediately 'see' worked or not and interact with + that other people could use and talk to me about.
Hah, I’m a web developer myself and that is exactly why I enjoy it so much! Immediate feedback based on what you’re coding. It’s kind of a fun little loop.
It's so true.

I'm working on a project with a friend that's going to involve back end and I was like 'this is BS where's my immediate dopamine I do front-end for a reason'.

yeah scratch, visual basic and swift playgrounds got me into it. Great for piquing interest, especially being able to see projects others built and interact with them.
My brother got me into programming with logo which is like the original turtle. It’s pretty cool. Definitely seared recursion into my mind. And after generating graphics on the cli I felt comfortable to do simple js games
Yup. I wanted to learn programming as a child, but text-based languages scared me.
I believe Minecraft redstone is what first got me into programming, if you don't find that sufficient then Minecraft also got me into Googling how to make a website with HTML/CSS (little me had no clue I needed JS), and eventually trying to make my own Minecraft (and other video games) in Unity using C#. I really owe Minecraft my career haha
Redstone circuitry never quite clicked for me, but it was setting up mods in the earlier Minecraft versions that really got me into tinkering with software
I’m 18 now and I got started with Scratch when I was 8. It teaches you to think logically without requiring you to learn about editors, the command line, interpreters/compilers, syntax, libraries, or the file system. As an eight-year-old I understood some but not much of that. The ability to open Scratch and create 2d games or other programs is probably why I’m successful today.
I'm curious if you remember the first couple of things you saw in Scratch, or what made you think it was cool?

I remember the first computer program I saw was something that printed 'hello' in a continuously-scrolling zig zag pattern on the screen. It was just two FOR loops in BASIC. Something like this:

      10 REPEAT
      20 FOR x = 1 TO 10
      30 PRINT TAB(x,1);"hello"
      60 NEXT x
      70 FOR x = 10 TO 1 STEP -1
      80 PRINT TAB(x,1);"hello"
     110 NEXT x
     120 UNTIL FALSE
That wowed me, and made me want to learn more. I'm not sure what the equivalent would be for a kid that's grown up with an iPad and other devices.
I created a beach scene with a bunch of animals that would either say something or tween to another location on screen and back or both. One of the animals would ask what your name was and then repeat it back to you.

I don’t remember any programs I saw before I got started.

Logo, with the turtle, was my academic intro to programming. I already knew some basic by that time because my mom had bought me a book titled "Kids and the Commadore" IIRC. I tried scratch once when I was like 30 and thought hmm, minecraft and garys mod are more interesting.
Scratch wasn’t my first “encounter” per say, but I did write my first non-trivial program with scratch. Everything else before that was just tinkering.

In high school (2010s) I was familiar with programming from the outside in. I remember knowing that Ruby on Rails was a big thing. I had tried to learn ruby a handful of times and got lost in the process. I was super excited about wine because it helped me play boot leg video games on my old MacBook. I liked to try and read about how wine worked, but it was way over my head.

Enter scratch: the first real program I wrote was a scratch game in a high school computer science class called “glub run”! It was a little Mario like side scroller in which a little green blob (the glub) would run along the and try to get little coins.

It was a lot of work to get it all setup, and definitely went way beyond what was expected of us for the class, but I just had so much fun with it! Building a whole interactive 2d world from just a bunch of linear gui code blocks was mind bending to me. To be honest, the block based gui code was more of a hindrance than a help.

That was pretty much the extent of my time with scratch, we quickly moved to using a canned version of Java with some other little GUI attached. To be honest, it took me a long time to write another program of that same complexity as glub run. Maybe it was my magnum opus.

Why was scratch so great: Reflecting on it now, the best advantage of scratch was that there was no setup involved. You just clicked new and were off and going! (This is what I imagine BASIC was back in the day). Every other programming language had way too much fluff around it that made it really hard to get started. You needed a system for managing dependencies, you needed a system for managing versions of the language, then everyone said you needed all these libraries to go with the language. As a beginner, it was a total non-starter. For the longest time, I didn’t understand where the lines were between the language, the framework, and the tooling. Scratch avoided all of that and let you actually just build a program!

So even though I never returned to it, scratch is where the rubber hit the road for me so to speak! First time I had that feeling that I could actually create something novel with software! Been happily programming for the petter part of the last decade since!

> You just clicked new and were off and going! (This is what I imagine BASIC was back in the day)

Pretty much. Except more so: you turned on your C64 and the BASIC interpreter was right there. No libraries, no dependencies, just you and the machine.

I learned programming through UnrealScript for UE and Lua for SecondLife scripts as a kid, primarily, plus some Visual Basic.
(comment deleted)
I'm 20 now and got started programming with Scratch sometime before I was 10... don't remember exactly when. I completely attribute it to my interest in programming and is the reason I'm now in school completing a computer science degree.

You can actually go into surprising depth with Scratch. For example, I wrote multiplayer game engines using cloud variables to store player position, chat, etc and let people play together live. People have written 3D platforming engines using the "pen" feature, which is like a Python turtle. Hanging out on the "Advanced Topics" forum lead me to hacking with JavaScript and Python, at first to interact with Scratch and then onto bigger things outside of Scratch.

I think that Scratch is really great, if you couldn't tell from my description. Not only is it easy for a kid to get started with a drag-and-drop interface, but you can do so much. It also has a supportive community and it's easy to make friends and collaborate on projects together.

If you want to see Scratch truly at its limits, take a look around Griffpatch's profile: https://scratch.mit.edu/users/griffpatch/

I'm curious how you got started and got hooked?

My son (7yo) likes 'Scratch Jr' (iPad app) but he's mainly using it like a drawing app. He likes to create characters and then animate them a bit. He's not using any of the more advanced features like making one character moved when bumped by another.

I'd like to think he'd enjoy Scratch, but I'm not sure how to introduce it to him in a way that he might find interesting.

Do you recall what the first few things you did were?

Truthfully, I can't remember what my first projects looked like. I started, I created projects using the downloadable Scratch 1.4 application and didn't begin uploading projects to the public website until I was (apparently) already doing complicated things.

Going back to look at my first uploaded project on my first account, I implemented a "programing language" [sic]: https://scratch.mit.edu/projects/10165000/ which is obviously not a beginner's project.

However, what I expect inspired me to create this project and keep creating was exploring the public projects that other users were uploading. For example, scrolling through my projects, I see several "Operating System" simulators that were inspired by others (operating systems were all the rage on Scratch).

Because you can "See Inside" every public Scratch project, it's easy to see something you like (e.g. a game, an animation) and make your own while heavily borrowing ideas and code from others. I was fortunate that my parents allowed me mostly-unrestricted access to a desktop computer where I was able to explore and create on my own.

dnsge, would you be willing to help me carry out some research? Could you please explain in your own words, that is, without doing any searches, what a cloud variable is?

I'm 40, and I started on Commodore Basic, but my son is 11, and he started on Scratch. I'm curious where this will go. :)

Sure: a cloud variable is like a normal variable, but its value is replicated to all people using the project. Perhaps important context for Scratch variables: all variables are global in Scratch.

If person A uses the project and modifies the cloud variable, person B also using the project at the same time will see the new value update in real time.

Related tidbit about cloud variables: When I was on Scratch, there was no effective limit to the size of data stored in the cloud variable (though you were restricted to <= 10 cloud variables per project). Assign a letter to a two-digit number, a -> "01", concatenate the digits for each letter, and store the number into a cloud variable, and you get a simple encoding/decoding scheme for communicating between players in a game.

When enough projects that (ab)used cloud variables for intensive applications like multiplayer came around, I believe that the Scratch Team restricted the amount of data each can store. This change happened as I was no longer using Scratch much, though, so I can't speak much about it.

Thank you! I see now that "cloud variables" are a specific feature of Scratch projects.
C++ for me, but I'm old
C++ was my intro too and I finished high school in 2010
24, started with VBA @ 10. Later, Scratch from 11-~14. Python subsequently
I did, about a decade ago. I remember having lots of fun with it. The block-based approach is nice in that it makes syntax errors impossible. It's easy to see how different pieces can or can't fit together. But one outgrows it relatively quickly, I think.
My son used it and now likes (and works in) Java.

My gf’s two kids were introduced to programming with Scratch. One was utterly frustrated and gave up on it after the course. The other liked the idea of programming and is now taking a Java based class in school.

There’s some hope that the last kid won’t like Java and may be willing to switch to something better, else it’s 0/3 in my opinion.

This is part of the curriculum in France so anyone who is today around 20 would have started with Scratch.

I do not think this left lasting traces in pupils' minds.

Then in high school they are taught Python the worst possible way. Similar on how they teach math or physics.

I love my country but how scientific classes are taught is terrible. There is a sadistic obsession with math (this reminds me the way ducks are fed for foie gras) where they teach completely useless stuff (to a point you cannot imagine) born in the minds of tortured 70 years old ministers.

Physics is the same - "how to choose the worse topics to make you hate physics" was on the bedstand of the ones who invented the curriculum.

My son once told me "dad, I do not know how people whose parents cannot explain this stuff manage to go though". This were the words of a top student of a top HS in France. You can imagine how it is elsewhere.

> My son once told me "dad, I do not know how people whose parents cannot explain this stuff manage to go though". This were the words of a top student of a top HS in France. You can imagine how it is elsewhere.

I'm a bit late to that conversation... If you son was a top student I imagine you managed to keep him interested in spite of the mediocrity of the curriculum? How involved were you during their homework etc.?

I expect average kids with educated and involved parents to succeed anyway in our system, but I'm wondering how bad it has become in the past 20 years. All these reforms and changes of curriculum don't seem to good every time I hear about them.

> If you son was a top student I imagine you managed to keep him interested in spite of the mediocrity of the curriculum? How involved were you during their homework etc.?

> I expect average kids with educated and involved parents to succeed anyway in our system, but I'm wondering how bad it has become in the past 20 years. All these reforms and changes of curriculum don't seem to good every time I hear about them.

The exact case (but the others were similar) was when they were introduced to derivatives in math. The chapter starts by a horribly convoluted definition (even for someone who has a PhD in physics like myself) and the class was lost. Again this is the star class of a top-top-tier high school.

I started with examples from physics that naturally brought the concept of derivative and we ended up with the definition. From that point it was easy to get back to the theoretical math track.

France has a terrible way of teaching science (except for biology). There is a several generations old obsession about mathematics in its purest form. The more abstract, the more orgasmic it looks to the ones who create the curriculum.

There is exactly zero use of this kind of math afterwards - you have engineers who have a hard time approximating (and were taught to not do it because it is not sufficiently precise) or economics students who do not understand the statistics they were force fed.

I hire quite a lot of these and the general feeling is that the school does not matter anymore (the other obsession in France: the Grandes Ecoles - top schools which are supposed to give birth to geniuses) and that the people who did things on their own are way way more interesting for companies than the ones who have a specific diploma.

Just so this does not sound like whining: I myself graduated from such a top school so I am shiitng my own bed somehow.

Finally, a lot of the science taught at school is just boring.

Take the first year of "specialized" physics (2nd year of high school). Exactly everything in the curriculum is made boring or nonsensical. You teach students what are electronics layers (s1, 2s, 2p, ...) but when they ask about details the answer is "nah, you will understand this in your 2nd year of university".

How come someone did not decide to teach mechanics?? This is not only something everyone can relate to, but also perfectly fits with the math curriculum and allows for very interesting and advanced exercises. No - better tell them "Schrodinger equation" and move forward.

I am really mad against this: not only it pushes away young people from science (boring, difficult, ...) but also avoid teaching the important things everyday people will encounter: what a kWh is on their electricity bill, how compound interest works, ... But hey, they will know that the 2p layer follows the 2s one and that homothety is an endormorphism.

I remember having a great time in physics classes in HS doing mechanics. Maths was definitely quite abstract but not as bad as you seem to describe. Maybe it changed or maybe being in a "top school" in which a good portion of the teachers are also agrégés is part of the issue?

The reforms I was referring to are the ones pushing sciences even further away for a good portion of the kids with the earlier specialties.

> I hire quite a lot of these and the general feeling is that the school does not matter anymore

I feel like it's still a good proxy to identify people who are going to have a more mature approach to their field earlier on. But nothing can replace passion I guess.

Ah, so you are French. So the HS is a well-known one which prides itself as incredible. I went there myself and it was a nightmare - despite being top of my class I always felt squeezed in a box.

I was not enthusiastic when my son decided to go there but it turns out that the school, still being full of itself, has changed and the class was great.

It obviously follows the general curriculum but it is outdated compared to what is expected from young graduates. I mentioned the math obsession (and its rigidity, honestly just reading the book makes me yawn - while analysis (calculus) is wonderful in practice), but there is also philosophy which is honestly a scam.

It could be a great opportunity to help people think, but they decided to make it something everyone hates, where the marks depend on the alignment of the planets and where the very last thing that is expected is your own opinion. They want the opinion of others, in a strictly rigid structure.

I love my country but the people who manage the curriculum should be fired on the spot and replaced by the ones who have gone outside the ministry to the real world.

We will never be competitive otherwise.

Yes.

My second language was python. But I just wanted to make cool games, and Python’s graphics were too low-level and verbose (compared to Scratch at least where you get a canvas with 0 code), so I wrote much more in Scratch until later on (my third language was Objective-C and a big part of that was Interface Builder, so I also had “graphics-for-free” there more or less)

I was born after 2,000 and my first language was FMS Logo. Then Java and Python. When I learned about Scratch I hated it.
2000s kid, I first used something similar to LOGO at school, if you can consider that programming. I initially taught myself programming/scripting by writing Windows batch scripts. Scratch was introduced in my teens at school but by then I was far beyond block programming.

I hated Scratch. I saw it as childish and simplistic. I wanted to play with the big boy stuff.

I guess it was my first or second programming language, but it was always clear to me that it was a bit silly, and that I should look into something serious as soon as possible. But I always knew I wanted to do something related to software development. My classmates (must have been age 14--16) weren't really interested. Can't blame them, the teacher wasn't really motivated.
I had the privilege and good fortune to introduce a diverse group of highschoolers to Scratch as an intro to programming around 2013/2014, it was a lot of fun! A few of them seemed pretty hooked and were doing some wild things pretty quickly, I imagine at least a couple pursued it further. Reminded me a bit of like ~2005 Flash community.
Yes, that's me (mid 20s). I learned using Scratch in middle school, made a lot of tiny games for me and my friends, and then learned Python in high school (with C++ fairly shortly afterwards).

Scratch shields you from learning how data is represented even more than Python, and at that age all I wanted to do was make video games. My first "wow" moment was learning how Scratch platformers changed the "offset" to bring objects into view but didn't actually move my characters left and right.

My first experience was Java through AP COMPSCI. Born in late 90s.