Coding from Scratch

scratch.png

https://scratch.mit.edu/

One of the main strengths of a consultancy, like Butterfly Data, is its diverse approach to skill sets; the idea that having a wider range of viewpoints will lead to better solutions. Additionally, one of the requirements of being a data analyst is the ability to undertake the technical aspects of the job - including development and coding in some situations. As a postgraduate of English Literature I brought key experience and capability to Butterfly in many ways, however my technical coding skills were not, shall we say, up to scratch. My foray into creating my own website in HTML with Notepad as a child and developing in BBC Basic at school had not developed my coding skills quite as much as I had hoped. Enter the starting blocks to my development education, Scratch. A block-based visual programming language, Scratch was created by MIT Media Lab in 2003, and has in recent years been geared towards and heavily utilised by educational establishments to provide children with an understandable start to coding fundamentals. Consisting primarily of brightly coloured blocks and sprites which fit together by a drag and drop GUI, Scratch can appear to be rudimentary. Conversely, the simplicity of Scratch covers an understated elegance about the concept of programming - the notion that the approach to a coding goal can be achieved in a multitude of ways.

When I first started my coding education at Butterfly, one of my colleagues set me a series of exercises to be done with Scratch, ranging from setting text to appear on screen at certain intervals to emulating an early 90’s top-down racing game. As these exercises grew in relative complexity, we discovered that our approaches (his textbook answer and my creative/sporadic answer) would often differ in how code modules were set up, what objects these modules related to, and the efficiency of each section. Discussing these differences was really where my understanding of programming began to develop. From the simplicity of a block-based language, we began to delve into: the conceptuality of object-oriented and non-object-oriented programming, code efficiency and maintainability, and the importance of specific platforms and environments. Whilst these exercises taught me the cause-and-effect relationship of programming and the importance of organisation within code, it also showed me how coding towards a goal will not always have one set ‘correct’ answer.

Of course, Scratch has its limitations as a tool for learning, particularly moving into the more technical realm of data analysis. However, for a platform which is ‘designed especially for ages 8 to 16’ it provided me with a surprising foundation of understanding, from which I have been able to build further marketable proficiency in several programming languages. With capacity for conditional statements, loops, and boolean logic, Scratch sets out to deliver universal programming concepts and I would be inclined to say that it delivers on this. Consequently, I would heartily recommend Scratch as a starting point for anyone wanting to learn how to code, as a way of getting kids interested in programming, or even as a casual way to revisit and experiment with the logic of the Scratch language.

For those interested in my journey of learning to code, I will be delving into my introduction to SAS and Python in upcoming posts.

Previous
Previous

Enhancing Video Conferencing via OBS Studio