Ask HN: Did any of you first encounter programming through Scratch?
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 ] threadWe 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.
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'.
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:
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 don’t remember any programs I saw before I got started.
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!
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.
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/
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?
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.
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. :)
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.
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.
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.
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.
> 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.
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.
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.
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 hated Scratch. I saw it as childish and simplistic. I wanted to play with the big boy stuff.
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.