<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CoolScratcher</title>
    <description>The latest articles on DEV Community by CoolScratcher (@coolscratcher).</description>
    <link>https://dev.to/coolscratcher</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F340626%2Ff1c4a99b-6443-4ae3-9299-25767f71a091.jpg</url>
      <title>DEV Community: CoolScratcher</title>
      <link>https://dev.to/coolscratcher</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/coolscratcher"/>
    <language>en</language>
    <item>
      <title>A Programmer's Perspective of Scratch</title>
      <dc:creator>CoolScratcher</dc:creator>
      <pubDate>Tue, 17 Nov 2020 22:55:22 +0000</pubDate>
      <link>https://dev.to/coolscratcher/a-programmer-s-perspective-of-scratch-23ea</link>
      <guid>https://dev.to/coolscratcher/a-programmer-s-perspective-of-scratch-23ea</guid>
      <description>&lt;h1&gt;
  
  
  What is Scratch?
&lt;/h1&gt;

&lt;p&gt;Starting from the basics and going all the way up to a programmer's perspective, this section is going to have a few surprises along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Basics (for everyone)
&lt;/h2&gt;

&lt;p&gt;Scratch is a visual block-based programming language aimed at kids. Its massive community and reputation have made it well-known for being a great first coding language for kids.&lt;br&gt;
However, what if Scratch could be not only for kids but for adults as well? What if adults used it as a first programming language as well? Chances are, you don't even understand some concepts that kids grasp right away with Scratch. The power of those colorful blocks is hidden in the illusion that Scratch is just for kids.&lt;/p&gt;

&lt;p&gt;You couldn't be more wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Kid's Perspective
&lt;/h2&gt;

&lt;p&gt;People think programming is difficult. They're right, it is. It's not as difficult as it seems, however. A common first sentence that people I'm teaching say is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Coding is boring.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I've gotten so used to this sentence that I have a canned response for it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What's boring about making your imagination come to life on a computer screen or making your dream game? What's so boring about making something you like cooler than it already is?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(People never have an answer to that.)&lt;br&gt;
Kids get used to it after a while. The colorful, playful interface makes them realize that the people who made Scratch aren't playing by the rules. The language is specifically for kids, and nobody else. This is a great language to start with, sure, but also to keep at it. There is so much potential to Scratch, that even the most complex project on it is good enough to run as a website, and nobody could guess that it was made with Scratch.&lt;/p&gt;

&lt;p&gt;To kids, Scratch is a playground, always changing and moving. There are people there, a community that even Dev doesn't have. When you share something or do something, there is instant feedback. Instant compliments and constructive criticism. Nothing — and I mean it — &lt;em&gt;nothing&lt;/em&gt; is like that other than Scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Professional Programmer's Perspective
&lt;/h2&gt;

&lt;p&gt;Being a kid, how would I know how a professional programmer would feel on Scratch?&lt;br&gt;
Well, long story short, I have a father.&lt;br&gt;
My father is mainly a backend programmer. He works at Bloomberg, which is impressive in itself, and he also introduced &lt;em&gt;me&lt;/em&gt; to Scratch. Funny, he doesn't get it very well now. He is learning Scratch, and I'm teaching him. Life is weird.&lt;/p&gt;

&lt;p&gt;So, yeah, because of my long-winded conversations with my father on Scratch, I more or less know how he feels about it.&lt;/p&gt;

&lt;p&gt;In Scratch, code is written through snapping blocks together. Some blocks are static. They don't change, and you can't change them. They serve one purpose, and always work the same. Fewer and fewer work that way with each update, though.&lt;br&gt;
Most blocks, however, are changeable. You can change values or options. You can do all sorts of things.&lt;/p&gt;

&lt;p&gt;Code spreads out in all directions in Scratch and can be used in different ways. Because of this, complex programs with a lot of code often end up messy and unreadable.&lt;/p&gt;

&lt;p&gt;This also makes it extremely hard to edit code, as dragging a block also drags all the other blocks under it, meaning that coding in Scratch takes way more time than other languages.&lt;/p&gt;

&lt;p&gt;People have made scrolling platformers and cloud-based games. They've learned to encode and decode data from the cloud and display it. You can make games with Scratch that won't look out of place in a mobile app store. Deep learning has made it to Scratch now, and in a few years, we'll look back, thinking, we didn't have &lt;code&gt;xxx&lt;/code&gt; back then??&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>scratch</category>
    </item>
  </channel>
</rss>
