Skip to main content
Subject Guides

Skills Guides


What is coding?

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.

Introduction to coding

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.

Introduction to coding session resources

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.

Full Introduction to coding slides on Google Slides

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).

Why learn to code?

lines of computer 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:

  • Problem solving - getting from A to B, moving your idea forward
  • Efficiency and automation - getting the computer to do the boring things for you
  • Creativity and exploration - creating new things or exploring your ideas in a more unique direction

Choosing a coding language

question mark

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.

Slides on Choosing a coding language

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

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.

Thunkable code that says when Button is clicked do in Sound call Play
An example of Thunkable code to play a sound when a button is pressed.

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.

Coding the web

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.

The third part of the trilogy for coding the web is JavaScript, which is a scripting language that makes the web interactive. JavaScript interacts with the HTML and CSS on the pages to make websites do things. It is best to know some HTML and CSS before starting with JavaScript.

w3schools is a good place for learning HTML, CSS, and JavaScript, along with other tools for further web development.

Coding with data and research

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 training sessions

Forthcoming sessions on :

Show details & booking for these sessions

There's more training events at:

Resources for learning coding

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.

General coding resources

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 slides on Google Slides

Coding with Scratch exercises (to go with slides)

Coding with Scratch cheat sheet (and guide to blocks)

Coding with Scratch examples


Thunkable is a block-based coding tool for creating simple interactive apps

Thunkable slides on Google Slides

Thunkable cheat sheet

Sonic Pi

Sonic Pi is a tool and language for live coding music. It is based on Ruby, a general coding language, but has been designed specifically for learning computing and music.

Sonic Pi slides on Google Slides

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 and p5.js

Processing is a coding language designed for creating visualisations, animations, and art.

Processing has two versions, the original Processing which is based off the coding language Java, and a web based version based off JavaScript, called p5.js.

Processing slides on Google Slides

Processing cheat sheet

p5.js slides on Google Slides

Playlist of videos by The Coding Train on p5.js for beginners


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.

Troubleshooting your code

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!

Coding for fun

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

Scratch example with a cat character that moves when you click a button
Scratch allows you to control things on the screen, such as getting the sprite to move or a sound to play.

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.