Third party cookies may be stored when visiting this site. Please see the cookie information.

Raspberry Pi - Linux computer for learning programming

What is the Raspberry Pi?

The Raspberry Pi is a small computer. It's about the same length and width as a credit card and costs only $32. It has been designed as a educational computer for school children to learn to program, but is also hugely popular due to it's small size and amazing low cost.

Raspberry Pi Linux computer

Learning Linux, programming and embedded computer

The Raspberry Pi is a useful little computer that has grown far beyond its intended purpose. Originally designed to help teach programming to children (for which it is really useful), it is also useful as a platform for learning Linux or to use as a small, low-cost, low-power computer.

It is also useful for as an embedded computer for use in learning electronics. I have written a book Learn Electronics with the Raspberry Pi, and have created several Linux and electronics projects, many of which use a Raspberry Pi.

The specification of the Raspberry Pi

There are now several versions of the Raspberry Pi which has evolved as computing has progressed. One way in which it differs from a "standard" PC is that it is based around a RISC based ARM processor. This is similar to the processors used in many mobile phones and most tablet computers. The Raspberry Pi uses an SD card for storage and is powered using a USB cable. It is normally connected to a TV or monitor through an HDMI connection.

Raspberry Pi 1

The original Raspberry Pi had 256Mb of RAM, which increased to 512MB in a later revision. It has a 26-way GPIO (General Purpose Input Output) connector which can be used for connecting to electronic circuits. Later versions of the Raspberry Pi (B+ and later) have 40-way GPIO connectors providing more ways of connecting electronics.

These are slower and less useful today, so I would not recommend getting a Raspberry Pi version 1 today. You may still have an old Raspberry Pi or come across some which have been replaced by newer models. These are still useful for their intended purpose.

Pi Zero and Pi Zero W

The Pi Zero went even further in reducing the size and cost of computing. It combined most of the features from the original Raspberry Pi 1 into a circuit board a little bigger than a stick of chewing gum. Due to the space constraints it uses a mini USB connector for connecting peripherals and a mini HDMI connector for the video output.

The Pi Zero includes the GPIO connector, but the header pins are not soldered on. See the guide to soldering on the header pins.

The Pi Zero W is a newer version which includes Wireless connectivity (Wi-Fi and bluetooth). It is also available as a Pi Zero WH, which includes wireless and the headers pre-soldered.

The Pi Zero is useful where you need something that is small, uses less power or costs less. If these aren't so important then I'd suggest going for one of the more powerful models.

Raspberry Pi 2

The Raspberry Pi 2 swapped the single-core processor for a much faster quad-core processor and increased the memory to 1GB RAM. This makes the Pi2 a much better platform for using as a general purpose computer as it can run many applications including LibreOffice at acceptable speed.

The Raspberry Pi 2 does not include wireless networking (available via a dongle), but otherwise is capable of running most software at acceptable speeds.

Raspberry Pi 3

The Raspberry Pi 3 changes the processor to an even more powerful 64-bit processor. It also adds networking connectivity on-board including Wi-Fi and bluetooth.

It is the most powerful version of the Raspberry Pi and is the one most should buy if looking for a Raspberry Pi.

The Raspberry Pi 3B+ is an upgraded version of the Raspberry Pi 3, the main benefit being a speed improvement due to improved cooling and a Gigabit Ethernet port. The Ethernet port cannot run at full gigabit speed due to the restricted bandwdith of the USB 2 interface it communicates through, but is still a significant improvement. This does come with additional cost in terms of the amount of power to run, so a good power supply is essential.

Raspberry Pi Compute Module

The Raspberry Pi is also available in the form of a compute module. This is a single board computer without any peripherals (eg USB or monitor connections) designed for integrating into a commercial product.

Up and running

To get the Raspberry Pi working an SD card needs to be prepared with the Linux operating system installed. This can be done on a computer running Linux, Mac OS X or Windows with an SD card reader. The recommended version is Debian which can be installed using the NOOBs installer.

Installed software

The following is some of the software installed by default on the Debian Raspberry Pi image.

  • Browser - Chromium web browser (Free version of Chrome)
  • Scratch - Simple programming language for young children based around drag and dropping actions
  • Python - Powerful programming language which is a good starting point for learning programming
  • Music player - Listen to you favourite music whilst you do a bit of programming
  • LibreOffice - Free open source office suite (works best on Raspberry Pi 2 and Raspberry Pi 3)

As mentioned already there is a huge range of other open source software that is pre-installed or can be installed through the package manager.


The Raspberry Pi is a small computer ideal for learning to program and learn system administration skills. It's also a great platform for driving electronic circuits (perhaps combined with the Arduino) or for dedicated computers such as a media device.

The low cost and flexible connectivity options (HDMI out) make it ideal for a child's bedroom without the expense of a computer monitor.

Using an SD card as the main storage allows full experimentation with the ability to start again if things go wrong.

More information

See the guides and blog posts relating to the Raspberry Pi. Also see the Linux Tutorials for more information on using Linux.

Other Raspberry Pi Projects and tutorials

Next Linux documentation and help reference guide
Linux documentation and help reference guide