Computer software engineers are projected to be one of the
fastest growing occupations over the 2004-14 period.
Very good opportunities are expected for college graduates
with at least a bachelor’s degree in computer engineering or
computer science and with practical work experience.
Computer software engineers must continually strive to acquire
new skills in conjunction with the rapid changes that are occurring
in computer technology.
Nature of the Work
The explosive impact of computers and information technology
on our everyday lives has generated a need to design and develop
new computer software systems and to incorporate new technologies
into a rapidly growing range of applications. The tasks performed
by workers known as computer software engineers evolve quickly,
reflecting new areas of specialization or changes in technology,
as well as the preferences and practices of employers. Computer
software engineers apply the principles and techniques of computer
science, engineering, and mathematical analysis to the design,
development, testing, and evaluation of the software and systems
that enable computers to perform their many applications.
Software engineers working in applications or systems development
analyze users’ needs and design, construct, test, and maintain
computer applications software or systems. Software engineers
can be involved in the design and development of many types of
software, including software for operating systems and network
distribution, and compilers, which convert programs for execution
on a computer. In programming, or coding, software engineers instruct
a computer, line by line, how toperform a function. They
also solve technical problems that arise. Software engineers must
possess strong programming skills, but are more concerned with
developing algorithms and analyzing and solving programming problems
than with actually writing code.
Computer applications software engineers analyze users’
needs and design, construct, and maintain general computer applications
software or specialized utility programs. These workers use different
programming languages, depending on the purpose of the program.
The programming languages most often used are C, C++, and Java,
with Fortran and COBOL used less commonly. Some software engineers
develop both packaged systems and systems software or create customized
applications.
Computer systems software engineers coordinate the construction
and maintenance of a company’s computer systems and plan their
future growth. Working with the company, they coordinate each
department’s computer needs—ordering, inventory, billing, and
payroll recordkeeping, for example—and make suggestions about
its technical direction. They also might set up the company’s
intranets—networks that link computers within the organization
and ease communication among the various departments.
Systems software engineers work for companies that configure,
implement, and install complete computer systems. These workers
may be members of the marketing or sales staff, serving as the
primary technical resource for sales workers and customers. They
also may be involved in product sales and in providing their customers
with continuing technical support. Since the selling of complex
computer systems often requires substantial customization for
the purchaser’s organization, software engineers help to explain
the requirements necessary for installing and operating the new
system in the purchaser’s computing environment. In addition,
systems software engineers are responsible for ensuring security
across the systems they are configuring.
Computer software engineers often work as part of a team that
designs new hardware, software, and systems. A core team may comprise
engineering, marketing, manufacturing, and design people, who
work together until the product is released.
Working Conditions
Computer software engineers normally work in well-lighted and
comfortable offices or laboratories in which computer equipment
is located. Most software engineers work at least 40 hours a week;
however, due to the project-oriented nature of the work, they
also may have to work evenings or weekends to meet deadlines or
solve unexpected technical problems. Like other workers who sit
for hours at a computer, typing on a keyboard, software engineers
are susceptible to eyestrain, back discomfort, and hand and wrist
problems such as carpal tunnel syndrome.
As they strive to improve software for users, many computer software
engineers interact with customers and coworkers. Computer software
engineers who are employed by software vendors and consulting
firms, for example, spend much of their time away from their offices,
frequently traveling overnight to meet with customers. They call
on customers in businesses ranging from manufacturing plants to
financial institutions.
As networks expand, software engineers may be able to use modems,
laptops, e-mail, and the Internet to provide more technical support
and other services from their main office, connecting to a customer’s
computer remotely to identify and correct developing problems.
Training, Other Qualifications, and Advancement
Most employers prefer to hire persons who have at least a bachelor’s
degree and broad knowledge of, and experience with, a variety
of computer systems and technologies. The usual degree concentration
for applications software engineers is computer science or software
engineering; for systems software engineers, it is computer science
or computer information systems. Graduate degrees are preferred
for some of the more complex jobs.
Academic programs in software engineering emphasize software
and may be offered as a degree option or in conjunction with computer
science degrees. Increasing emphasis on computer security suggests
that software engineers with advanced degrees that include mathematics
and systems design will be sought after by software developers,
government agencies, and consulting firms specializing in information
assurance and security. Students seeking software engineering
jobs enhance their employment opportunities by participating in
internship or co-op programs offered through their schools. These
experiences provide the students with broad knowledge and experience,
making them more attractive candidates to employers. Inexperienced
college graduates may be hired by large computer and consulting
firms that train new employees in intensive, company-based programs.
In many firms, new hires are mentored, and their mentors have
an input into the performance evaluations of these new employees.
For systems software engineering jobs that require workers who
have a college degree, a bachelor’s degree in computer science
or computer information systems is typical. For systems engineering
jobs that place less emphasis on workers having a computer-related
degree, computer training programs leading to certification are
offered by systems software vendors. Nonetheless, most training
authorities feel that program certification alone is not sufficient
for the majority of software engineering jobs.
Persons interested in jobs as computer software engineers must
have strong problem-solving and analytical skills. They also must
be able to communicate effectively with team members, other staff,
and the customers they meet. Because they often deal with a number
of tasks simultaneously, they must be able to concentrate and
pay close attention to detail.
As is the case with most occupations, advancement opportunities
for computer software engineers increase with experience. Entry-level
computer software engineers are likely to test and verify ongoing
designs. As they become more experienced, they may become involved
in designing and developing software. Eventually, they may advance
to become a project manager, manager of information systems, or
chief information officer. Some computer software engineers with
several years of experience or expertise find lucrative opportunities
working as systems designers or independent consultants or starting
their own computer consulting firms.
As technological advances in the computer field continue, employers
demand new skills. Computer software engineers must continually
strive to acquire such skills if they wish to remain in this extremely
dynamic field. For example, computer software engineers interested
in working for a bank should have some expertise in finance as
they integrate new technologies into the computer system of the
bank. To help them keep up with the changing technology, continuing
education and professional development seminars are offered by
employers, software vendors, colleges and universities, private
training institutions, and professional computing societies
Employment
Computer software engineers held about 800,000 jobs in 2004.
Approximately 460,000 were computer applications software engineers,
and around 340,000 were computer systems software engineers. Although
they are employed in most industries, the largest concentration
of computer software engineers—almost 30 percent—are in computer
systems design and related services. Many computer software engineers
also work for establishments in other industries, such as software
publishers, government agencies, manufacturers of computers and
related electronic equipment, and management of companies and
enterprises.
Employers of computer software engineers range from startup companies
to established industry leaders. The proliferation of Internet,
e-mail, and other communications systems is expanding electronics
to engineering firms that are traditionally associated with unrelated
disciplines. Engineering firms specializing in building bridges
and powerplants, for example, hire computer software engineers
to design and develop new geographic data systems and automated
drafting systems. Communications firms need computer software
engineers to tap into growth in the personal communications market.
Major communications companies have many job openings for both
computer software applications engineers and computer systems
engineers.
An increasing number of computer software engineers are employed
on a temporary or contract basis, with many being self-employed,
working independently as consultants. Some consultants work for
firms that specialize in developing and maintaining client companies’
Web sites and intranets. About 23,000 computer software engineers
were self-employed in 2004.
Job Outlook
Computer software engineers are projected to be one of the fastest-growing
occupations from 2004 to 2014. Rapid employment growth in the
computer systems design and related services industry, which employs
the greatest number of computer software engineers, should result
in very good opportunities for those college graduates with at
least a bachelor’s degree in computer engineering or computer
science and practical experience working with computers. Employers
will continue to seek computer professionals with strong programming,
systems analysis, interpersonal, and business skills. With the
software industry beginning to mature, however, and with routine
software engineering work being increasingly outsourced overseas,
job growth will not be as rapid as during the previous decade.
Employment of computer software engineers is expected to increase
much faster than the average for all occupations, as businesses
and other organizations adopt and integrate new technologies and
seek to maximize the efficiency of their computer systems. Competition
among businesses will continue to create an incentive for increasingly
sophisticated technological innovations, and organizations will
need more computer software engineers to implement these changes.
In addition to jobs created through employment growth, many job
openings will result annually from the need to replace workers
who move into managerial positions, transfer to other occupations,
or leave the labor force.
Demand for computer software engineers will increase as computer
networking continues to grow. For example, the expanding integration
of Internet technologies and the explosive growth in electronic
commerce—doing business on the Internet—have resulted in rising
demand for computer software engineers who can develop Internet,
intranet, and World Wide Web applications. Likewise, expanding
electronic data-processing systems in business, telecommunications,
government, and other settings continue to become more sophisticated
and complex. Growing numbers of systems software engineers will
be needed to implement, safeguard, and update systems and resolve
problems. Consulting opportunities for computer software engineers
also should continue to grow as businesses seek help to manage,
upgrade, and customize their increasingly complicated computer
systems.
New growth areas will continue to arise from rapidly evolving
technologies. The increasing uses of the Internet, the proliferation
of Web sites, and mobile technology such as the wireless Internet
have created a demand for a wide variety of new products. As individuals
and businesses rely more on hand-held computers and wireless networks,
it will be necessary to integrate current computer systems with
this new, more mobile technology. Also, information security concerns
have given rise to new software needs. Concerns over “cyber security”
should result in businesses and government continuing to invest
heavily in software that protects their networks and vital electronic
infrastructure from attack. The expansion of this technology in
the next 10 years will lead to an increased need for computer
engineers to design and develop the software and systems to run
these new applications and integrate them into older systems.
As with other information technology jobs, employment growth
of computer software engineers may be tempered somewhat as more
software development is contracted out abroad. Firms may look
to cut costs by shifting operations to lower wage foreign countries
with highly educated workers who have strong technical skills.
At the same time, jobs in software engineering are less prone
to being sent abroad compared with jobs in other computer specialties,
because the occupation requires innovation and intense research
and development.
Earnings
Median annual earnings of computer applications software engineers
who worked full time in May 2004 were about $74,980. The middle
50 percent earned between $59,130and $92,130. The lowest 10 percent
earned less than $46,520, and the highest 10 percent earned more
than $113,830. Median annual earnings in the industries employing
the largest numbers of computer applications software engineers
in May 2004 were as follows:
Software publishers
$79,930
Management, scientific, and technical consulting
services
78,460
Computer systems design and related services
76,910
Management of companies and enterprises
70,520
Insurance carriers
68,440
Median annual earnings of computer systems software engineers
who worked full time in May 2004 were about $79,740. The middle
50 percent earned between $63,150 and $98,220. The lowest 10 percent
earned less than $50,420, and the highest 10 percent earned more
than $118,350. Median annual earnings in the industries employing
the largest numbers of computer systems software engineers in
May 2004 are as follows:
Scientific research and development services
$91,390
Computer and peripheral equipment manufacturing
87,800
Software publishers
83,670
Computer systems design and related services
79,950
Wired telecommunications carriers
74,370
According to the National Association of Colleges and Employers,
starting salary offers for graduates with a bachelor’s degree
in computer engineering averaged $52,464 in 2005; offers for those
with a master’s degree averaged $60,354. Starting salary offers
for graduates with a bachelor’s degree in computer science averaged
$50,820.
According to Robert Half International, starting salaries for
software engineers in software development ranged from $63,250
to $92,750 in 2005. For network engineers, starting salaries in
2005 ranged from $61,250 to $88,250.
Related Occupations
Other workers who use mathematics and logic extensively include
computer systems analysts, computer scientists and database administrators,
computer programmers, computer hardware engineers, computer support
specialists and systems administrators, engineers, statisticians,
mathematicians, and actuaries.
Sources of Additional Information
Additional information on a career in computer software engineering
is available from the following organizations:
Association for Computing Machinery (ACM), 1515 Broadway,
New York, NY 10036. Internet: http://www.acm.org/
Institute of Electronics and Electrical Engineers Computer
Society, Headquarters Office, 1730 Massachusetts Ave. N.W.,
Washington, DC 20036-1992. Internet: http://www.computer.org/
National Workforce Center for Emerging Technologies, 3000
Landerholm Circle S.E., Bellevue, WA 98007. Internet: http://www.nwcet.org/
Source: Bureau of Labor Statistics,
U.S. Department of Labor, Occupational Outlook Handbook,
2006-07 Edition,