Computer programmers write and test the instructions that computers follow to perform tasks.
Computer programs are instructions for computers. Computer programs tell computers:
- Which information to access
- How to process information
- What equipment to use
Programs vary widely based on the type of information being used or produced. Simple programs can be written in a few hours, but complex programs may require more than a year of work. Long projects usually require several programmers to work together as a team under the supervision of a senior programmer.
Programmers write programs by breaking each task into a logical series of instructions the computer can follow. There are many programming languages. Programmers usually know more than one language. Since many languages are similar, programmers may be able to learn new languages easily.
Programmers may use computer-aided software engineering (CASE) tools to add commands. CASE tools generate whole sections of code automatically so a programmer can focus on the unique parts of the program. Automatic coding makes programs more reliable and consistent.
Programmers test programs by running them to be sure they produce the correct results. They make the necessary changes and recheck the program if errors occur. This process is called debugging. Some programmers prepare instructions for a computer operator who runs, or debugs, the program.
Programmers prepare various types of records and reports. They may also write user manuals. Experienced programmers may train or direct other workers.
Computer programmers often specialize in one of two areas:
Applications programmers usually focus on business, engineering, or science programs. They write software to handle a specific job, such as tracking inventory. They may also modify packaged software.
Systems programmers control software that runs an entire computer system. They make program changes that affect how the network, workstations, and central processing unit (CPU) of the system handle jobs. These changes also affect how the network communicates with auxiliary equipment, such as printers. Systems programmers have the highest level of expertise. They sometimes help other programmers determine the source of problems.