Introduction
If you’re looking for project ideas, please check our Workshops!
Programming is everywhere! It is in our websites, our apps and programs we use, and even the operating systems our machines run on! But what is programming exactly?
Programming is a language for computers, it is a set of phrases and syntaxes and rules put together to give an instruction on how a computer/program operates. Like instructions on how to do quite literally, everything! And like the many languages we have here on the planet, there is a myriad of programming languages used for many different purposes.
History
The earliest known “automation” can be traced back to Hero of Alexandria, a mathematician who invested a rudimentary vending machine for temples to disperse water, as well as some automatons. Many of these were simple and more analog, powered by gears and pulleys and using physics rather than computational logic. (The Greeks were the first on record to study pneumatics!)
An illustration of one of Hero’s vending machines by Bennet Woodcroft from his book, The Pneumatics of Hero of Alexandria, now in Public Domain.
Automatons have been made in the centuries following, mostly made as entertainment for those who could afford it, curiosities rather than practical devices, like this automaton monk (built by a watch maker) was made in 1560! And this Dulcimer player (made in 1784 for Marie Antoinette) can play 8 different songs! Or one of the most famous automatons, The Silver Swan, was made in 1773.
(Here’s some more videos from History Channel and Timeline on Automata.)
But by the first true computational device wasn’t developed until the early 1800s.
The earliest code was what we call binary code. We covered that a bit in the our Physical Computing page, the quick overview is that there are two states: on and off. This was first expressed in the patterns of weaving in Jacquard looms, or the comb of a music box to create music.
In the past, “computers” were people who parsed data and filled it out on paper by hand. Many of them were women, like The Harvard Computers, women whose data helped us classify extrasolar stars! Charles Babbage, a mathematician sought to help automate the process. Inspired by Jacquard looms, he developed the first computation devices that could take data given and create an output following a set rules and logic. This Analytical Machine was improved with the work of Lady Ada Lovelace that created the first instance of programming that we know. While his machines were never built due to lack of funding, his research was sound and brought us the first steps towards computers. His Difference Engine was recreated in the 1990s.
Programming in the Makerspace
Nowadays we’ve gone far past binary, and each language has a set syntax and follows a particular logic. Once you’ve learned at least two languages, it is said it gets easier to learn more.
Here in the Makerspace, we do a small bit of programming! CSS and HTML are visual languages that build websites (Javascript too, but it also can do more than sites!). More frequently you’ll use programming with the Arduino (which is C++), and sometimes Processing and p5.js for visual designs. There are many books on the subject (some covered in our Bibliography page) and many have reference websites listing all the syntaxes and functions allowed in the language. But really, programming is something you just need to do.
Where Do I Start?
First you’re going to need some application to write or edit your code which is called an IDE. An IDE, or integrated development environment, is a software application that allows you to write code and test that code out in the programming language the IDE supports.
Some languages provide their own, like Processing, p5.js, and Arduino, but others you can use a general IDE such as Atom, Brackets, or Sublime or Visual Studio. Adobe Dreamweaver is an IDE focused on Web Design. You can also just use a basic text editor such as Notepad (Windows) or TextEdit (Mac) too, though the other IDEs can help organize and troubleshoot errors with a built in console.
Further Exploration
- Learn Programming:A Basic Walkthrough on Programming; geared to prepare for Javascript (Free)
- Dash: HTML, CSS, and some javascript (Free)
- Khan Academy: HTML, CSS, Javascript (Free)
- freeCodeCamp: Various programming languages (Free)
- W3 Schools: Various programming languages (Free)
- Coding Train:P5 and Processing (Free)
- Processing.org: Processing (Free)
- Learning Processing: This is the site that accompanies Daniel Shiffman’s book, but can be used as a reference.
- Fun Programming:Processing (Free)
- p5js.org:p5.js (Free)
- learn-js:Javascript (Free)
- Learn Javascript Online:Javascript (Free)
- Learn Python:Python (Free)
- Code Academy: Various programming languages (Free & Paid Courses)
- Udemy: Various programming languages (Free & Paid Courses)
- Coursera: Various programming languages (Free & Paid Courses) (Formal Class Structure)
- Stack Overflow:Great reference to learn and troubleshoot with other programmers!