HTML/CSS

Webpage design is usually the starting point for many designers just learning to code. Although it has some “programming language” aspects, HTML (HyperText Markup Language) is more of a description of layout, typography, and other design choices of a webpage. Basically, HTML describes the content and the structure of that content, while CSS (Cascading Style Sheets) describes the visual design of the page (layout, typography, color, et cætera) and also can be used to interactively animate elements on the page.

Although HTML and CSS were designed principally for publishing websites, there are aspects of CSS that were designed for print-based solutions. In other words, you can design your page to look one way when viewed through a browser, and entirely differently when printed or exported as a PDF, including handling of page breaks and other print-specific design choices. In the Media Design Master, many of us use a combination of Markdown + CSS + Pandoc as a replacement for designing a book or multipage document in InDesign.

Javascript

Python

Install a Python Virtual Environment.

// TODO

Install the latest Python version to your virtual environment.

// TODO

Install the Python package manager pip3

// TODO

Since we do a lot of A.I. experiments, be sure you have the following base Python packages installed:

C

C# is a language designed by Microsoft, and is used in many different fields; but for our uses is almost solely used in projects built in Unity.

C++

The language used to code a lot of low-level and powerful software and machines. A very sloppy and dirty language if you’re not careful: it’s old-skool, ugly, punk and dangerous. And I love it. It is the language of two tools and environments I use almost daily: openFrameworks and Arduino.

Regex

M.I.T. has an excellent class online called “Metaprogramming: The Missing Semester of Your CS Education. The idea of the class is to teach you all of the programming-ish/coding-like work that programmers do, but that does not directly involve developing software applications. Another term for this type of programming is “scripting”, i.e. the chaining-up of various bits and bats of pre-existing code, or stuff that you quickly whip up to get some specific task done.

One of the best examples they give (and one of my favorite languages) is the strange, wonderful world of Regex. Regex is often a language that you use to prepare large blocks of text for some other program. Typically, when you are preparing, for example, a massive set of texts to teach the GPT-2 text transformer to talk like a revolutionary nun from the 1970s, you would use Regex to prepare these texts that would simply be too time-consuming to process by hand.

Regex is not an easy language to learn. It is particularly obtuse. But once you get the basics, it is surprisingly fun.

You can use Regex inside of VS Code, Sublime Text, as well as many other code editors such as Atom. There are also many online ressource to not only parse your Regex texts, but also to explain in real-time what is happening in your impossibly unreadable Regex instructions: