What Does a Computer Programmer Do?
Learn About the Salary, Required Skills, & More
Computer programmers write the code that enables software applications to provide functionality. Microsoft Excel, for example, can produce a chart or a graph based on data from a spreadsheet because a computer programmer designed the program to respond that way to user inputs. All software programs are designed to respond to user inputs in different ways, and detailed programs need to be able to respond to seemingly countless combinations of inputs. It is the job of computer programmers to make sure software programs respond appropriately to users and provide the desired functionality.
Computer Programmer Duties & Responsibilities
This job generally requires the ability to do the following work:
- Know computer languages
- Write computer programs
- Update computer programs
- Troubleshoot programs
- Test software programs
- Collaborate with other programmers
Computer Programmers write code through the use of computer languages, such as C++ and Java. Computer programmers create instructions for computers to generate meaningful output. Overall, it is the responsibility of computer programmers to write code and manipulate it into a language that computers can understand and follow.
They work closely with information technology staff, managers, and end users in their organizations or client organizations to develop, maintain, and test computer programs. Computer programmers respond to notifications by users of flaws in programs, identify malfunctioning code, and rewrite programs.
Computer Programmers are commonly employed by software companies. However, with the surge in access to computer programmers, many governmental and private sector companies, such as banks and law firms, have begun to employ computer programmers. It is not uncommon to see computer programmers working as freelancers, moving from project to project within technology consulting firms or as independent contractors.
Computer Programmer Salary
Pay for computer programmers can vary significantly depending on experience and the nature of the work. Those working for software publishers tend to earn more than those working in other industries.
- Median Annual Salary: $84,280 ($40.52/hour)
- Top 10% Annual Salary: $134,630 ($64.72/hour)
- Bottom 10% Annual Salary: $48,790 ($23.45/hour)
Education, Training, & Certification
Specific requirements vary by employer, but completing a degree program or a coding academy generally is necessary to begin a career as a computer programmer.
- Education: Both bachelor’s degrees and associate’s degrees in computer science are available at most institutions. Private institutes known as coding academies have arisen as another option for those without formal college training in programming. Coding academies offer an intensive and relatively short-term immersion experience in programming. Some academies offer low or no tuition in exchange for a percentage of salary once a job is landed.
- Certification: Certifications exist for nearly all programming languages or vendor-specific programming products. Whether or not they are required depends on specific employers, but having them can make a programmer more marketable.
- Training: It is recommended, that no matter what approach to education, those interested in computer programming complete at least one internship to test their interest and document their skills. Programming is very detail-oriented and can be tedious and unsatisfying for many individuals.
Computer Programmer Skills & Competencies
Aside from knowledge of computer languages and familiarity with relevant commercial products, there are several soft skills computer programmers should have to be successful.
- Analytical thinking: Computer programmers need to understand, manipulate, and repair complex computer code. This sometimes entails trying to isolate a problem that could be buried somewhere in thousands of lines of code, so they need to be able to think through the problem and narrow down where to look.
- Attention to detail: Computer programmers need to pay attention to every line of code written. One wrong command and the entire program could malfunction.
- Collaboration: Computer programmers may need help from another department or colleague to fix a software issue. It is important they have a collaborative mindset. The work programmers do often involves writing software to streamline work or solve a workflow problem, and they must collaborate with those who will be using the software.
- Focus: Writing computer programs involves long hours writing code or troubleshooting problems. To be successful, programmers need to be able to keep their attention zeroed in on the work they are doing.
Job opportunities for computer programmers are expected to decline 7% for the decade ending in 2026, according to the U.S. Bureau of Labor Statistics. This is significantly worse than the 7% growth projected for all occupations and the 13% growth projected for all computer-related occupations.
BLS attributes the decline to the availability of less expensive computer programmers overseas who can do work remotely.
While some collaboration is necessary, computer programmers can spend hours at a computer poring over lines of computer code. It can be tedious work. Some programmers work from home because the work can be done alone, but this is not always the case. Some programmers work in the offices of their employers, especially when they are involved in larger projects with other programmers.
Being a computer programmer usually is full-time work. While work can be done during standard business hours, many programmers who work from home can set their own schedules. Projects typically have deadlines that must be met, so programmers might need to work additional hours as those deadlines approach, especially if they’ve run into problems that needed solving.
How to Get the Job
Comparing Similar Jobs
People interested in computer programming also might consider one of the following career paths, listed with median annual salaries:
- Computer hardware engineer: $114,600
- Computer network architect: $109,020
- Computer systems analyst: $88,740