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

If It Ain't Broke...

     I write you now, on a blog that was created as a requirement for a class, as a Graduate of that class ( hooray! ). But, like all good things in life, this space as an idea for musings has taken on a life of its own, and so I feel compelled to share another thought from the tech world I had: when did Gmail become the standard for online email? Seriously - in the Career Services literature that's given to every student following said class, this office - in charge of helping students find work in the field of technology - has this ("hot") take:  Email Address(es) : Should be @gmail.com @me.com or @customdomain. Avoid AOL, Hotmail or Yahoo email accounts because employers may view users with those accounts as out-of-touch or not tech savvy.     Reading this, I felt the sting of injustice (actually, more like embarrassment). I use a Yahoo email account! In fact - I have since high school! And what's wrong with that? It works just fine! And as my Grandpapp...

The Power Paradigm: Metaverse edition

      This blog post will be slightly off the kilter of my usual writing. Not that I don't want it to be funny or engaging, but I'm not writing it with the same lighthearted intention that I've written about other, less-consequential topics like how to create tally marks or what I made my first website about. This post is also meant to be less results-oriented; there's no final product I want to show off or "behind the scenes" descriptor I'm writing. Instead, I want to use this entry as a jumping off point for discussing an issue that seems to be plaguing every aspect of society nowadays: the rise and dominance and social destruction as a result of: Facebook.     But, in particular, I've been curious: what role has their software-baby, ReactJS, played in this power struggle? It's been a hard question to answer definitively. For one, news coverage seems very intently focused on "one side" or "the other":     -It's very easy t...

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...