Home page

Computer Programmers

At a Glance

  • Write programs that tell a computer what to do
  • Usually know more than one programming language
  • Spend working hours alone, but often work in teams
  • May have flexible schedules, including telecommuting
  • Often work long hours
  • Have at least a bachelor's degree
  • Stay up to date on new programming languages

Career summary

Computer programmers write and test the instructions that computers follow to perform tasks.

#no alt titles were applicable, nothing else brought over

#review 3/21/19 lh

Computer programs are instructions for computers. Computer programs tell computers:

Programs vary widely based on the type of information being used or produced. Simple programs can be written in a few hours, but complex programs may require more than a year of work. Long projects usually require several programmers to work together as a team under the supervision of a senior programmer.

Programmers write programs by breaking each task into a logical series of instructions the computer can follow. There are many programming languages. Programmers usually know more than one language. Since many languages are similar, programmers may be able to learn new languages easily.

Programmers may use computer-aided software engineering (CASE) tools to add commands. CASE tools generate whole sections of code automatically so a programmer can focus on the unique parts of the program. Automatic coding makes programs more reliable and consistent.

Programmers test programs by running them to be sure they produce the correct results. They make the necessary changes and recheck the program if errors occur. This process is called debugging. Some programmers prepare instructions for a computer operator who runs, or debugs, the program.

Programmers prepare various types of records and reports. They may also write user manuals. Experienced programmers may train or direct other workers.

Computer programmers often specialize in one of two areas:

Applications programming

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.

Systems programming

Systems programmers control software that runs an entire 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.

Related careers

This career is part of the Information Technology cluster of careers.

Related careers include:

Military careers

Job duties

Task list

The following list of tasks is specific to computer programmers.

Common work activities

Computer programmers perform the following tasks. These tasks are common to many careers.

Work requirements

Working conditions

In a typical work setting, computer programmers:

Interpersonal relationships

Physical work conditions

Work performance


Physical demands

Computer programmers frequently:

It is important for computer programmers to be able to:

It is not as important, but still necessary, for computer programmers to be able to:

Skills and abilities

Computer programmers need to:


Reason and problem solve

Use math and science

Manage oneself, people, time, and things

Work with people

Work with things

Perceive and visualize

Education and training

Educational programs

The programs of study listed below will help you prepare for the occupation or career cluster you are exploring.

Programs of study directly related to this occupation

Other programs of study to consider


To work as a computer programmer, you typically need to:

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.

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 career include:

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. Here are examples of activities and groups that may be available in your high school or community.

Things to know

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. 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.

Certification by the Institute for Certification of Computing Professionals can be of value for recent graduates. See the Other Resources section of this description for contact information for this organization.

#Certs still offered 3/21/19 lh


Keep abreast of commonly used and new and emerging programming languages that are used in the industry you would like to work.

Costs to workers

Workers may wish to join a professional association, which may have annual dues. Some computer programmers, especially independent contractors who are working with engineering applications, are required to purchase errors and omissions insurance, which can be expensive. Independent business computer programmers are often required to carry general liability insurance. Workers may also need to pay for continuing education or certificate classes to keep up with changes in the field.

#Took over national content 3/29/16 as second paragraph made reference to Visual Basic as a newer programmming language,etc. Decided not to reference particular languages unless add to Tips at some point, cj.

Job listings

Listed below are links to job categories from the National Labor Exchange that relate to this career. Once you get a list of jobs, you can view information about individual jobs and find out how to apply. If your job search finds too many openings, or if you wish to search for jobs outside of Washington, you will need to refine your search.

To get a listing of current jobs from the WorkSource system, go to the WorkSource website (external link).


Computer programmers (SOC 15-1131)

Pay Period
Washington Hourly $35.88 $51.07 $63.23 $74.52 $81.26
Monthly $6,218 $8,850 $10,958 $12,914 $14,082
Yearly $74,630 $106,220 $131,520 $155,000 $169,030
    Bellingham Hourly (1) (1) (1) (1) (1)
Monthly (1) (1) (1) (1) (1)
Yearly (1) (1) (1) (1) (1)
    Bremerton-Silverdale Hourly $33.74 $36.41 $40.95 $46.39 $49.66
Monthly $5,847 $6,310 $7,097 $8,039 $8,606
Yearly $70,184 $75,737 $85,186 $96,507 $103,300
    Kennewick-Richland Hourly $25.28 $29.69 $37.88 $58.48 $77.41
Monthly $4,381 $5,145 $6,565 $10,135 $13,415
Yearly $52,588 $61,755 $78,789 $121,650 $161,027
    Longview Hourly $19.99 $26.57 $37.62 $47.24 $56.09
Monthly $3,464 $4,605 $6,520 $8,187 $9,720
Yearly $41,573 $55,274 $78,252 $98,255 $116,678
    Olympia-Tumwater Hourly $35.69 $50.40 $55.64 $60.55 $63.50
