Computer programmers write and test 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 that enable computers to generate meaningful output.
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 programmers, many governmental and private sector companies, such as banks and law firms, have begun to employ computer programmers on staff. 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: $86,550
- Top 10% Annual Salary: $140,250
- Bottom 10% Annual Salary: $50,150
Education, Training, & Certification
Specific requirements vary by employer, but completing a degree program or a coding academy is generally 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 certainly make a programmer more marketable.
- Training: It is recommended that no matter what level of education has been attained, those interested in computer programming should 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 spent writing code or troubleshooting problems. To be successful, programmers need to be able to keep their full attention on the work they are doing.
Job opportunities for computer programmers are expected to decline 9% for the decade ending in 2029, according to the U.S. Bureau of Labor Statistics. This is significantly worse than the 4% growth projected for all occupations and the 11% growth projected for all computer-related occupations.
The 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. Other programmers work in their employers' offices, especially when they are involved in larger projects with other programmers.
Being a computer programmer is usually 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
GET EXPERIENCE: Through internships, education, or training programs, be sure it is the right career for you.
CREATE A PORTFOLIO: Candidates who can show prospective employers actual programs that they have created will have the easiest time landing jobs. Create a web-based portfolio of your programming projects to share with employers and networking contacts.
NETWORK: Tap into your career network for help with finding open positions and getting job referrals.
SEARCH & APPLY: Search job sites like Indeed.com, Dice.com, and Getwork.com by keywords like "programmer" or "computer programmer" and by your favorite computer languages to expand your list of job targets.
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: $117,220
- Computer network architect: $112,690
- Computer systems analyst: $90,920