Computer programmers write programs in a variety of computer languages, such as C++ and Java.
Computer programmers write, modify, and test code and scripts that allow computer software and applications to function properly. They turn the designs created by software developers and engineers into instructions that a computer can follow. In addition, programmers run tests to ensure that newly created applications and software produce the expected results. If the products do not work correctly, programmers check the code or scripts for mistakes and modify them.
Duties
Computer programmers typically do the following:
Write programs in a variety of computer languages, such as C++ and Java
Update and expand existing programs
Test programs for errors and fix the faulty lines of computer code
Create, modify, and test code or scripts in software that simplifies development
Programmers work closely with software developers, and in some businesses their duties overlap. When such overlap occurs, programmers may be required to take on some of the tasks that are typically assigned to developers, such as designing programs.
Programmers use code libraries, which are collections of independent lines of code, to simplify their writing and improve their efficiency. They may create their own code libraries or make use of existing ones.
In addition, programmers may write or use software-as-a-service (SaaS) applications that are centrally hosted online. Although programmers typically need to rewrite their programs to work on different system platforms, such as Windows or OS X, applications created with SaaS work on all platforms. Accordingly, programmers writing SaaS applications may not have to rewrite as much code as other programmers do and can instead spend more time writing new programs.
Most programmers have a degree in computer science or a related field.
Computer programmers typically need a bachelor’s degree in computer science or a related subject. Most programmers specialize in several programming languages.
Education
Computer programmers typically need a bachelor's degree in computer and information technology or a related field, such as mathematics. However, some employers hire workers who have other degrees or experience in specific programming languages. Programmers who work in specific fields, such as healthcare or accounting, may take classes in that field to supplement their computer-related degree. In addition, employers may prefer to hire candidates who have experience gained through internships.
Most programmers learn computer languages while in school. However, a computer science degree gives students the skills they need to learn new computer languages easily. Students get experience writing code, testing programs, fixing errors, and doing many other tasks that they will perform on the job.
To keep up with changing technology, computer programmers may take continuing education classes and attend professional development seminars to learn new programming languages or about upgrades to programming languages they already know.
Licenses, Certifications, and Registrations
Programmers may become certified in specific programming languages or for vendor-specific programming products. Some companies require their computer programmers to be certified in the products they use.
Advancement
Programmers who have general business experience may become computer systems analysts. With experience, some programmers may become software developers. They may also be promoted to managerial positions. For more information, see the profiles on computer systems analysts, software developers, and computer and information systems managers.
Important Qualities
Analytical skills. Computer programmers must understand complex instructions in order to create computer code.
Communication skills. Although computer programmers work alone to write code, they must have effective communication skills to coordinate work on large projects with team members and managers.
Detail oriented. Computer programmers must closely examine the code that they write, modify, or test, because a small mistake may affect the entire computer program.
Problem-solving skills. Programmers check the code for errors and fix any they find.
Note: All Occupations includes all occupations in the U.S. Economy. Source: U.S. Bureau of Labor Statistics, Occupational Employment and Wage Statistics
The median annual wage for computer programmers was $93,000 in May 2021.
The median wage is the wage at which half the workers in an occupation earned more than that amount and half earned less. The lowest 10 percent earned less than $47,560, and the highest 10 percent earned more than $155,240.
In May 2021, the median annual wages for computer programmers in the top industries in which they worked were as follows:
Note: All Occupations includes all occupations in the U.S. Economy. Source: U.S. Bureau of Labor Statistics, Employment Projections program
Employment of computer programmers is projected to decline 10 percent from 2021 to 2031.
Despite declining employment, about 9,600 openings for computer programmers are projected each year, on average, over the decade.
All of those openings are expected to result from the need to replace workers who transfer to other occupations or exit the labor force, such as to retire.
Employment
Computer programming work continues to be automated, helping computer programmers to become more efficient in some of their tasks. Many companies are leveraging technologies to automate repetitive tasks, such as code formatting, to save time and money. Automation of this routine work could allow computer programmers to focus on other tasks, such as strategic planning activities, that cannot be automated. In addition, some computer programming tasks are more commonly done by other computer occupations, such as developers or analysts.
Employment projections data for computer programmers, 2021-31
Occupational Title
SOC Code
Employment, 2021
Projected Employment, 2031
Change, 2021-31
Employment by Industry
Percent
Numeric
SOURCE: U.S. Bureau of Labor Statistics, Employment Projections program