Computer Programmer Job Description, Salary, and Skills

computer programmers
••• PeopleImages.com / Digital Vision / Getty Images

Interested in becoming a computer programmer? Here's all the information you'll need to know to land a job as a computer programmer, including job responsibilities, education requirements, desired skills, employment outlook, and salary information. 

Computer Programmer Job Description

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 the computer programmer to write code and manipulate it into a language that the computer can understand and follow. 

They work closely with IT staff, managers, and end users in their organization 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. 

Education and Training Requirements

Most employers require computer programmers to have a bachelor’s degree in computer science or a related field. However, some employers do hire applicants with an associate's degree and internship experience.

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. The best models for prospective programmers are academies that offer low or no tuition in exchange for a percentage of salary once a job is landed. 

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.

Certifications for specific programming languages or for vendor-specific programming products are not required by all employers but are strongly recommended.  

Computer Programmer Salaries

According to the Bureau of Labor Statistics, Computer Programmers earned an average of $79,840 in 2016. The bottom 10% of programmers earned less than $45,570 and the top 10% earned at least $130,360.

Employment Outlook

According to the Bureau of Labor Statistics, employment of computer programmers is expected to decline by 7% from 2016 to 2026.  Many basic programming jobs will be outsourced to contractors in countries with lower labor costs. Programmers who can conceptualize software and apps and also write code will be in the highest demand.

Desired Skills and Qualities

  • Analytical Thinking: Computer programmers need to understand, manipulate, and repair complex computer code.
  • Strong 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.

More Computer Programming Skills

A - G

  • Algorithms
  • Analysis
  • Analytical
  • Analytics
  • Analyze Data
  • Applications
  • Application Development
  • Application Development Methodologies
  • Application Development Techniques
  • Application Development Tools
  • Application Programming Interfaces
  • Architecture
  • AROS
  • Ars Based Programming
  • Aspect Oriented Programming
  • Best Practices
  • Browsers
  • CASE Tools
  • Code
  • Coding
  • Collaboration
  • Communication
  • Components
  • Computer Platforms
  • Concurrent Programming
  • Computer Science
  • Constraint-based Programming
  • Customer Service
  • Database Management Systems (DBMS)
  • Database Techniques
  • Databases
  • Data
  • Data Analytics
  • Data Structures
  • Debugging
  • Design
  • Development
  • Development Tools
  • Documentation
  • Embedded Hardware
  • Emerging Technologies
  • Fourth Generation Languages

H - M

  • Hardware
  • HTML Authoring Tools
  • HTML Conversion Tools
  • Industry Systems
  • iOS
  • Information Systems
  • Implementation
  • Interface with Clients
  • Interface with Vendors
  • Internet
  • Languages
  • Linux
  • Logic
  • MacOS
  • Math
  • Mobile
  • Multimedia
  • Multi-Tasking

N - S

  • Operating Systems
  • Optimizing
  • Organizational
  • OS Programming
  • Parallel Processing
  • Personal
  • Physics
  • Planning
  • Post Object Programming
  • Problem Solving
  • Programming Languages
  • Programming Methodologies
  • Quality Control
  • Relational Databases
  • Relational Programming
  • Reporting
  • Revision Control
  • Self-Motivation
  • Software
  • Structured Query Language (SQL)
  • Symbolic Programming
  • System Architecture
  • System Development
  • System Design
  • System Programming
  • System Testing
  • Teamwork
  • Technical
  • Testing
  • Third Generation Languages
  • Troubleshooting
  • UNIX
  • Use Logical Reasoning
  • Web
  • Web Applications
  • Web Platforms
  • Web Services
  • Windowing Systems
  • Windows
  • Workstations

Quick Facts: Computer Programmer Occupational Outlook Handbook)