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.
Training and qualifications
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.
Job outlook
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.
Earnings
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
Professional and commercial equipment 63,780
Computer and data processing services 61,010
Commercial banks 60,180
Management and public relations 57,120
Related links
For information about certification as a computing
professional, contact: