Because the definition of computer programming is so broad and the use of programs so pervasive, there are actually many types of computer programming, often defined in completely different ways. The most basic types of computer programming can be broken down by the programming language, such as C, Lisp, or Java®, used by the programmer. In other contexts, there may be only two types of computer programming: system and application. Some distinctions are made between network programming, web-based programming, and desktop programming. Different types of programming can sometimes be separated based on the target platform, such as embedded systems programming, real-time systems (RTS) programming, or database programming.
Computer programmers may specialize in updating existing software.
The different types of computer programming are generally defined by the language used to write software. There are many languages available, but they are categorized into structured languages like C or object-oriented languages like Java®, which are commonly used by professionals for different tasks. Languages can also be imperative, like those mentioned above, or functional, like Lisp, where programs consist of a series of functions rather than commands. Some computer programming is done solely with scripting languages, which are human-readable documents that perform operations in another framework.
Computer programs are written in computer language.
Traditionally, there has been a distinction between two main types of computer programming. The first is application programming and involves writing programs that can be directly used for some function. As an alternative, there is systems programming, which seeks to design programs for hardware management or frameworks in which applications, such as operating systems, can be executed.
The different types of computer programming are first divided into languages like C. Lisp.
As the technology for networking and remote communications became more widespread, certain types of programming began to differ from other fields of computer programming. Network programming is considered different due to the required knowledge of network protocols and hardware interfaces. Programming web-based applications or servers requires specific knowledge of security restrictions, Internet protocols, and unique programming design patterns.
Some computer programmers write code, while others are tasked with troubleshooting existing scripts.
There are also types of computer programming that are specific to a particular field or target hardware. Database programming involves the use of special query languages, scripts, and other elements to interact with specific database infrastructures. Game programming involves knowledge of graphics hardware, graphics algorithms, and sometimes special optimization techniques. Embedded systems, such as handheld devices or consoles, may involve unique hardware specifications and knowledge of vendor libraries. More advanced real-time systems programming may involve writing fail-safe control software for nuclear power plants or military hardware.
C++ is a commonly used computer programming language.