Computer Programmers
Computer programmers held about 568,000 jobs in
1996. Programmers are employed
in almost every industry but the largest
amount is in the computer and data
processing industry that includes
companies that write and sell software. Allot
of programmers can also be
found working for companies that provide engineering
and management services,
manufacturers of computer and office equipment,
financial institutions,
insurance carriers, educational institutions, and
government agencies. A
growing number of computer programmers are employed on a
temporary, a
contract basis, or work as independent workers because allot of
companies
demand expertise with newer programming languages or more specialized
areas
of application. Rather than hiring programmers as permanent employees
and
then laying them off after a job is completed, employers can contract
with
temporary help agencies, consulting firms, or directly with
programmers
themselves. A marketing company may only need the services of
several
programmers to write and debug the software necessary to get a new
database
management system running. This practice also enables companies to
bring in
people with a specific set of skills. Bringing in an independent
contractor with
a certain level of experience in a new or advanced
programming language enables
an establishment to complete a particular job
without having to retrain their
workers. Such jobs may last anywhere from
several weeks to a year or longer.
There were 20,000 self-employed
computer programmers in 1996 and this number is
expected to increase.
Programmers usually work in offices. Although they usually
work about 40
hours a week, programmers may work longer hours or weekends in
order to meet
deadlines or fix critical problems that occur during off
hours.
Programmers can access a system directly, but from remote
locations, to make
corrections or fix problems. Like other workers that spend
a long time in front
of a computer terminal typing at a keyboard, they are
susceptible to eyestrain,
back discomfort, and hand and wrist problems such
as carpal tunnel syndrome or
cumulative trauma disorder. Computer programs
tell the computer what to do such
as which information to identify and
access, how to process it, and what
equipment to use. Programs vary widely
depending on the type of information to
be accessed. Although simple programs
can be written in a few hours, programs
that use complex mathematical
formulas or that draw data from many existing
systems, require more than a
year of work. Allot of programmers work together as
a team under a senior
programmer's supervision. Programmers write specific
programs by breaking
down each step into a logical series of instructions the
computer can follow.
They then code these instructions in a conventional
programming language,
such as C and FORTRAN. An artificial intelligence
language, such as LISP or
Prolog; or one of the more advanced function-oriented
or object-oriented
languages, such as UML, Java, C++, Visual Basic, or Ada.
Programmers
usually know more than one programming language and since many
languages are
alike, they can often learn new languages relatively easily. In
practice, the
language they know or the type of environment they generally work
in such as
mainframe programmer, object-oriented programmer, or Internet or
World
Wide Web programmer often refers to programmers. In many large
organizations,
programmers follow descriptions that have been prepared by
software engineers
or systems analysts. These descriptions list the input
required the steps the
computer must follow to process data, and the desired
arrangement of the
output. Many programmers are involved in updating, repairing,
modifying and
expanding existing programs. When making changes to a section of
code
programmers need to make other users aware of the task the routine is
to
perform. They do this by using comments in the coded instructions so
others can
understand the program. Innovations such as Computer-Aided
Software Engineering
(CASE) tools enable a programmer to concentrate on
writing the unique parts of
the program because the tools automate various
pieces of the program being
built. CASE tools generate whole sections of code
automatically, rather than
line by line. This also stops more reliable and
consistent programs and
increases programmers' productivity by eliminating
some of the routine steps.
Programmers often are grouped into two types:
Applications programmers and
systems programmers. Applications programmers
usually are oriented toward
business, engineering, or science. They write
software to handle specific jobs
within an organization, such as a program
used in an inventory control system.
They may also work alone to revise
existing packaged software. Systems
programmers maintain and control the use
of computer systems software. These
workers make changes in the sets of
instructions that determine how the network,
workstations, and central
processing unit of the system handles the various jobs
they have been given
and how they communicate with peripheral equipment, such as
terminals,
printers, and disk drives. Because of their knowledge of the entire
computer
system, systems programmers often help applications programmers
determine the
source of problems that may occur with their programs. Programmers
in
software development companies may work directly with experts from
various
fields to create software, either programs designed for specific
clients or
packaged software for general use, 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. The average earnings of programmers who
worked full time in 1996 were
about $40,100 a year. The middle 50 percent
earned between about $30,700 and
$52,000 a year. The lowest 10 percent earned
less than $22,700; the highest 10
percent earned more than $65,200. Starting
salary offers for graduates with a
bachelor's degree in the area of computer
programming averaged about $35,167 a
year in private industry in 1997,
according to the National Association of
Colleges and Employers.
Programmers working in the West and Northeast earned
somewhat more than those
working in the South and Midwest. On average, systems
programmers earn more
than applications programmers. A survey of workplaces in
160 metropolitan
areas reported that beginning programmers had average annual
earnings of
about $27,000 in 1995. Experienced mid-level programmers with
some
supervisory responsibilities had average annual earnings of about
$40,000.
Median annual earnings for programmers at the supervisory or
team leader level
were about $55,000. According to Robert Half International
Inc. starting
salaries ranged from $32,500 to $39,000 for programmers and
$47,500 to $60,000
for systems programmers in large establishments in 1997.
Starting salaries for
programmers in small establishments ranged from $28,000
to $37,000. In the
Federal Government, the entrance salary for
programmers with a college degree or
qualifying experience was about $19,520
a year in early 1997; for those with a
superior academic record, $24,180. The
majority of computer programmers, almost
60 percent, had a bachelor's
degree or higher in 1996. Of these, some hold a BA
or BS in computer science,
mathematics, or information systems while others have
taken special courses
in computer programming to supplement their study in
fields such as
accounting, inventory control, or other business areas. As the
level of
education and training required by employers continue to rise,
this
percentage should increase in the future. Skills needed vary from job to
job and
the demand for various skills is generally driven by changes in
technology.
Employers using computers for scientific or engineering
applications generally
prefer college graduates who have degrees in computer
or information science,
mathematics, engineering, or the physical sciences.
Graduate degrees in related
fields may be required for some jobs. Employers
who use computers for business
applications prefer to hire people who have
had college courses in management
information systems (MIS) and business, and
who possess strong programming
skills. Although knowledge of traditional
languages such as FORTRAN, COBOL, or C
is still important, increasing
emphasis is placed on more advanced
object-oriented languages and tools such
as CASE tools, C++, Visual C++, Ada,
Smalltalk, Visual Basic,
PowerBuilder, and Java as well as 4th and 5th
generation languages, graphic
user interface (GUI) and systems programming.
Employers prefer general
business skills and experience related to the
operations of the firm as well.
Most systems programmers hold a 4-year degree in
computer science. Extensive
knowledge of a variety of operating systems is
essential. This includes being
able to configure the operating system to work
with different types of
hardware, and adapting the operating system to best meet
the needs of the
particular organization. They must also be able to work with
database systems
such as DB2, Oracle, or Sybase. When hiring programmers,
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 are also particularly important when
programmers
design solutions and test their work for potential failures. The
ability to
work with abstract concepts and do technical analysis is especially
important
for systems programmers because they work with the software that
controls the
computer's operation. Since programmers are expected to work in
teams and
interact directly with users, employers want programmers who are able
to
communicate with non-technical personnel. Beginning programmers may
work
alone on simple assignments after some initial instruction, or on a team
with
more experienced programmers. Either way, beginning programmers
generally must
work under close supervision. Because technology changes so
rapidly, programmers
must continuously update their training by taking
courses sponsored by their
employer or software vendors. For skilled workers
who keep up to date with the
latest technology, the prospects for advancement
are good. In large
organizations, they may be promoted to lead programmer and
be given supervisory
responsibilities. Some applications programmers may move
into systems
programming after they gain experience and take courses in
systems software.
With general business experience, programmers may
become programmer-analysts or
systems analysts, or be promoted to a
managerial position. Other programmers,
with specialized knowledge and
experience with a language or operating system,
may work in research and
development areas such as multimedia or Internet
technology. As employers
increasingly contract out programming jobs, more
opportunities should arise
for experienced programmers with expertise in a
specific area to work as
consultants. Technical or professional certification is
becoming more common
as a way for employers to ensure a level of competency or
quality in all
areas. Many product vendors offer certification or may even
require
certification of technicians and professionals who work with their
products.
The number of voluntary certificate or certification programs is also
growing
and this type of certification is available through organizations such
as the
Institute for Certification of Computing Professionals (ICCP). ICCP
confers
the designation Certified Computing Professional (CCP) to those who have
at
least 4 years of experience or 2 years of experience and a college degree.
To
qualify, individuals must pass a core examination plus exams in two
specialty
areas, or an exam in one specialty area and two computing
languages. Those with
little or no experience may be tested for certification
as an Associate Computer
Professional (ACP). Certification is not
mandatory, buy it may give a job seeker
a competitive advantage.