Computer Programmers
Computer programmers write and test the instructions that computers follow to perform tasks.
Every operation performed by a computer is based on instructions from a programming language. Computer programmers use these languages to create programs that we use every day.
Computer Programmers are in the Information Technology career cluster and the Programming and Software Development pathway.
Quick Facts
Wages: |
Well above the statewide median
$35.18 / hour Read more about wages |
Outlook: |
Percent Growth
-.3% Shrinking Read more about outlook |
Education & Training: |
Bachelor's degree is common. |
On the Job: |
Work Activities
Assess your skills |
Job Title Examples: |
Internet Programmer,
Programmer,
Software Developer
See more job title examples |
Source: Minnesota Department of Education, Minnesota Department of Employment and Economic Development, and CareerOneStop.
Wages & Outlook
Wages
Wages vary widely based on the programmer's level of education and experience. Wages also vary based on the tasks performed. For example, systems programmers tend to earn more than applications programmers. In addition, wages vary by employer and area of the country.
Benefits also vary by employer. Full-time programmers usually receive typical benefits. These include vacation, sick leave, health insurance, and a retirement plan.
View the Regional Wage Comparison Chart for:
Employment
In Minnesota, about 6,748 computer programmers work in this medium-sized occupation.
Major employers:
- Computer systems design companies
- Information services companies
- Finance and insurance agencies
- Federal, state, and local government agencies
A growing number of computer programmers work on contract or as independent consultants.
Outlook
Job growth for computer programmers will be slow because of several factors. First, many basic programming functions can be completed by other computer-savvy workers. Second, some computer programs can write basic code. Finally, there is increasing competition from businesses overseas. Routine work can be performed at a lower cost in many other countries. However, some growth will result from new applications needing to be developed for mobile technology and the healthcare industry.
Prospects should be best for college graduates with knowledge of, and experience with, a variety of programming languages and tools. Job seekers should stay up to date with the latest skills and technologies.
| Employment | Employment Change | |||
|---|---|---|---|---|
| 2010 | 2020 | Number | Percent | |
| Minnesota | 5,559 | 5,544 | -15 | -0.3% |
| 2010 | 2020 | Number | Percent | |
| Central Minnesota | 262 | 308 | 46 | 17.6% |
| Northeast Minnesota | 99 | 97 | -2 | -2% |
| Northwest Minnesota | 151 | 160 | 9 | 6% |
| Southeast Minnesota | 371 | 351 | -20 | -5.4% |
| Southwest Minnesota | 173 | 177 | 4 | 2.3% |
| Seven County Mpls-St Paul, MN | 4,560 | 4,527 | -33 | -0.7% |
Source: Minnesota Department of Employment and Economic Development and Minnesota Department of Education.
On the Job
Overview
Computer programmers write and test the instructions that computers follow to perform tasks.
Did you know that the first computer program was developed in 1843? How can that be? Computers weren't even around then. But the idea was. Ada Byron Lovelace published a paper that predicted the use of computers in everyday life. She also suggested a way to calculate "Bernoulli" numbers using another person's idea for a calculating machine, then called the "Analytical Engine." While she wasn't able to actually make the program, Ada designed it. Over a century later, the U.S. Department of Defense named a computer language after her: Ada.Computer programmers write detailed instructions that tell computers how to perform tasks. Programmers determine the steps that must be followed and the processes that must be completed in each step. Simple as this sounds, technical advances have changed the role of programmers. Sophisticated new languages and tools have made much of the programming work done today very complex. Job titles shift rapidly to reflect new areas of specialization or changes in technology. In general, computer programmers are those whose main job is to write programs. They have a wide range of duties.
Computer programs tell a computer what to do. They tell it which information to access, how to process it, and what equipment to use. Programs vary widely based on the type of information to be used or produced. For example, the instructions used to update financial records are very different from those used to create the conditions on board an aircraft for pilots in flight training. While simple programs can be written in a few hours, complex programs may require more than a year of work. In most of these cases, several programmers work together as a team under the supervision of a senior programmer. Programmers in large organizations may follow descriptions prepared by software engineers or systems analysts. Many programmers work with existing programs. They update, modify, and expand them based on the company's needs.
Programmers write programs by breaking each step into a logical series of instructions the computer can follow. They then code these instructions in one of several ways. They may use a programming language, such as COBOL. They may use an artificial intelligence language, such as Prolog. They may use one of the advanced languages, such as Java, C++, Delphi, or Visual Basic. Programmers usually know more than one language. Since many languages are similar, programmers may be able to learn new languages easily. They may use computer-aided software engineering (CASE) tools to add commands. CASE tools generate whole sections of code automatically. Use of these tools allows a programmer to focus on the unique parts of the program. It also makes programs more reliable and consistent. Programmers also insert comments in program instructions so other programmers can understand the coding.
Programmers test programs by running them to be sure they produce the correct results. If errors do occur, they make the necessary changes and recheck the program. This process is called debugging. Some programmers prepare instructions for a computer operator who runs, or debugs, the program.
Programmers are often grouped into two types. Applications programmers usually focus on business, engineering, or science programs. They write software to handle a specific job, such as tracking inventory. They may also modify packaged software. In contrast, systems programmers control software that runs the whole computer system. They make program changes that affect how the network, workstations, and central processing unit (CPU) of the system handle jobs. These changes also affect how the network communicates with auxiliary equipment, such as printers. Systems programmers have the highest level of expertise. They sometimes help other programmers determine the source of problems.
Programmers prepare various types of records and reports. They may also write user manuals. Experienced programmers may train or direct other workers.
Work Activities
The following list of occupational tasks is specific to this career.
- Write, update, and maintain computer programs or software to do specific tasks.
- Correct computer program errors.
- Test programs and software to be sure it works correctly.
- Keep a record of program development and changes so others will understand the process.
- Update, modify, and expand existing programs.
- Write or contribute to technical or user manuals.
- Study how a computer network responds to a program.
- Work with computer users and analysts to find and fix program problems.
- Debug programs by testing them, making changes, and rechecking them until they run correctly.
- Work with computer manufacturers and users to develop new programming methods.
- May train or direct other programmers or computer operators.
- Attend workshops and seminars to keep skills up to date.
People in this career perform the following list of tasks, but the tasks are common to many occupations.
- Use computers.
- Make decisions and solve problems.
- Get information needed to do the job.
- Identify objects, actions, and events.
- Communicate with supervisors, peers, or subordinates.
- Analyze data or information.
- Think creatively.
- Update and use job-related knowledge.
- Organize, plan, and prioritize work.
- Process information.
- Establish and maintain relationships.
- Explain the meaning of information to others.
- Monitor events, materials, and surroundings.
- Evaluate information against standards.
- Develop goals and strategies.
Working Conditions
In a typical work setting, people in this career:
- Are responsible for the work done by programmers they supervise.
- Have a medium level of social contact with coworkers. Programmers generally work alone while coding, but may meet with others to plan the program.
- Communicate with others daily by e-mail, telephone, and in person.
- Write letters and memos often.
- Work as part of a team.
- Always work indoors.
- Work near other people but have a few feet of space separating self from others.
- Must be sure that all details of the job are done and their work is exact. Programming errors could cost the company money in lost time or data.
- Must sometimes repeat the same physical and mental tasks.
- Work in a moderately competitive environment.
- Must meet strict deadlines often.
- Can set most tasks and goals without talking to a supervisor.
- Rarely consult a supervisor before making a decision.
- Often make decisions that affect others.
- Work 40 hours per week.
- May work long hours to solve critical problems or meet deadlines.
- May be able to perform some of their work at home by "telecommuting."
Interpersonal Relationships
Physical Work Conditions
Work Performance
Hours/Travel
Physical Demands
In a typical work setting, people in this career:
- Sit for long periods of time at a computer.
- Repeat the same movements.
- Use their hands to handle, control, or feel objects, tools, or controls.
- See details of objects that are less than a few feet away.
- Speak clearly so listeners can understand.
- Understand the speech of another person.
- Use hands and fingers to grasp, move, or assemble very small objects.
- See details of objects that are more than a few feet away.
- See differences between colors, shades, and brightness.
- Hold the arm and hand in one position or hold the hand steady while moving the arm.
People in this career frequently:
It is important for people in this career to be able to:
It is not as important, but still necessary, for people in this career to be able to:
Source: Minnesota Department of Education.
Education & Training
Preparation
To work as a computer programmer, you typically need to:
- have a high school diploma or GED; and
- have at least a bachelor's degree.
Education after high school
Most new computer programmers have at least a bachelor's degree. In the past, formal training was not as important. Many programmers learned on the job or through technical or associate programs. Now, with increasingly complex programming tasks and a growing number of college-trained applicants, a bachelor's degree is the common way to prepare.
Computer science is the most common major. However, a major in math or information systems is also acceptable. Another approach is to major in a specialty area such as engineering, science, or business. If you do not major in computer science, be sure to take programming courses.
Work experience
You should consider participating in an internship while in college. An internship is usually part of a four-year degree program. It offers you a chance to apply what you have learned in the classroom to a work situation. It also allows you to build skills and make contacts with people in the field.
On-the-job training
Many new programmers receive on-the-job training. In general, training lasts up to one year. You work under the guidance of experienced programmers. As you gain knowledge and experience you receive greater independence and work on more difficult tasks.
Because of the fast changing nature of this field, employers often offer training in the newest computer technologies, languages, and applications.
Military training
Some branches of the military train people to be computer systems specialists. Training lasts from seven to 13 weeks, depending on your specialty. Additional training occurs on the job.
Related Programs (Current training programs available)
- Computer Programming/Programmer, General
- Computer Programming, Specific Applications
- Computer Programming, Vendor/Product Certification
- Computer Programming, Other
- Computer Science
- Computer Graphics
- Modeling, Virtual Environments and Simulation.
- Computer Software Technology/Technician
- Medical Office Computer Specialist/Assistant
- Management Information Systems, General
Fields of Study (What to study to prepare for this career)
Click on any of the Fields of Study listed below to find out more about preparing for this career.
- Applied Mathematics
- Artificial Intelligence and Robotics
- Bioinformatics
- Computational Mathematics
- Computer Engineering Technology
- Computer Graphics
- Computer Programming
- Computer Science
- Computer Systems Analysis
- Computer Systems Networking and Administration
- Computer Systems Technology
- Database Administration
- Electronic Commerce
- Information Science
- Information Technology
- Management Information Systems
- Mathematics
- Medical Informatics
- Technical and Business Writing
- Web Page and Multimedia Design
- Webmaster and Web Management
Level of Education
The table below lists the level of education attained by a subset of workers in this occupation. The workers surveyed were between age 25 and 44.
| Education level attained | Percentage of workers in this occupation* |
|---|---|
| Less than high school diploma | 1 |
| High school diploma or equivalent | 5 |
| Some college, no degree | 15 |
| Associate degree | 10 |
| Bachelor's degree | 50 |
| Master's degree | 18 |
| Doctoral (Ph.D.) or professional degree | 2 |
* National data for computer programmers (SOC 15-1131).
Helpful High School Courses
In high school, take classes that prepare you for college. A college preparatory curriculum may be different from your state's graduation requirements. Math is an important part of programming. You should take as many math classes as possible.
You should also consider taking some advanced courses in high school. This includes Advanced Placement (AP) and International Baccalaureate (IB) courses if they are available in your school. If you do well in these courses, you may receive college credit for them. Advanced courses can also strengthen your college application.
Helpful electives to take in high school that prepare you for this occupation include:
- Computer Applications
- Computer Programming
- Computer Science
- Keyboarding
The courses listed above are meant to help you create your high school plan. If you have not already done so, talk to a school counselor or parent about the courses you are considering taking.
You should also check with a teacher or counselor to see if work-based learning opportunities are available in your school and community. These might include field trips, job shadowing, internships, and actual work experience. The goal of these activities is to help you connect your school experiences with real-life work.
Join some groups, try some hobbies, or volunteer with an organization that interests you. By participating in activities you can have fun, make new friends, and learn about yourself. Maybe one of them will help direct you to a future career.
Source: Minnesota Department of Education.
Skills
People in this career need to:
- Read and understand work-related materials.
- Understand spoken information by listening and asking questions.
- Express ideas clearly when speaking or writing.
- Analyze ideas and use logic to determine their strengths and weaknesses.
- Identify problems and review information. Develop, review, and apply solutions.
- Understand new information or materials by studying and working with them.
- Develop rules or follow guidelines for arranging items.
- Combine several pieces of information and draw conclusions.
- Notice when something is wrong or is likely to go wrong.
- Use reasoning to discover answers to problems.
- Determine how a system should work. Study how changes in conditions affect outcomes.
- Concentrate and not be distracted while performing a task.
- Judge the costs and benefits of a possible action.
- Use math skills to solve problems.
- Add, subtract, multiply, and divide quickly and correctly.
- Manage the time of self and others.
- Check how well one is learning or doing something.
- Use several methods to learn or teach new things.
- Be aware of others' reactions and change behavior in relation to them.
- Write computer programs.
- Analyze user needs and requirements when designing products.
- Design equipment and technology to meet user needs.
- Determine the causes of technical problems and find solutions for them.
- Determine the tools and equipment needed to do a job.
- Test and inspect products, services, or processes. Evaluate quality or performance.
- Install equipment, machines, wiring, or programs to meet specifications.
- Quickly and accurately compare letters, numbers, objects, pictures, or patterns.
- Identify a pattern (a figure, object, word, or sound) that is hidden in distracting material.
Communicate
Reason and Problem Solve
Use Math and Science
Manage Oneself, People, Time and Things
Work with People
Work with Things
Perceive and Visualize
Knowledge
People in this career need knowledge in the following areas:
- Computers and Electronics: Knowledge of computer hardware and software.
- English Language: Knowledge of the meaning, spelling, and use of the English language.
- Mathematics: Knowledge of the rules and uses of numbers. Areas of knowledge include arithmetic, algebra, geometry, and statistics.
- Customer and Personal Service: Knowledge of providing special services to customers based on their needs.
Interests
People in this career are people who tend to:
- Consider achievement important. They like to see the results of their work and to use their strongest abilities. They like to get a feeling of accomplishment from their work.
- Consider good working conditions important. They like jobs offering steady employment and good pay. They want employment that fits their individual work style. They may prefer doing a variety of tasks, working alone, or being busy all the time.
- Consider support from their employer important. They like to be treated fairly and have supervisors who will back them up. They prefer jobs where they are trained well.
- Consider independence important. They like to make decisions and try out ideas on their own. They prefer jobs where they can plan their work with little supervision.
- Consider recognition important. They like to work in jobs which have opportunities for them to advance, be recognized for their work, and direct and instruct others. They usually prefer jobs in which they are looked up to by others.
- Have investigative interests. They like work activities that have to do with ideas and thinking. They like to search for facts and figure out solutions to problems mentally.
- Have conventional interests. They like work activities that follow set procedures, routines, and standards. They like to work with data and detail. They prefer working where there is a clear line of authority to follow.
Source: Minnesota Department of Education.
Tools & Technology for Computer Programmers
Tools
Computer servers
| Serial port cards |
Technology
Analytical or scientific software
| Document management software
|
Licensing / Certification
Computer programmers can obtain voluntary certification from the hardware and software manufacturers who offer certification programs on their products. Certification is occasionally required for employment.
Certification Details
Certifications are examinations that test or enhance your knowledge, experience or skills in an occupation or profession.
There are 123 certifications related to this career.
Licensing Details
No State of Minnesota license requirements are found for this career.
Source: Minnesota Department of Employment and Economic Development and CareerOneStop.
Jobs
Find Jobs
ISEEK works in partnership with MinnesotaWorks to promote thousands of available jobs in Minnesota. Internship, apprenticeship, and volunteer opportunities are also posted here. Make sure you visit often as new jobs are posted daily.
Powered by MinnesotaWorks
Hiring Practices
Required skills vary by employer. Some employers use computers for scientific or engineering applications. They often prefer college graduates with degrees in computer or information science, math, engineering, or the physical sciences. Graduate degrees are required for some jobs. Other employers use computers for business applications. They generally prefer applicants with college courses in information systems and business.
Employers often prefer applicants who know newer programming languages and tools, such as C++, Visual Basic, and Java. Employers also seek programmers familiar with languages that involve graphic user interface (GUI) and systems programming. Employers also prefer applicants with general business skills and experience related to the operations of the firm. Students can improve their job prospects by completing an internship.
In general, employers look for people with excellent programming skills. They also look for applicants who can think logically and pay close attention to detail. This occupation requires patience, persistence, and the ability to do analytical work, especially under pressure. Creativity is also important when programmers design solutions. The ability to work with abstract concepts is especially important. Programmers also must be able to communicate well with non-technical staff.
Advancement Opportunities
Skilled programmers who stay up to date with the latest technology should have good prospects for advancement. This is also true for those who have specialized knowledge and experience. In large organizations, programmers may be promoted to lead programmer. This position has both programming and supervisory responsibilities. Some applications programmers move into systems programming. In general, they do this by gaining experience and taking courses in systems software. Those who have general business experience may become programmer analysts or systems analysts. Some may be promoted to managerial positions. Other programmers may work in research and development areas, such as multimedia or Internet technology.
Employers are increasingly contracting out programming jobs. Thus, more opportunities should arise for experienced programmers to work as consultants.
Job Title Examples
Internet Programmer, Programmer, Software Developer, Programmer Analyst
Similar Careers
Below are careers similar to Computer Programmers you may be interested in reading about.
If you are looking to broaden your job search,
these careers require similar skills. Click on the names to link to their career profile.
Computer Engineers
Computer Operators
Computer Support Specialists
Computer Systems Administrators
Computer Systems Analysts
Computer and Information Systems Managers
Database Administrators
Numerical Control Tool Programmers
Operations Research Analysts
Web Developers
Similar Military Careers
Below are similar military careers you may be interested in reading about. Click on the names to link to their career description.
Computer Systems Officers
Related Industries
Below are industries related to Computer Programmers you may be interested in reading about. Employers in these industries typically hire
Computer Programmers. Click on the names to link to their industry profile.
Advertising
Banking And Finance
Business Management And Support Services
Computers And Electronic Products
Education
Engineering, Accounting, And Architecture
Information And Internet Services
Insurance
Investments
Legal Services
Machinery Manufacturing
Mining And Quarrying
Motion Pictures And Sound Recording
Professional And Consulting Services
Research And Development
Software And Computer Services
Telecommunications
Wholesale Trade
Source: Minnesota Department of Employment and Economic Development and Minnesota Department of Education.


