Making vs Coding

technoboy10 · Sunday, April 5, 2015

The power to understand and predict the quantities of the world should not be restricted to those with a freakish knack for manipulating abstract symbols.

I’ve been a part of the Scratch community for about 8 years now (yes, really). During this time, I’ve noticed a pattern that seems to apply to a lot of people:

join Scratch => create projects => discover text-based programming => quit Scratch because of “real programming”

Note the scare quotes around “real programming”. Generally, a “real” programming language is text-based (C, Python, etc.) and apparently qualifies as real because it’s used by well-known developers for something.

Obviously I disagree with disqualifying Scratch as a real programming language.

See, my problem is that I don’t like coding. I like making. Making is the translation of an idea into an experience that can be shared with others, regardless of medium. Creating a steampunk robot driven by analog parts? That’s making. Coding an online game set on post-apocalyptic Mars? That’s making too. Writing an experimental short story? Making. Learning to use C? Not making.

When people say that they’ve learned to code, they’ve essentially learned how to read and write the language of computers. Learning how to make is a long process which isn’t quantifiable and doesn’t have well-defined borders. Coding is to reading and vocabulary as making is to creating a novel.

Can you see why I count Scratch as a real programming language yet? If not, here’s a hint: it’s simple. That’s not to say that I can’t use other languages because they’re too hard (they’re all mostly the same eventually), but rather that Scratch provides an environment that lets me go from idea to reality quickly. That’s also why I like Python - it’s simple, fun, and has an insanely huge amount of libraries that I can use to create new experiences.

So what programming languages should you learn? I can’t give you a definitive answer for that, and neither can anyone else. The right programming language for you should be the one that lubricates the process from thought to reality the best. Whether that’s Java, Scratch, Python, Lua, JavaScript, or anything else, that’s up to you. So what are you waiting for? Get out there and make something.

quote from Bret Victor’s “Kill Math”