Computer coding, also known as computer programming, is giving a computer instructions to tell it what to do.
These instructions are written in a coding 'language', which has grammar and syntax just as other kinds of languages do.
Your code, written in a particular language, is then converted into binary (ones and zeroes), which is the only way a computer can understand the instructions.
Want to know more about this coding thing? Our 'Introduction to coding' workshop looks in more depth at what coding is, how to think like a computer, and some key concepts that are useful for learning any coding language. You'll also have the chance to try out some computer code in action.
You can work through the resources below or attend one of our training sessions. See our Forthcoming training sessions for the next live 'Introduction to coding' session.
Below are the slides for the Introduction to coding workshop. You can work through these and use the accompanying worksheet to try out the coding examples and learn more about how they work.
The following worksheet is to accompany the Introduction to coding session and contains all of the coding examples in a format that you can run and annotate to see how the code works.
Alternative version of the worksheet (in Google Docs so does not run the code).
Our lives are becoming more and more digitally focused. There are applications now that can do many amazing things, but there are still plenty of times you'll need a solution for which there isn't an application. Being able to code increases what you can do with technology and helps you understand what might be possible.
Computers and programming are good for:
Which coding language should you learn? The answer really depends on what you would like to achieve. Most programming languages were designed with some purpose in mind, so it follows that some languages are better than others for certain tasks.
You might choose a language in a particular domain, or choose one by its popularity, what it can do for you, or how much someone with skills in that language can earn. Most languages use similar building blocks, so learning one will give you transferable skills to use for other purposes.
Our resources for learning various coding languages might be a useful starting point for looking at different coding languages and seeing what they can do.
If you're not sure what kind of coding is for you, here's some more details about the choices available.
Block-based coding is when you use a jigsaw-like interface to drag and drop sections of coding together from a selection of pieces. These tools allow you to focus on creating cool games and apps without having to type code, and introduce you to key areas of syntax using colour conventions.
Some common block-based coding tools are Scratch, which allows you to create animations and games using 'sprites' that you can control with code, and Thunkable, which allows you to create simple apps using built-in components that utilise device features such as text to speech and image recognition.
The ability to make and edit websites is often a common goal when learning to code. HTML, or HyperText Markup Language, is how the web is structured, and CSS (Cascading Style Sheets) is how the website is then made to look good.
You will often find guides and tutorials to HTML and CSS together as they work together to display web pages in your web browser.
If you want to learn coding so you can work with data or analyse research, one common coding language is Python. Python is often recommended for beginners as it is a general coding language that you can use for data analysis but also creating apps and learning key concepts in coding.
If you're working with statistics, you might learn R, a coding language designed for statistics and graphical plotting.
Forthcoming sessions on :
There's more training events at:
There's a wealth of free resources online for learning different coding languages, including tutorials, written guides, and courses. We have also run workshops on creative coding in good tools for beginners to start learning coding with.
Here you'll find our resources from these sessions and our suggestions for external resources that might be useful.
These resources might cover a range of coding languages, help you with general concepts, or offer suggestions for what you learn.
Codecademy is a popular site for learning coding, with free courses (though for some features you have to pay). It also has a 'sorting quiz' to try and match you to coding mindsets and languages you might want to start learning.
If you want something with a course structure, you might want to try a free course on a site like FutureLearn, edX, or ,Open Learn. There are often introductory coding courses that combine videos, articles, and practical exercises, and allow you to learn alongside other people.
Scratch is a block based coding tool designed for beginners and education contexts, which allows you to create games, animations, and interactive stories.
Coding with Scratch exercises (to go with slides)
Thunkable is a block-based coding tool for creating simple interactive apps
There is also an extensive Sonic Pi tutorial on the Sonic Pi website that goes through the audio and coding knowledge to take you from beginner to expert (it has quite a steep learning curve).
Processing is a coding language designed for creating visualisations, animations, and art.
Our Getting started with coding in Python session introduces you to key concepts in coding using Python and has a hands-on workbook to get to grips with these features.
The page also has a range of suggestions for other Python resources and courses you can take.
No matter which coding language you decide to learn, you'll come across plenty of errors and times your code doesn't do what you expect.
Errors are a normal part of coding and everyone, including professional programmers, get them all the time. Here are some tips for getting to the bottom of them and finding ways to make your code work again:
Read the error message - Sounds obvious, right? If you get an error message when you run your code, read it and look for any clues, such as where in the code it is breaking or what kind of error the computer thinks it is. If you don't recognise/understand what it's saying, try searching online for that error message.
Know what it is supposed to do - Another obvious sounding one, but it can be very useful to define exactly what it is meant to be doing and try to narrow down exactly what isn't going right. This might include thinking about what a user should be doing, or what kind of test data the program should work for.
Check for spelling and syntax errors - One of the easiest ways to get an error when coding is to mistype something, or to not write something exactly how the computer expects it to be. Check over your spelling and punctuation, or ask someone else to cast their eye over it.
Make it break every time - Often with computers, the only way to solve the problem is to replicate the problem. Trying to work out how to make the error happen every time can help you spot why the error is occuring.
Keep track of what you change - Whilst trying to fix the error, keep track of what you're changing, and only change one thing at a time. This will make it easier to work out what is making the difference, and if you need to undo any changes.
Ask for help - Everyone has to ask for help when coding, whether it's sharing code with a friend/colleague or using online forums. Don't be afraid to ask someone else for advice or to see if they could spot the error. They might've had the same one in the past - many errors are common ones!
We think all coding is fun, but sometimes you might want something more focused on play or discovery. Whether it's to relax, think in a different way, or learn with children, here's our suggestions for playful activities that develop coding skills.
Scratch is a great way to learn block-based coding whilst creating fun animations and games. You can start by having a go at building something, or by trying out other people's projects and then looking at the code that runs them. There is also a ScratchJr app with a simpler interface.
If you want to learn Scratch for yourself or to help learn with young people, we have a Coding with Scratch session consisting of slides you can work through, exercises to get familiar with Scratch, and a selection of Scratch examples
Hour of Code has a list of free hour-long activities and games that teach different elements of coding and coding skills. These are aimed at different age groups and skill levels, but are great resources for anyone to try out. You can make games based on well-known characters, create art and drawings, and learn the basics of coding in inventive ways.