Monthly $6,185 $8,734 $9,642 $10,493 $11,005
Yearly $74,235 $104,846 $115,728 $125,943 $132,072
    Seattle-Tacoma-Bellevue Hourly $38.13 $53.50 $65.76 $76.32 $82.81
Monthly $6,608 $9,272 $11,396 $13,226 $14,351
Yearly $79,322 $111,263 $136,762 $158,728 $172,242
    Spokane-Spokane Valley Hourly $20.94 $26.14 $33.95 $39.09 $46.89
Monthly $3,629 $4,530 $5,884 $6,774 $8,126
Yearly $43,553 $54,368 $70,617 $81,301 $97,541
    Vancouver Hourly $24.15 $30.65 $42.33 $49.47 $62.00
Monthly $4,185 $5,312 $7,336 $8,573 $10,745
Yearly $50,229 $63,761 $88,066 $102,890 $128,958
    Walla Walla Hourly $17.09 $18.97 $38.20 $63.18 $74.24
Monthly $2,962 $3,288 $6,620 $10,949 $12,866
Yearly $35,550 $39,475 $79,460 $131,426 $154,425
    Wenatchee Hourly $32.56 $48.08 $56.80 $61.69 $64.61
Monthly $5,643 $8,332 $9,843 $10,691 $11,197
Yearly $67,713 $100,021 $118,155 $128,296 $134,380
    Yakima Hourly $16.51 $18.29 $29.12 $44.54 $49.48
Monthly $2,861 $3,170 $5,046 $7,719 $8,575
Yearly $34,350 $38,040 $60,563 $92,653 $102,903
United States Hourly $23.46 $30.97 $40.52 $52.46 $64.73
Monthly $4,066 $5,367 $7,022 $9,091 $11,218
Yearly $48,790 $64,410 $84,280 $109,120 $134,630

(1) Wage estimate is not available.

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.

Employment and outlook

Washington outlook


The table below provides information about the number of workers in this career in various regions. It also provides information about the expected growth rate and future job openings.

Computer programmers (SOC 15-1131)

Location Current employment Growth over 10 years Annual openings
Washington 11,738 2.6% 16.1% 808
    Adams, Chelan, Douglas, Grant, and Okanogan Counties 23 78.3% 13.4% 6
    Asotin, Columbia, Ferry, Garfield, Lincoln, Pend Oreille, Stevens, Walla Walla, and Whitman Counties 29 -6.9% 8.6% 1
    Clallam, Jefferson, and Kitsap Counties 14 7.1% 11.9% 1
    Clark, Cowlitz, and Wahkiakum Counties 368 10.6% 15.2% 32
    Grays Harbor, Lewis, Mason, Pacific, and Thurston Counties 92 12.0% 14.1% 8
    Island, San Juan, Skagit, and Whatcom Counties 54 16.7% 14.6% 5
    King County 10,329 1.8% 19.6% 692
    Kittitas, Klickitat, Skamania, and Yakima Counties 23 0.0% 13.8% 1
    Pierce County 296 11.5% 15.2% 26
    Snohomish County 205 1.5% 12.4% 13
    Spokane County 202 10.9% 13.9% 17
United States 250,300 -7.2% 5.2% 15,100

National employment

Major employers:

A growing number of computer programmers work on contract or as independent consultants.

National outlook

Job growth for computer programmers is expected to decline. Many companies have sent programming work overseas where wages are lower. Some demand will result as applications are developed for mobile technology and the health care 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.

Other resources

Association for Computing Machinery (external link)
1601 Broadway, 10th Floor1
New York, NY 10019-7434
Association for Computing Machinery SIGGRAPH (external link)
Association for the Advancement of Artificial Intelligence (external link)
Association for Women in Computing - Puget Sound Chapter (external link)
3743 S. 170th Street
Sea-Tac, WA 98188
Computing Research Association (external link)
1828 L Street, NW, Suite 800
Washington, DC 20036-4632
IEEE Computer Society (external link)
2001 L Street NW, Suite 700
Washington, DC 20036
Information Technology Industry Council (external link)
1101 K Street NW, Suite 610
Washington, DC 20005
Institute for Certification of Computing Professionals (ICCP) (external link)
244 S Randall Road #116
Elgin, IL 60123
International Association for Computer Information Systems (external link)
International Game Developers Association (external link)
150 Eglinton Ave. East, Suite 402
Toronto, ON M4P 1E8 Canada
Society for Industrial and Applied Mathematics (external link)
3600 Market Street, 6th Floor
Philadelphia, PA 19104
Technology Student Association (external link)
1904 Association Drive
Reston, VA 20191-1540
The Advanced Computing Systems Association (external link)
Washington Interactive Network (external link)
Washington Technology Industry Association (external link)
2200 Alaskan Way, Suite 390
Seattle, WA 98121


Career cluster

Career path

O*Net (external link) occupation

O*Net job zone (external link)

DOT occupations

Holland occupational cluster