Software is a set of instructions written in code which will tell a computer to perform a task or a series of tasks. The code that software is written in is called a programming language, of which there are many varying in their level of complexity and the software that they are best suited to code. Software must also be compatible with the computer operating system that they are being run from. The three main types of operating systems are Windows, Mac OS and Linux. Some software languages are readable by all operating systems whereas some are specific – for example Swift is a software language created and usable only by Apple products whereas Java, C and Python are software languages that can be used by all operating systems. C++ and Java are also examples of ‘human’ languages, meaning that they are software programming languages which have been developed to work like human language. This makes them easier to learn but also means that they are more complex and sometimes slower on the computer end. Low level languages such as assembly language are more difficult to use but run much faster.
Most commonly, software programmers will be involved with application software programming which involves the coding of software that allows the user to perform tastes such as word processing or image editing. There are 5 main types of applications software. Utility programs are pieces of software which perform maintenance functions on the computer and include software such as virus scanners and disk defragmenters. Generic software are programs that are for general use rather than for a particular company. This may include software like Excel which can be used for a variety of different purposes. Integrated software will be a collection of software programs which use similar commands and are all integrated with a database. Specific software is generally designed for a particular purpose such as SAGE which is used for administration and accountancy. Finally, bespoke software will be designed by a software programmer for an organisation to perform a single task that is often not applicable to other tasks or functions.