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

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

If You Enjoy Coding, You May Also Enjoy....

    A few weeks ago, I had a moment of pretty serious Imposter Syndrome. A coding meetup group, called Rust-NYC , decided to host its meeting at the Flatiron School, where I spend my days taking classes. A coding meetup logically seemed like the a great place to meet likeminded folks. It was only after the meeting had started, and I started chatting with people, that I realized how far in, over my head, I had gotten.     It turns out: 1) Rust isn't just a clever name for the group (in its reference to the short lived nature of hardware/in that the group also never sleeps ), it's also the name of the language they all practice, and meet to discuss. 2) Rust has fewer formal applications in the market place - which means the folks there are also devoting their hard earned free time (and free brain space) to more coding and programming and syntax and refactoring and debugging and and and... The imposter syndrome set in when I realized that this kind of meetup (despite it...