Software engineers and system analysts design the specifications for programs, detailing exactly what the programs must do. The programmer uses the specifications to actually write the programs.
To write a program, the programmer uses one of various programming languages (the language chosen depends on the purpose of the program). He or she uses the syntax of the computer language to type individual commands into the computer line by line. After the programmer has typed a complete set of commands that fulfills the goals set forth by the specifications, she or he then compiles the commands into machine language using a compiler. The resulting product is a program.
The commands in a program are often referred to as "code," and writing a program is referred to as "coding."
Since many programmers may modify or update the same group of code, programmers must usually insert comments in their code so that others can work with it. Programmers may also write manuals and documentation for their programs.
There are two types of programmers: applications programmers and systems programmers.
- Applications programmers write or modify programs that undertake specific tasks, like a program to track a company's inventory. These programs can also be video games, spreadsheets, and other varied software.
- Systems programmers write programs to maintain and control computer systems. They may build or modify operating systems and database systems. They may also build or modify network systems, changing how the network and its computers handle jobs and communicate with peripheral equipment such as printers.
Programmers must usually know more than one programming language and more than one type of operating system. Luckily, since many programming languages are similar, programmers can often learn new languages without much difficulty. Experienced programmers may become lead programmers, eventually becoming managers, or they may move into programmer analysts or systems analysts positions.
The role of programmers is slowly changing, since the ways that programs are being developed is also changing. While programmers traditionally type commands into computers line by line, new ways to create programs are emerging. For instance, Microsoft's Visual Basic program creates a graphical interface for programmers. Using Visual Basic, programmers can select and assemble pre-made blocks of code to create new programs.