Software is a collection of instructions and data that tells a computer how to work. It can also be defined as all the information and data processed by a computer.

Software is one half required for a computer to work. The other part is the hardware. No computer can work without both.

A good example is the camera app on your phone and the cameras at the back of your phone. One is software while the other is hardware. Your camera app (software) tells the camera (hardware) what to do (i.e. take a picture).

Read: Let’s talk cameras

Software functions as the middleman or interpreter between the user and the hardware. This is because our computers do not understand human language. Computers have their own language i.e. machine language (binary code – 1010011). This poses a problem because if humans and computers do not understand each other, how can we give instructions to them?

This is where software steps in. It helps humans and computers understand each other and it does this by converting human commands into machine language that the computer understands.

From left to right: instruction – short form – machine language

Read: What is a GPU?

How is Software created?

Software is usually written down. In the past, it was literally written by hand but now we type them into computers. The process of writing the instructions (software) that control computers is known as programming. The people who write the software which help users control their computers are known as programmers.

Side note: Coding and programming are not the same. Programing means creating programs from scratch while Coding means converting software from one language to another. Thus, a programmer writes programmes from scratch while coder converts programmes from one programing language to another e.g from Java to PHP.

Software at the lowest level of programming is known as machine language. Machine language is a direct executable code that tells a computer’s CPU and GPU how to process data. It is usually written in binary form (or ones and zeros). The CPUs usually execute the instructions in the order that it is written unless it is instructed to jump to a different instruction. These instructions will cause the CPU/GPU to make changes that appear on screen. Machine language is usually very difficult to use.

The highest level of programming is known as programming language. This language is favoured by many people because it is closer to human language. It makes programming much easier. There are many types of programming languages e.g. C, C++, Pascal, Java, PHP, Cobol etc. High-level languages are translated into machine language for the CPU/GPU by a compiler, interpreter or an assembler. The aforementioned tools turn high level programming language into 1s and 0s that the CPU/GPU can understand.

How does software work?

For any software to work it has to be loaded into a computer’s storage where the CPU and GPU can access them. The CPU can then fetch, decode and execute instructions from the software on the data that it is processing.

Please leave a comment if you have any difficulty and remember to: