Career profile
Also known as Analyst Programmer, Application Programmer Analyst, Computer Programmer, Computer Programmer Analyst, Internet Programmer, Java Developer, Programmer, Programmer Analyst, Web Applications Programmer, Web Programmer
Computer Programmer
Also known as Analyst Programmer, Application Programmer Analyst, Computer Programmer
-
Interests Profile
-
-
Investigative
-
Conventional
-
Realistic
-
Pay Range
-
$51,440 - $146,050 (annual)
-
Required Skills
-
-
Programming
-
Active Listening
-
Critical Thinking
-
Knowledge Areas
-
-
Computers and Electronics
-
Mathematics
-
Engineering and Technology
-
Core tasks
-
-
Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.
-
Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.
-
Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements.
What does a Computer Programmer do?
Computer Programmers create, modify, and test the code and scripts that allow computer applications to run.
In addition, Computer Programmers
-
work from specifications drawn up by software and web developers or other individuals,
-
may develop and write computer programs to store, locate, and retrieve specific documents, data, and information.
What kind of tasks does a Computer Programmer perform regularly?
Computer Programmers are often responsible for overseeing or executing some or all of the following tasks:
-
Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.
-
Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.
-
Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements.
-
Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking inventory, storing or retrieving data, or controlling other equipment.
-
Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.
-
Conduct trial runs of programs and software applications to be sure they will produce the desired information and that the instructions are correct.
-
Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.
-
Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.
-
Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.
-
Write or contribute to instructions or manuals to guide end users.
-
Investigate whether networks, workstations, the central processing unit of the system, or peripheral equipment are responding to a program's instructions.
-
Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programmer.
-
Assign, coordinate, and review work and activities of programming personnel.
The above responsibilities are specific to Computer Programmers. More generally, Computer Programmers are involved in several broader types of activities:
Activities
|
Importance |
Details |
Working with Computers
|
|
Using computers and computer systems (including hardware and software) to program, write software, set up functions, enter data, or process information.
|
Processing Information
|
|
Compiling, coding, categorizing, calculating, tabulating, auditing, or verifying information or data.
|
Getting Information
|
|
Observing, receiving, and otherwise obtaining information from all relevant sources.
|
Analyzing Data or Information
|
|
Identifying the underlying principles, reasons, or facts of information by breaking down information or data into separate parts.
|
Making Decisions and Solving Problems
|
|
Analyzing information and evaluating results to choose the best solution and solve problems.
|
Using computers and computer systems (including hardware and software) to program, write software, set up functions, enter data, or process information.
Compiling, coding, categorizing, calculating, tabulating, auditing, or verifying information or data.
Observing, receiving, and otherwise obtaining information from all relevant sources.
Analyzing Data or Information
Identifying the underlying principles, reasons, or facts of information by breaking down information or data into separate parts.
Making Decisions and Solving Problems
Analyzing information and evaluating results to choose the best solution and solve problems.
What is a Computer Programmer salary?
The median salary for a Computer Programmer is
$89,190,
and the average salary is
$95,640.
Both the median and average roughly describe the middle of the Computer Programmer salary range, but the average is more easily affected by extremely high or low salaries.
Many Computer Programmers earn significantly more or less than the average, due to several factors.
About 10% of Computer Programmers earn less than $51,440 per year,
25% earn less than $67,370,
75% earn
less than $116,220, and
90% earn
less than $146,050.
Between the years of 2020 and 2030, the number of Computer Programmers is expected to change by -9.9%, and there should be roughly 9,700 open positions for Computer Programmers every year.
-
Median annual salary
-
$89,190
-
Typical salary range
-
$51,440 -
$146,050
-
Projected growth (2020 - 2030)
-
-9.9%
What personality traits are common among Computer Programmers?
Interests
Career interests describe a person's preferences for different types of working environments and activities. When a person's interest match the demands of an occupation, people are usually more engaged and satisfied in that role.
Compared to most occupations, those who work as a Computer Programmer are usually higher in their
Investigative
and
Conventional
interests.
Computer Programmers typically have very strong
Investigative
interests. Investigative occupations frequently involve working with ideas, and require an extensive amount of thinking. These occupations can involve searching for facts and figuring out problems mentally.
Also,
Computer Programmers typically have strong
Conventional
interests. Conventional occupations frequently involve following set procedures and routines. These occupations can include working with data and details more than with ideas. Usually there is a clear line of authority to follow.
Values
People differ in their values, or what is most important to them for building job satisfaction and fulfillment.
Compared to most people, those working as a Computer Programmer tend to value
Achievement,
Working Conditions, and
Support.
Most importantly,
Computer Programmers strongly value
Achievement.
Occupations that satisfy this work value are results oriented and allow employees to use their strongest abilities, giving them a feeling of accomplishment.
Second,
Computer Programmers strongly value
Working Conditions.
Occupations that satisfy this work value offer job security and good working conditions.
Lastly,
Computer Programmers strongly value
Support.
Occupations that satisfy this work value offer supportive management that stands behind employees.
Psychological Demands
Each occupation brings its own set of psychological demands, which describe the characteristics necessary to perform the job well.
In order to perform their job successfully, people who work as Computer Programmers must consistently demonstrate qualities such as
attention to detail,
analytical thinking, and
integrity.
Below, you'll find a list of qualities typically required of Computer Programmers, ranked by importance:
Demands
|
Importance |
Details |
Attention to Detail
|
|
Job requires being careful about detail and thorough in completing work tasks.
|
Analytical Thinking
|
|
Job requires analyzing information and using logic to address work-related issues and problems.
|
Integrity
|
|
Job requires being honest and ethical.
|
Cooperation
|
|
Job requires being pleasant with others on the job and displaying a good-natured, cooperative attitude.
|
Independence
|
|
Job requires developing one's own ways of doing things, guiding oneself with little or no supervision, and depending on oneself to get things done.
|
Job requires being careful about detail and thorough in completing work tasks.
Job requires analyzing information and using logic to address work-related issues and problems.
Job requires being honest and ethical.
Job requires being pleasant with others on the job and displaying a good-natured, cooperative attitude.
Job requires developing one's own ways of doing things, guiding oneself with little or no supervision, and depending on oneself to get things done.
What education and training do Computer Programmers need?
Many Computer Programmers will have a four-year bachelor's degree, but some do not.
Computer Programmers usually need several years of work-related experience, on-the-job training, and/or vocational training.
Educational degrees among Computer Programmers
-
1.0% did not complete
high school or secondary school
-
4.9% completed
high school or secondary school
-
12.2% completed
some college coursework
-
8.0% earned a
Associate's degree
-
50.2% earned a
Bachelor's degree
-
21.1% earned a
Master's degree
-
2.5% earned a
doctorate or professional degree
Knowledge and expertise required by Computer Programmers
Computer Programmers may benefit from understanding of specialized subject areas, such as
computers and electronics,
mathematics, or
engineering and technology
knowledge.
The list below shows several areas in which most Computer Programmers might want to build proficiency, ranked by importance.
Knowledge areas
|
Importance |
Details |
Computers and Electronics
|
|
Knowledge of circuit boards, processors, chips, electronic equipment, and computer hardware and software, including applications and programming.
|
Mathematics
|
|
Knowledge of arithmetic, algebra, geometry, calculus, statistics, and their applications.
|
Engineering and Technology
|
|
Knowledge of the practical application of engineering science and technology. This includes applying principles, techniques, procedures, and equipment to the design and production of various goods and services.
|
Customer and Personal Service
|
|
Knowledge of principles and processes for providing customer and personal services. This includes customer needs assessment, meeting quality standards for services, and evaluation of customer satisfaction.
|
Administration and Management
|
|
Knowledge of business and management principles involved in strategic planning, resource allocation, human resources modeling, leadership technique, production methods, and coordination of people and resources.
|
Computers and Electronics
Knowledge of circuit boards, processors, chips, electronic equipment, and computer hardware and software, including applications and programming.
Knowledge of arithmetic, algebra, geometry, calculus, statistics, and their applications.
Engineering and Technology
Knowledge of the practical application of engineering science and technology. This includes applying principles, techniques, procedures, and equipment to the design and production of various goods and services.
Customer and Personal Service
Knowledge of principles and processes for providing customer and personal services. This includes customer needs assessment, meeting quality standards for services, and evaluation of customer satisfaction.
Administration and Management
Knowledge of business and management principles involved in strategic planning, resource allocation, human resources modeling, leadership technique, production methods, and coordination of people and resources.
Important Abilities needed by Computer Programmers
Computer Programmers must develop a particular set of
abilities
to perform their job well. Abilities are individual capacities that influence a person's information processing, sensory perception, motor coordination, and physical strength or endurance. Individuals may naturally have certain abilities without explicit training, but most abilities can be sharpened somewhat through practice.
For example, Computer Programmers need abilities such as
written comprehension,
oral comprehension, and
near vision
in order to perform their job at a high level. The list below shows several important abilities for Computer Programmers, ranked by their relative importance.
Abilities
|
Importance |
Details |
Written Comprehension
|
|
The ability to read and understand information and ideas presented in writing.
|
Oral Comprehension
|
|
The ability to listen to and understand information and ideas presented through spoken words and sentences.
|
Near Vision
|
|
The ability to see details at close range (within a few feet of the observer).
|
Problem Sensitivity
|
|
The ability to tell when something is wrong or is likely to go wrong. It does not involve solving the problem, only recognizing that there is a problem.
|
Deductive Reasoning
|
|
The ability to apply general rules to specific problems to produce answers that make sense.
|
The ability to read and understand information and ideas presented in writing.
The ability to listen to and understand information and ideas presented through spoken words and sentences.
The ability to see details at close range (within a few feet of the observer).
The ability to tell when something is wrong or is likely to go wrong. It does not involve solving the problem, only recognizing that there is a problem.
The ability to apply general rules to specific problems to produce answers that make sense.
Critical Skills needed by Computer Programmers
Skills
are developed capacities that enable people to function effectively in real-world settings. Unlike abilities, skills are typically easier to build through practice and experience. Skills influence effectiveness in areas such as learning, working with others, design, troubleshooting, and more.
Computer Programmers frequently use skills like
programming,
active listening, and
critical thinking
to perform their job effectively. The list below shows several critical skills for Computer Programmers, ranked by their relative importance.
Skills
|
Importance |
Details |
Programming
|
|
Writing computer programs for various purposes.
|
Active Listening
|
|
Giving full attention to what other people are saying, taking time to understand the points being made, asking questions as appropriate, and not interrupting at inappropriate times.
|
Critical Thinking
|
|
Using logic and reasoning to identify the strengths and weaknesses of alternative solutions, conclusions, or approaches to problems.
|
Complex Problem Solving
|
|
Identifying complex problems and reviewing related information to develop and evaluate options and implement solutions.
|
Quality Control Analysis
|
|
Conducting tests and inspections of products, services, or processes to evaluate quality or performance.
|
Writing computer programs for various purposes.
Giving full attention to what other people are saying, taking time to understand the points being made, asking questions as appropriate, and not interrupting at inappropriate times.
Using logic and reasoning to identify the strengths and weaknesses of alternative solutions, conclusions, or approaches to problems.
Identifying complex problems and reviewing related information to develop and evaluate options and implement solutions.
Conducting tests and inspections of products, services, or processes to evaluate quality or performance.
What is the source of this information?
The information provided on this page is adapted from data and descriptions published by the U.S. Department of Labor, Employment and Training Administration under the CC BY 4.0 license. TraitLab has modified some information for ease of use and reading, and the U.S. Department of Labor, Employment, and Training Administration has not approved, endorsed, or tested these modifications.
If you have any questions or suggestions about this information, please send a message.