Welcome to Creative Computation! {

Hi!

Whoa! It’s a course about learning how to code??? You have so many questions, like…

Do I already need to know how to code?

Nope.

Why learn to code?

Hopefully you don’t seriously need to ask this question, but…

Software is an incredibly exciting medium for artistic expression. Think of videogames and virtual reality experiences and digital media installation work and weird websites and amazing apps. It’s all driven entirely or primarily by software.

Software is how the world works. Beyond the world of art and entertainment, so much of our lives are dictated and shaped by software. We do banking with software, we talk to our friends via software, we order pizza with software, we buy pet food with software. Software, software, software.

Software pays the bills. Getting a job as a software developer of some kind, or as an interdisciplinary-person-who-can-code is a lot easier than getting a job without any coding knowledge. People want to pay those of us who can create software.

Programming is how we create software

Also, this is Computation Arts. Guess what the fundamental way we control and think about computation is?

Yep, it’s programming.

Why JavaScript?

In this course we’re learning a specific programming language: JavaScript. Why?

Pretty much every fancy thing you see a web page do is being done with JavaScript.

JavaScript is a great learning language because so many people use it for so many tasks. For any question you have, there is likely an answer online. For any kind of program you want to write, there is probably a community online.

Also, JavaScript is a modern language with the standard features we expect to see. Your knowledge of JavaScript will allow you to learn other languages much, much more easily.

Given that JavaScript is what drives the web, it’s understandably a very popular language to use out in the world. Any web developer needs to know JavaScript!

JavaScript has been around for a long time and has had many, many libraries and extensions created for it that give you greater power with less work! (More on this later in the course.)

JavaScript isn’t limited to programming for the web. With technologies like Node and Electron you can build your own stand-alone applications in JavaScript.

Why p5.js?

In this course we use a “library” called “p5.js” on top of JavaScript to do our work. Why?

Check out some examples of people using p5.js to do neat stuff.

Why focus on playful interaction?

In this course you’ll often find there’s an emphasis on being playful. Why?

Play is one of the most interestingly complex interactions we can create using software. The most obvious example if the enormous videogame industry, but playfulness is everywhere and is a great design approach to all kinds of interactivity.

The skills needed to make playful experiences demand learning all kinds of coding approaches, from user-interfaces to tracking user data to sophisticated input schemes.

Ultimately, if the thing you’re making is designed to be fun and playful (whether it’s a game or something else), you’re probably just going to enjoy making it more!

Note: play does not mean games.

So how do I learn programming?

By being taught.

By asking questions.

By practicing.

Unsurprisingly it’s like learning anything practical. Practice makes perfect. When you learn the guitar, it’s one thing to listen to someone tell you the different strings and how frets work and then watch them play a song using that information, but it’s very different getting your brain to understand how to do that.

Practice, practice, practice.

By playing around.

By helping others.

Don’t use the internet too much!

There’s so much information about programming on the internet it could get confusing. Try to resist diving all the way in before you quite know what you’re doing.

For this course you hopefully shouldn’t need other resources, even though they can be helpful.

Most especially please resist taking code from online and using it in your own projects. Naturally people do this in the real world, but when we’re learning it tends to cause far more trouble than it’s worth. You’ll end up doing it anyway, but be aware it can lead to problems understanding code yourself.

Don’t use AI at all!

Yes indeed, AI “copilots” are changing the way people are programming out there in the world. However, working with AI programming assistants really needs you to already know how to program:

The world continues to need people who actually know how to program. Those people can make software on their own and they can work well with AI.

We are going to be those people.

What kind of stuff will I make?

It’ll depend a lot one what you want to make and how much effort you put in, but there are examples from previous edition(s) of this course available.

Summary

}