Computer programmers write code to create software programs. They turn the program designs created by software developers and engineers into instructions that a computer can follow. Programmers must debug the programs—that is, test them to ensure that they produce the expected results. If a program does not work correctly, they check the code for mistakes and fix them.
Programmers work closely with software developers, and in some businesses, their duties overlap. When this happens, programmers can do work that is typical of developers, such as designing the program. This entails initially planning the software, creating models and flowcharts detailing how the code is to be written, writing and debugging code, and designing an application or systems interface.
Software-as-a-service (SaaS), which consists of applications provided through the Internet, is a growing field. Although programmers typically need to rewrite their programs to work on different systems platforms such as Windows or OS X, applications created using SaaS work on all platforms. That is why programmers writing for software-as-a-service applications may not have to update as much code as other programmers and can instead spend more time writing new programs.
Some programs are relatively simple and usually take a few days to write, such as creating mobile applications for cell phones. Other programs, like computer operating systems, are more complex and can take a year or more to complete.