An introduction to software
'Software' is the term we give to the instructions that programmers write to make the hardware (the pieces of computer equipment we can touch) do things for us. The instructions might control how a piece of hardware works or might allow us to play a game. A collection of instructions is known as a 'program'.
You will certainly be getting experience of writing programs whilst at school. You can write programs in quite a few different ways. One way is using a graphical interface to drag and connect blocks of useful instructions together. If you have used Scratch, then you have used this type of method of programming. Another graphical method of programming is Logicator. This lets you construct flowcharts to control systems but behind each flowchart is programming code.
Graphical methods of programming are a great way to get introduced to programming but they are not anywhere near as powerful as languages which use written instructions. One great language that a lot of people use to learn how to program is called Python but there are many other languages you can use for example C, C++, BASIC, PASCAL, FORTRAN, PHP, ADA and so on. Python is (in my opinion) the best language to learn by far.
Applications software and systems software
When programmers write programs, they can very broadly be for two purposes. The first is to write a program for people to do a useful job for them, which they might have to do anyway if computers weren't invented. For example, they might write a program to write documents, called a word processor, or for number calculations, called a calculator, or for design work. They might write a games program, a program to let us listen to music or watch video. We call these types of programs 'applications'. The second type of program is more about managing and controlling hardware, for example, the graphics card inside your computer, the motherboard, the mouse, a whole computer working together or a network of interconnected computers working together. These types of programs we call 'systems software'.
Operating systems
One very important piece of systems software that deserves a mention now is a computer's 'operating system'. This is the program that controls and manages the whole computer for you, to allow you to actually use it. You may be very familiar with operating systems. Windows is an example as is Linux and iOS. Some operating systems are based on other operating systems so for example, the Android operating system developed by Google for mobile devices like phones and tablets is based on the kernel of the Linux operating system. The word kernel simply means the main part of the software, so Google took the core parts of Linux and adapted it to create the Android operating system. We will explore operating systems in more detail in another section.
Open source software and proprietary software
You may come across the terms 'open source software' and 'proprietary software' quite a lot. Open source software is software that you are allowed to legally download, use, copy, modify and give to your friends and it won't cost you anything. When you download the program, you usually can get easy access to the actual program code as well. Proprietary software, on the other hand, is different. You have to buy the software but what you are buying is a licence to use the software. You don't get the actual program code, you aren't allowed to change it, copy it or share it with friends. You own a licence to use the software, not the software itself.