Skip to main content

from Scratch!

    Hello, my loyal fans. Good news from my world - tomorrow I'm starting not just a new job, but a new (to me) kind of job: I'm going to be a tutor! In this case, specifically, I'm going to be a Coding Tutor. And, even more specifically, I'm going to tutor Elementary School kids.
    But (and this is the twist): I'm not going to be tutoring them in Javascript, HTML, CSS or the other languages I learned at the FlatIron School. I'm going to teach them a language specifically meant as an introduction to the possibilities of code; a language that works on a much more visual/click-and-drag basis, as a way of getting kids excited about the possibilities that coding can unlock. I'm talking about Scratch.

Scratch Logo
Aww, lookit that cute cat

    On first introduction, the language surprised me, or even made me skeptical, as something worth learning. Allegorically speaking, I have an abundance of fond memories playing on the software KidPix when I was a child, but in no way did I feel like it helped me better understand Adobe Photoshop down the line, nor did it entice me toward the wonders inherent in the fields of Graphic Design or Visual Art as a young adult.
    But of course, the thing I never received during my time on KidPix is exactly what I'll be providing to the students I'll be teaching: structure. 

    The mission statement of Scratch is directed squarely at people like me: this is a language capable of expressing serious, complicated coding concepts, no matter how much more accessible the visual assembly, web interface, and under the hood power make it. Much like, I've heard it said, the way the English language can be used for both poems and scientific literature.
    But that didn't necessarily resonate with me by looking at it. There is a very mild learning curve to, say, take a character and move it across the screen, whether by an animation or in response to a pressed key (any key). And then the instructions asked me to do something new: they asked me to design a game that kept track of the user's "level" - and for the difficulty to increase as the levels did.
    For a second this kind of blew my mind. Scratch can do that? How? As a spoiler, check out the final result. Then I'll go into the details. 


    If you're still reading this, did you try playing the game? Did you notice that the apples started falling faster the higher the level got?
    To Scratch's credit, in addition to the prebuilt options, there is also a way to define variables. And, much like Javascript, the value of those variables can be interpolated, operated on, used in a calculation, and expressed in any of numbers.
    To me, as an untrained eye, Scratch felt like it snuck up on me. Once I realized that I had that problem to solve, suddenly I was seeing new things about the code; things I hadn't paid attention to. Take, for instance, the code that solved the problem - in particular, look at the way the different components of the code are color coordinated (which, now that I say that, is not unlike VSCode).

    Each color change represents a new area of the code that can be manipulated - all with clicking & dragging different blocks. Seriously, the depth of possibility actually kind of astounds me. In particular, the code that I saved the day is about halfway down: 
    -Start in the orange "repeat until" loop;
    -Find the blue "change y by" Motion block;
    -Read the amber "Level" Variable circle, inside the green "* -1" Operator block;
And now think about that: it was extremely easy to set up this block of code. There's no syntax to type or be mindful of, there's no separate Development environment to navigate. But there is a block of code that's four layers deep to create a specific effect: each time the level increases by one, the apple's falling speed also increases by one.

    As you can probably tell, I'm very happy with this accomplishment, and more impressed by Scratch than I thought I'd be. I'm really curious, and excited, to see what assignments come up next. I'm sure I'll write about them! Want to see the code for this one? Or try your hand at editing it? Gladly! Go have fun!

PS: As a step up between Scratch and Vanilla-Javascript, the company I'll be teaching for (The Coding Space) invented their own program to match some of the under-the-hood assistance with getting a feel for typing out syntax and parsing errors. It's called WoofJS

Comments

Popular posts from this blog

Don't Touch That Dial

    This article was inspired by a technical error I can't replicate through writing, nor refer to in official documentation (unless I missed something ). The overhead digital projector in one of the classrooms I attend, in between displaying its computer signal and a neutral, soothing blue screen displayed something curiously familiar: tv static. you may be familiar...     For a brief instant, the "snow" felt oddly comforting. It made me think of old movies in the basements of old houses. It reminded me that  Hunter Thompson liked to fall asleep to white noise  (white noise, side note, actually having some  therapeutic benefit? ). It made me wonder if my teacher needed to climb on the roof and adjust the antenna.      Then it hit me: what the heck? Technically speaking/as this  helpful reddit page  explains, tv static was originally the cause of an internal mechanism within the television: the amplifier, normally in charge of boosting whatever signal it received (from th

Introducing: Tales from the Other Side

      Hello to my loyal fans. I hope you all have been having an excellent autumn/summer/spring/2022 since you last stopped by, hoping to find what was instead a mysteriously (and no doubt, frustratingly) absent fresh article from me. Apologies for keeping you waiting. But here it is!     Still, I hear you. "What", you might be asking, "could be so important that it would be worth pausing on committing to record these written anecdotes that so many of us have come to enjoy?". Well, I'll tell you what - I got a job! I got a job! I got a job!     Well, sort of. I got an internship. For several months this summer-through-fall I worked as a member of the Frontend Web Team at the Meal Kit delivery company Blue Apron . I was pretty excited for the opportunity. Not only would it be my first job in tech, but the food industry in general is something I've been an enthusiastic part of for most of my professional life. Not only was I excited to retain some semblance of

Since I Been Gone

Since I been gone / I can breathe for the first time / So I'm trekking on, yeah, yeah / Thanks to you, GROW Externships -Kelly Clarkson, paraphrasing     Hello Loyal Readers. Happy New Year(!). What have I missed? Seriously, as far as I can tell it was some pretty uneventful days around the homefront. But, I can hear you all asking: where have you been, Max? Well, I was out of town. Actually, I was out of country - and in Japan!   Actually, what a place to spend December 7th...       So, how did I get there? Although I did ironically visit Matsue - the entire City of which, from the mayor on down, is encouraging learning and building with Ruby - I was unfortunately not brought to Japan for programming reasons. Which is to say - I was, very fortunately, brought to Japan, by a company for other reasons. Specifically: my agricultural skills.     For those who don't know me, a little background may be of benefit: at one time I was a farmer. I had my own back-forty , flock of chic