Computer programmers write, test and maintain the detailed instructions, called programs, that tell computers what to do. They also conceive, design and test logical structures for solving problems by computer. Many technical innovations have redefined the role of a programmer and elevated much of the programming work done today.
Programmers write programs according to the specifications determined primarily by computer software engineers and system analysts. After the design process is complete, the programmer converts that design into a logical series of instructions the computer can follow. They then code these instructions in a conventional programming language, such as COBOL; an artificial intelligence language, such as Prolog; or one of the most advanced object-oriented languages, such as Java, C++ or Smalltalk. Programmers generally know more than one programming language.
Although simple programs can be written in a few hours, more complex programs may require more than a year of work. In most cases, several programmers work together as a team under a senior programmer's supervision. Programmers test a program by running it. If errors occur, the programmer must make the appropriate change and recheck the program until it produces the correct results. This process is called debugging.
Programmers often are grouped into two broad types. Applications programmers write programs to handle a specific job, such as a program to track inventory, within an organization. They may also revise existing packaged software. Systems programmers, write programs to maintain and control computer systems software, such as operating systems, networked systems and database systems.
Programmers in software development companies may work directly with experts from various fields to create software ranging from games and educational software to programs for desktop publishing, financial planning and spreadsheets. Much of this type of programming is in the preparation of packaged software, which comprises one of the most rapidly growing segments of the computer services industry.
Many programmers may work long hours or weekends, to meet deadlines or fix critical problems. Because they spend long periods of time typing at a keyboard, programmers are susceptible to eyestrain, back discomfort, and hand and wrist problems, such as carpal tunnel syndrome.
The level of education and experience employers seek has been rising because of the growing number of qualified applicants and the specialization involved with most programming tasks. Bachelor's degrees are commonly required, although some programmers may qualify for certain jobs with two-year degrees or certificates. Employers are primarily interested in programming knowledge, and computer programmers are able to get certified in a language, such as C++ or Java.
Required skills vary from job to job. Employers using computers for scientific or engineering applications usually prefer college graduates with degrees in computer or information science, mathematics, engineering or the physical sciences. Employers who use computers for business applications prefer to hire people who have had college courses in management information systems (MIS) and business. Emphasis is placed on newer programming languages and tools. Employers also prefer applicants who have general business skills and experience related to the operations of the firm. Most systems programmers hold a four-year degree in computer science. Extensive knowledge of a variety of operating systems is essential.
Employers look for people with the necessary programming skills who can think logically and pay close attention to detail. The job calls for patience, persistence and the ability to work on exacting analytical work, especially under pressure. Ingenuity and imagination also are particularly important, when programmers design solutions and test their work for potential failures. Because programmers are expected to work in teams and interact directly with users, employers want programmers who are able to communicate with non-technical personnel.
Employment of programmers is expected to grow about as fast as the average for all occupations through 2010. Jobs for both systems and applications programmers should be most plentiful in data processing service firms, software houses and computer consulting businesses. These types of establishments are part of computer and data processing services, which is projected to be the fastest growing industry in the economy over the 2000-10 period. Employment of programmers, however, is expected to grow much slower than that of other computer specialists. With the rapid gains in technology, sophisticated computer software now has the capability to write basic code, eliminating the need for more programmers to do this routine work.
Prospects should be best for college graduates with knowledge of, and experience working with, a variety of programming languages and tools. Vendor or language-specific certification also can provide a competitive edge.
Computer programmers held about 585,000 jobs in 2000. Their median annual earnings were $57,590 in 2000. Median annual earnings in the industries employing the largest numbers of computer programmers in 2000 were:
Personnel supply services $65,780
For information about certification as a computing professional, contact:
Institute for Certification of Computing Professionals, 2350 E. Devon Ave., Suite 115, Des Plaines, IL 60018.
Association for Computing Machinery, 1515 Broadway, New York, NY 10036.
IEEE Computer Society, Headquarters Office, 1730 Massachusetts Ave. NW, Washington, DC 20036-1992.
National Workforce Center for Emerging Technologies, 3000 Landerholm Circle SE., Bellevue, WA 98007.
Adapted from the Labor Department's Occupational Outlook Handbook.