1. Skip to navigation
  2. Skip to content
  3. Skip to sidebar

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
  • 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.
Read more about the job

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 Outlook for Computer Programmers
  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:

    Interpersonal Relationships
  • 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.
  • Physical Work Conditions
  • Always work indoors.
  • Work near other people but have a few feet of space separating self from others.
  • Work Performance
  • 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.
  • Hours/Travel
  • 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."

Physical Demands

In a typical work setting, people in this career:

    People in this career frequently:
  • 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.
  • It is important for people in this career to be able to:
  • See details of objects that are less than a few feet away.
  • Speak clearly so listeners can understand.
  • Understand the speech of another person.
  • It is not as important, but still necessary, for people in this career to be able to:
  • 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.

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)


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.


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 attainedPercentage of workers in this occupation*
Less than high school diploma1
High school diploma or equivalent5
Some college, no degree15
Associate degree10
Bachelor's degree50
Master's degree18
Doctoral (Ph.D.) or professional degree2

* 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:

    Communicate
  • Read and understand work-related materials.
  • Understand spoken information by listening and asking questions.
  • Express ideas clearly when speaking or writing.
  • Reason and Problem Solve
  • 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 and Science
  • Use math skills to solve problems.
  • Add, subtract, multiply, and divide quickly and correctly.
  • Manage Oneself, People, Time and Things
  • Manage the time of self and others.
  • Check how well one is learning or doing something.
  • Work with People
  • Use several methods to learn or teach new things.
  • Be aware of others' reactions and change behavior in relation to them.
  • Work with Things
  • 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.
  • Perceive and Visualize
  • 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.

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
Desktop computers
Mainframe computers
  • Mainframe operating systems
Serial port cards

Technology

Analytical or scientific software
  • SAS software
  • Simulation program with integrated circuit emphasis SPICE
  • The MathWorks MATLAB
Application server software
  • IBM WebSphere
Charting software
  • Microsoft Office Visio
Compiler and decompiler software
  • Code generator software
  • Command interpreters
  • Compilers
  • Decompilers
  • Incremental compiler software
  • Inline code expander software
  • Interpreter software
  • Just-in-time compiler
  • Mixed code generator
  • One pass compiler software
  • Partial class generator software
  • Retargetable compiler
  • Stage compiler
  • Threaded code compiler
Configuration management software
  • IBM Rational ClearCase
  • Revision control software
Content workflow software
  • Emerald Software Group Emerald Green Office
  • Workflow software
Data base management system software
  • CAST SQL Builder
  • Computer Associates integrated data management system CA-IDMS
  • Data definition language DDL
  • Data manipulation language DML
  • Microsoft SQL Server
  • MySQL software
  • Oracle procedural language/structured query language PL/SQL
  • Pick software
  • Relational database management software
  • Sybase SQL Server
  • mSQL software
Data base reporting software
  • ReCrystallize Crystal Reports
Data base user interface and query software
  • IBM DB2
  • IEA Software Emerald
  • Microsoft Access
  • Structured query language SQL
  • dBASE Plus
Development environment software
  • A programming language APL
  • ABC Compiler
  • AWK
  • Ada
  • Adobe Systems Adobe PostScript
  • Advanced business application programming ABAP
  • Algorithmic language ALGOL
  • American National Standards Institute ANSI C
  • Assembler
  • B-Method
  • Beginner's all-purpose symbolic instruction code BASIC
  • Bigloo Scheme
  • C
  • Call-processing language CPL
  • Clipper
  • Code munger software
  • Common business oriented language COBOL
  • Computer On-line Real-time Applications Language CORAL 66
  • Eclipse software
  • Event-driven State-machines Programming
  • Formula translation/translator FORTRAN
  • Forth
  • Gambit Scheme
  • Haskell
  • ICON programming language
  • Interface definition language IDL
  • Interstate connection ICON
  • J
  • List processing language LISP
  • Logo
  • MUMPS M
  • Microsoft .NET Framework
  • Microsoft ESP SDK
  • Microsoft Extensible Application Markup Language (XAML)
  • Microsoft Visual Basic
  • Microsoft Visual Basic Scripting Edition VBScript
  • Microsoft Visual Studio
  • National Instruments LabVIEW
  • Pascal
  • Programming language one PL/I
  • Progress OpenEdge ABL
  • Prolog
  • Restructured extended executor REXX
  • Ruby
  • Scheme programming language
  • Source code migration software
  • String oriented symbolic language SNOBOL
  • Symantec Visual Cafe
  • Tier generator software
  • Web service definition language WDSL
  • Xerces2 Java Parser
Document management software
  • Virage VS Archive
Enterprise application integration software
  • Extensible markup language XML
  • Extensible stylesheet language XSL
  • Progress Sonic ESB
  • SAP NetWeaver BW
Graphical user interface development software
  • Basis BBx VisualPRO/5
  • Graphical user interface GUI development software
Graphics or photo imaging software
  • Adobe Systems Adobe Photoshop software
  • Corel CorelDraw Graphics Suite
Object or component oriented development software
  • ABC: the AspectBench Compiler for AspectJ
  • C++
  • Collaborative Application Markup Language CAML
  • Common Lisp Object System CLOS
  • E++ pattern language
  • Eiffel
  • Embarcadero Delphi
  • Greatis Object Inspector
  • Microsoft Visual Basic.NET
  • Microsoft Visual C# .NET
  • Modula
  • Oberon
  • Objective Caml
  • Objective-C
  • PowerSoft PowerBuilder
  • Practical extraction and reporting language Perl
  • Python
  • Self
  • Smalltalk
  • Sun Microsystems Java
Object oriented data base management software
  • Microsoft Visual FoxPro
Operating system software
  • Bourne Shell
  • Job control language JCL
Program testing software
  • Debugging software
  • Low-level debugger software
  • Source code editor software
  • Symbolic debugger software
Project management software
  • Microsoft Project
Requirements analysis and system architecture software
  • Unified modeling language UML
Spreadsheet software
  • Microsoft Excel
Transaction server software
  • Customer information control system CICS software
Web page creation and editing software
  • Adobe Systems Adobe Cold Fusion
  • Adobe Systems Adobe Flash Player
  • CoffeeCup software
  • Microsoft FrontPage
Web platform development software
  • Adobe Systems Adobe Flex
  • Apache Struts
  • Asynchronous JavaScript and XML AJAX
  • Cascading Style Sheets CSS
  • Hypertext markup language HTML
  • JavaScript
  • Microsoft ASP.NET
  • Microsoft Active Server Pages ASP
  • Microsoft Silverlight
  • Microsoft Visual C#
  • PHP: Hypertext Preprocessor
  • Progress WebSpeed Workshop
  • Ruby on Rails
  • Sun Microsystems JavaServer Pages JSP
Word processing software
  • Microsoft Word


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.