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 to perform 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.
Computer
scientists work as theorists, researchers, or inventors.
Their jobs are distinguished by the higher level of theoretical
expertise and innovation they apply to complex problems
and the creation or application of new technology. Those
employed by academic institutions work in areas ranging
from complexity theory to hardware to programming-language
design. Some work on multidisciplinary projects, such
as developing and advancing uses of virtual reality,
extending human-computer interaction, or designing robots.
Their counterparts in private industry work in areas
such as applying theory; developing specialized languages
or information technologies; or designing programming
tools, knowledge-based systems, or even computer games.
With
the Internet and electronic business generating large
volumes of data, there is a growing need to be able to
store, manage, and extract data effectively. Database
administrators work with database management systems
software and determine ways to organize and store data.
They identify user requirements, set up computer databases,
and test and coordinate modifications to the computer
database systems. An organization’s database administrator
ensures the performance of the system, understands the
platform on which the database runs, and adds new users
to the system. Because they also may design and implement
system security, database administrators often plan and
coordinate security measures. With the volume of sensitive
data generated every second growing rapidly, data integrity,
backup systems, and database security have become increasingly
important aspects of the job of database administrators.
Because
networks are configured in many ways, network systems
and data communications analysts are needed to design,
test, and evaluate systems such as local area networks
(LANs), wide area networks (WANs), the Internet, intranets,
and other data communications systems. Systems can range
from a connection between two offices in the same building
to globally distributed networks, voice mail, and e-mail
systems of a multinational organization. Network systems
and data communications analysts perform network modeling,
analysis, and planning; they also may research related
products and make necessary hardware and software recommendations.
Telecommunications specialists focus on the interaction
between computer and communications equipment. These
workers design voice and data communication systems,
supervise the installation of the systems, and provide
maintenance and other services to clients after the systems
are installed.
The
growth of the Internet and the expansion of the World
Wide Web (the graphical portion of the Internet) have
generated a variety of occupations related to the design,
development, and maintenance of Web sites and their servers.
For example, webmasters are responsible for
all technical aspects of a Web site, including performance
issues such as speed of access, and for approving the
content of the site. Internet developers or Web developers,
also called Web designers, are responsible for
day-to-day site creation and design.