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:
- Which information to access
- How to process information
- What equipment to use
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:
- Computer and Information Research Scientists
- Computer Engineers
- Computer Network Architects
- Computer Network Support Specialists
- Computer Operators
- Computer Systems Analysts
- Computer User Support Specialists
- Database Administrators
- Geographic Information Systems Specialists
- Information Security Analysts
- Operations Research Analysts
- Robotics Engineers
- Validation Engineers
- Video Game Designers
- Video Game Testers
- Web Developers
Military careers
Job duties
Task list
The following list of tasks is specific to computer programmers.
- Write, update, and maintain computer programs or software to do specific tasks.
- Debug programs by testing them, making changes, and rechecking them until they run 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.
- Work with computer manufacturers and users to develop new programming methods.
- Attend workshops and seminars to keep skills up to date.
- May develop websites.
Common work activities
Computer programmers perform the following tasks. These tasks are common to many careers.
- Use computers
- Process information
- Analyze data or information
- Get information needed to do the job
- Make decisions and solve problems
- Think creatively
- Identify objects, actions, and events
- Update and use job-related knowledge
- Communicate with supervisors, peers, or subordinates
- Estimate sizes, quantities, time, cost, or materials needed
- Document and record information
- Develop goals and strategies
- Organize, plan, and prioritize work
- Evaluate information against standards
- Develop and build teams
- Explain the meaning of information to others
- Establish and maintain relationships
- Monitor events, materials, and surroundings
- Provide advice and consultation to others
- Coordinate the work and activities of others
Work requirements
Working conditions
In a typical work setting, computer programmers:
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
Computer programmers frequently:
- Sit for long periods of time.
- Repeat the same movements.
- Use their hands to handle, control, or feel objects, tools, or controls.
It is important for computer programmers to be able to:
- See details of objects that are less than a few feet away.
- Understand the speech of another person.
- Speak clearly so listeners can understand.
It is not as important, but still necessary, for computer programmers to be able to:
- See details of objects that are more than a few feet away.
- Use fingers to grasp, move, or assemble very small objects.
- See differences between colors, shades, and brightness.
- Focus on one source of sound and ignore others.
- Hold the arm and hand in one position or hold the hand steady while moving the arm.
- Use one or two hands to grasp, move, or assemble objects.
Skills and abilities
Computer programmers need to:
Communicate
- Understand written information.
- Understand spoken information.
- Listen to others and ask questions.
- Speak clearly so listeners can understand.
- Read and understand work-related materials.
- Write clearly so other people can understand.
Reason and problem solve
- Analyze ideas and use logic to determine their strengths and weaknesses.
- Follow guidelines to arrange objects or actions in a certain order.
- Combine several pieces of information and draw conclusions.
- Recognize the nature of a problem.
- Use reasoning to discover answers to problems.
- Notice when something is wrong or is likely to go wrong.
- Recognize when important changes happen or are likely to happen in a system.
- Judge the costs and benefits of a possible action.
- Concentrate and not be distracted while performing a task.
- Understand new information or materials by studying and working with them.
- Identify what must be changed to reach goals.
- Think of new ideas about a topic.
- Think of original, unusual, or creative ways to solve problems.
Use math and science
- Choose a mathematical method or formula to solve problems.
- 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
- Be aware of others' reactions and understand the possible causes.
- Change behavior in relation to others' actions.
Work with things
- Write computer programs.
- Inspect and evaluate the quality of products.
- Analyze needs and requirements when designing products.
Perceive and visualize
- Identify a pattern (a figure, object, word, or sound) that is hidden in distracting material.
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
- Computer Graphics
- Computer Programming
- Computer Science
- Computer Systems Analysis
- Game and Interactive Media Design
- Management Information Systems
Other programs of study to consider
- Artificial Intelligence and Robotics
- Bioinformatics
- Computer Support Specialist
- Database Administration
- Electronic Commerce
- Informatics
- Information Technology
- Mathematics
- Medical Informatics
- Web Page and Multimedia Design
- Webmaster and Web Management
Training
To work as a computer programmer, you typically need to:
- have a high school diploma or equivalent; 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.
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:
- Computer Applications
- Computer Programming
- Computer Science
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
Tips
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 .
Wages
Location |
Pay Period | |
||||
---|---|---|---|---|---|---|
10% |
25% |
Median |
75% |
90% |
||
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.
Location | Current employment | Growth over 10 years | Annual openings | |
This occupation |
All occupations |
|||
---|---|---|---|---|
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:
- 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.
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
1601 Broadway, 10th Floor1
New York, NY 10019-7434
800.342.6626
212.626.0500
Association for Computing Machinery SIGGRAPH
Association for the Advancement of Artificial Intelligence
Association for Women in Computing - Puget Sound Chapter
3743 S. 170th Street
Sea-Tac, WA 98188
Computing Research Association
1828 L Street, NW, Suite 800
Washington, DC 20036-4632
IEEE Computer Society
2001 L Street NW, Suite 700
Washington, DC 20036
202.371.0101
Information Technology Industry Council
1101 K Street NW, Suite 610
Washington, DC 20005
202.737.8888
Institute for Certification of Computing Professionals (ICCP)
244 S Randall Road #116
Elgin, IL 60123
847.299.4227
405.744.8632
International Game Developers Association
150 Eglinton Ave. East, Suite 402
Toronto, ON M4P 1E8 Canada
Society for Industrial and Applied Mathematics
3600 Market Street, 6th Floor
Philadelphia, PA 19104
215.382.9800
Technology Student Association
1904 Association Drive
Reston, VA 20191-1540
888.860.9010
The Advanced Computing Systems Association
Washington Interactive Network
Washington Technology Industry Association
2200 Alaskan Way, Suite 390
Seattle, WA 98121
206.448.3033
References
Career cluster
Career path
- Investigative (Science)
O*Net occupation
O*Net job zone
Job Zone 4 - Considerable preparation needed. A minimum of two to four years of work-related skill, knowledge, or experience is needed for these occupations.
DOT occupations
- Chief, Computer Programmer (030.167-010)
- Computer Programmer (030.162-010)
- Programmer, Engineering and Scientific (030.162-018)
Holland occupational cluster
- Investigative/Conventional/Realistic
COPSystem
- Business Professional
- Science Professional
- Technology Professional