Skip to main content
Subject Guides

Skills Guides


Introduction to coding

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

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.

See our Forthcoming training sessions for the next face to face Introduction to coding session.

Full Introduction to coding slides on Google Slides

Introduction to coding handout

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

Forthcoming training sessions

Forthcoming sessions on :

Show details & booking for these sessions

There's more training events at:

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.

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.

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.