Programmers write, test, and troubleshoot code for software and applications.
The Bureau of Labor Statistics (BLS) projects a 10% decline in U.S. programmer employment between 2020 and 2030, due to global competition. However, the median annual programmer salary is more than double the median annual wage for all occupations.
Despite the competitive landscape, high-quality opportunities exist for the right programmers. Here, we examine what these professionals do, what they make, and what they need to qualify for employment.
What's life like as a programmer?
In general, computer programming involves coding for computer software and applications. Your job duties as a programmer may include:
- Designing and writing programs in various programming languages
- Troubleshooting and updating existing code
- Testing and debugging code
- Creating or refining code libraries
- Rewriting code to work on various platforms
Programmers may need knowledge of multiple programming languages, including C++, Java, and Python. If you're still learning to program, consider checking out a Java bootcamp, Python bootcamp, or coding website.
Programmers should also have problem-solving and analytical skills.
According to the BLS, industries employing the most programmers include computer systems design services, finance and insurance, and manufacturing. Programmers may work with software designers and developers, software engineers, other programmers, and clients.
Programmer work-life balance
Programmers typically work full-time hours within a traditional business work schedule. However, they enjoy location flexibility and can work remotely in many cases.
Most programmers work on deadlines, which can become stressful to meet if problems or errors slow them down. Programming isn't among the least stressful jobs in tech.
In the fast-changing technology world, continuing education is very important. Programmers who wish to stay ahead of the competition regularly refresh and update their knowledge and skills. They may master new programming languages and platforms.
Programmer salaries: What can you expect?
Programmer salaries depend on many factors, including experience, the type of coding job, and your qualifications and skill set. According to the BLS, the median annual salary was $89,190 in May 2020. The top 10% of professionals earned over $146,050.
Salaries vary by industry, too. In software publishing, programmers earned median annual wages of $103,710, compared to $92,390 in finance and insurance, $89,530 in manufacturing, and $88,510 in computer systems design services.
The table below showcases how location can impact programmer salary.
Top-paying states for programmers
Annual mean wage (May 2020)
No. of programmers employed
District of Columbia
What kind of programmers make the most money?
Programmers can increase their earning power by picking up new skills, such as the ability to use a new programming language.
The following table explores the salaries of computing professionals who use the top programming languages (as of November 2021). Salary information comes from PayScale.
Programmers can also pick up other tech skills to expand their earning potential, as employers may pay top-dollar for in-demand programming skills. You can demonstrate these skills by earning the best tech certifications for your resume.
Possible income-boosting skills and technologies to master include:
- Cloud architecture
- Data analysis
- UX/UI design
- Apache Solr
Advice from a programmer
Zack Hall is a software engineer with more than 10 years' experience. His work shows up in the Windows Store, the Edge browser, Amazon.com, Alexa, and SmartSheet. He's also an avid tinkerer and woodworker. He used this passion and his background in software to launch an online course, SketchUpForWoodworkers.com.
Responses have been edited for length and clarity.
ZDNet: What type of person is successful and thrives in a programming career? What type of person may not be the best fit?
Zack Hall: Having a programming career requires you to have solid programming fundamentals. This includes a good understanding of algorithms, data structures, and design patterns.
But to thrive in your career as a software developer, you'll need to develop soft skills. You'll need to have great communication skills to explain complex technical challenges to others that aren't close to the issue. You'll need to be able to deliver critical feedback in an empathetic way in code reviews of your teammates' work. And you'll need to be able to sell your software designs.
One of my former Alexa coworkers, Dave Smith, co-hosts an excellent podcast on the soft skills that are needed as a software engineer. It is called Soft Skills Engineering and I can't recommend it enough.
ZDNet: What's a typical day for a programmer?
ZH: In my standard day as a developer, I try to start off by looking at my teammates' requests for code review. I find this is the perfect task to help me ease back into the right headspace. This also helps keep teammates that are waiting for feedback unblocked in their work.
After this I'll start to pick back up where I left off in my tasks from the day before. This can be a coding task, a design task, or anything in between.
Sometime around late morning, our team has a standup. This is where each person discusses what they did the previous day, what they plan to do today, and what, if anything, they need help with.
After this meeting, I'll typically end up in a few discussions with teammates. We'll discuss ways to address challenges that we're facing.
Afterward, I'll typically get in another couple hours of work on my tasks for the day.
I try very hard to keep a 9-5 schedule. I find that when I have a countdown to 5 p.m., it helps me stay focused on my current tasks for the day. If you allow yourself to regularly stay late, it can be easy to get distracted or not focus your day on the most impactful work.
ZDNet: Since becoming a programmer, has there been anything about the role that you didn't expect or anticipate?
ZH: I think the number one thing that surprised me is how much you'll be continuously learning. The technologies that we use to build software change so quickly. You'll need an appetite to learn how to quickly come up to speed on unfamiliar technologies. Or you can get left behind fairly quickly.
What does it take to become a programmer?
However, employers may hire programmers with less extensive training, such as a computer programming associate degree or training from one of the top coding bootcamps.
This flexibility creates opportunities for aspiring programmers of all fields and backgrounds. Many employers value professional experience over specific training. To showcase their experience, fill your portfolio with projects that highlight a diverse skill set.
Programmers can also pursue specialized certifications to demonstrate their skills and experience with using vendor-specific technologies and products.
What skills do I need as a programmer?
Computer programmers need people skills to complement their specialized technical skills to be successful. The more hard and soft skills you have, the higher your programmer salary potential climbs.
Some of the most important technical skills include knowing several programming languages, understanding software and application design and functionality principles, and quality control.
As for soft skills, communication, problem-solving, and being detail-oriented and observant are key.
- Diverse programming languages
- Quality control analysis
- Software and application design and development
- Computer software and application functionality
- Data analysis
- Critical thinking
- Attention to detail
The programming field provides quality job and earning opportunities for people from many training and professional backgrounds.
Programmer salaries depend on many factors, such as location and individual skillsets. Set yourself up for success by understanding the skills and traits employers in this field most value.
Unless otherwise noted, salary and job growth data is drawn from the U.S. Bureau of Labor Statistics as of April 12, 2022.