Anyone who experienced Digital Revolution at the Barbican or Big Bang Data at Sommerset House will know just how inspiring the digital medium is; it provides us with the tools to build new worlds and engage with our audiences on a one to one basis yet access everyone globally.
That being said, each time I mention coding (the core building block of any digital project) I’ll get one of three reactions; excitement, blank stares or a quote from the “Matrix” (or Mr. Robot if you’re up to date with your TV).
20 years ago when coding was akin to learning a foreign language to make a single pixel move across a screen, that was excusable. But now the craft has matured and is more accessible than ever before. Taking a dip into a digital world will open endless opportunities to grow your creative craft in a completely new medium.
I’m hoping this short guide will inspire you to drop your pencils for a few hours and play with this brave new world.
Photo by: Sarah Shatz/USA Network
There’s so much out there that it can be daunting to make a decision on what to learn first. Here’s a brief breakdown of what you should care about (and the order you should care about it in).
Purpose: What do you want to do?
Have a clear idea of what the end goal is; this doesn’t mean you will start with it right away, but this will inform the choices below (is it an App, Website, Installation…). You may want to look at projects the resemble what you want to do in terms of structure and see how they were done first. There’s no better place for that than https://devart.withgoogle.com/.
Platform: Where do you want to do it?
Knowing where you want your audience to experience your work (e.g. iPhone App) this will restrict the choices you will need to make below; if you’re interested in doing more complex projects using sensors and visuals that will require you to look beyond App Languages then filtering Devart by technologies and languages should help you find the most pertinent technologies of interest.
Language: Choose your language
Coding is exactly like creative writing; some languages are easier than others. Each has its own unique merit. As a complete beginner the recommended languages are Ruby and Python, but here is the full list with tips on why and who uses them. Don’t fret too much, most of the languages fundamentally work in the same way, so time spent on one won’t be wasted. Better choose the one that’s the simplest at this stage.
Setup: Try before you invest time
Setting up a development environment (the tools you need to test and run your code) can be daunting for someone not used to it. There are plenty of resources that will help you get your hands dirty first without killing your enthusiasm with setting everything up before seeing results.
For any language head down to Coding Game for a simple tutorials using gaming; Ruby on Rails with Zombies (for Ruby only) and if gore and gaming aren’t your thing, CodeChef (although this is a little more complex).
Once you’re ready to start coding on your own machine you’ll need to choose an IDE for your language (akin to using Word to write a document; ironically you’ll need a programme for programming). More can be found here.
Worst of cases
If all of this still seems too complex; and you have a little money to spare why not go find a coding kit for kids; everything is packaged to be as simple as possible, and it’s more fun! (Kano do a great kit which you could use to build larger scale installations with).
6 Survival Tips
Start small and treat it like a game
It’s easy to get really excited to and have grand ideas; but unless you’re able to produce something quickly at the start you’ll probably become frustrated at the lack of progress. Start with small projects that will build your confidence online, then migrate to your machine with the installation of an IDE and versioning tool (so you can always go back on your changes) before you delve into the more complex ones. Follow the tutorials for the language you’ve chosen and make your first small project to print “Hello World!” on screen, once that’s done build on the complexity through fun short projects.
Google / Stackoverflow are your best Friends
Every issue you will encounter has been seen before; paste any error messages you might be getting removing any names you chose yourself (e.g. Zealous Project has crashed due to …”. The best search for that would be to remove Zealous Project and paste “has crashed due to” with the name of your programming language in Google or StackOverflow.
Try and Visualise the Issue
Coding is a little like building an invisible structure. Just like a builder needs architectural plans, you’ll need to imagine the problem you are going to face, know what building materials is available to you (basically like Lego’s but instead of the long green piece it’s a logical construct such as conditions, loops and more…) how you are going to put it together; before you let information flow through it. Most problems can be broken down and have been solved. Here’s a resource for visualising algorithms. Refer to those and see if you can modify them to work better with you.
Tap into communities
If your issue has never been faced (unlikely) then post it to the community, you’ll see people are very supportive of one another. Just be aware that if that question was posted before you might get a sarcastic comment or two. People are kind with their time, but they don’t like wasting it.
Ugly websites can be good resources
It’s ironic that some of the best resources are also the ugliest. Don’t be put off by the website design and read through the content. You’ll probably be surprised at how helpful it is (as a tip, if it’s really unreadable I paste it in a document and read it there!). This reddit of great programming projects is testament to that.
Break Things Down & Make Time for it
Practice, Practice, Practice
Find a piece of code, run it then look at the code and see if you can modify it slightly. This will push your understanding of reading clean code. Then find awesome little projects to do; they don’t need to be useful just further your understanding of coding. Here’s an extensive list of projects you could undertake if your mind runs dry!
Good luck with it, and most importantly have a blast. We can’t wait to see what Digital Projects you come up with (and since you reached the end of this article we thought we would reward you with Simone Giertz’s Shitty Robots).