Career Discovery Tool
Your email has not been verified. Verify email now ›

Computer Software Engineer

Overview and Key Facts

people sitting at computer
Education
Education
Bachelor's degree
Median Pay
Median Pay
$133,080
Job Growth
Job Growth
15.80%
(Above US Average)
Jobs in 2034
Jobs in 2034
1,961,400

What Do They Do?

A computer software engineer could...

Overview Listen to this section

Are you interested in developing cool video game software for computers? Would you like to learn how to make software run faster and more reliably on different kinds of computers and operating systems? Do you like to apply your computer science skills to solve problems? If so, then you might be interested in the career of a computer software engineer.
In this video, Jessica Mong explains how fixing a broken computer when she was a child in Nigeria eventually inspired her to earn a computer engineering scholarship in the U.S. and start her career as a software engineer.

Do You Have the Skills and Characteristics of a Computer Software Engineer?


  1. Programming: ?
  2. Active Listening: ?
  3. Complex Problem Solving: ?
  4. Critical Thinking: ?
  5. Original Thinking: ?

Core Tasks

Think about if you'd like the typical tasks a Computer Software Engineer might do:
  • Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.
  • Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.
  • Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects.
  • Confer with systems analysts, engineers, programmers and others to design systems and to obtain information on project limitations and capabilities, performance requirements and interfaces.
  • Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.
  • Coordinate installation of software system.
  • Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design.
  • Determine system performance standards.
  • Develop or direct software system testing or validation procedures, programming, or documentation.
  • Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance.
  • Monitor functioning of equipment to ensure system operates in conformance with specifications.
  • Obtain and evaluate information on factors such as reporting formats required, costs, or security needs to determine hardware configuration.
  • Prepare reports or correspondence concerning project specifications, activities, or status.
  • Recommend purchase of equipment to control dust, temperature, or humidity in area of system installation.
  • Specify power supply requirements and configuration.
  • Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
  • Supervise and assign work to programmers, designers, technologists, technicians, or other engineering or scientific personnel.
  • Supervise the work of programmers, technologists and technicians and other engineering and scientific personnel.
  • Train users to use new or modified equipment.

Salary & Job Openings

Median Salary (Yearly Pay)

Tap or scroll over map to see median salaries for each state

Future Jobs

Blast-Off:

How Will Computer Software Engineer Jobs Grow by 2034?
Projected % Growth
Rapid growth
(10% or higher)
Much faster than average
(7% - 10%)
Faster than average
(5% - 7%)
About as fast as average
(3% - 5%)
Slower than average
(0% - 3%)
Decreasing
Average of all U.S. jobs (5.3%)
Computer Software Engineer jobs (15.80%)

Steps to Get There: Becoming a Computer Software Engineer

High School Subjects to Study

Aim to study the yellow-shaded subjects.
Math
Algebra 1
Geometry
Algebra 2
Pre-Calculus
Calculus
Statistics
Science
Biology
Chemistry
Physics
Environmental Science
Physiology
Bio-Medical / Biotech
IT &
Engineering
Computer Science
Applied Technology
Drafting & CAD Training
Core
English
Foreign Language
Business
Psychology / Sociology

Career Pathway Listen to this section

Most employers prefer applicants who have at least a bachelor's degree and experience with a variety of computer systems and technologies. In order to remain competitive, computer software engineers must continually strive to acquire the latest technical skills. Advancement opportunities are good for those with relevant experience.

As technology advances, employers will need workers with the latest skills. Computer software engineers must continually strive to acquire new skills if they wish to remain in this dynamic field. To help keep up with changing technology, workers might take continuing education and professional development seminars offered by employers, software vendors, colleges and universities, private training institutions, and professional computing societies. Computer software engineers also need skills related to the industry in which they work. Engineers working for a bank, for example, should have some expertise in finance so that they understand banks' computer needs.

Education- Typical Degree Needed After High School Listen to this section

Degree
Post
high school credential
AA
Bachelor's
Master's
Doctoral or Professional Degree

Typical degree for an entry-level position: Bachelor's degree ? Types of Degrees and Credentials

A bachelor of science in computer software engineering is a requirement for entry-level positions. Most employers prefer applicants who have at least a bachelor's degree and broad knowledge of, and experience with, a variety of computer systems and technologies. The usual college major for computer software engineers is computer science or software engineering. Systems software engineers often study computer science or computer information systems. Graduate degrees are preferred for some of the more complex jobs and are required for faculty positions. In 2006, about 80 percent of computer software engineers had a bachelor's degree or higher.

Academic programs in computer software engineering may offer the program as a degree option or in conjunction with computer science degrees. Because of increasing emphasis on computer security, software engineers with advanced degrees in areas such as mathematics and systems design will be sought after by software developers, government agencies, and consulting firms.

Students seeking software engineering jobs enhance their employment opportunities by participating in internships or co-ops. These experiences provide students with broad knowledge and experience, making them more attractive to employers. Inexperienced college graduates might be hired by large computer and consulting firms that train new employees in intensive, company-based programs.

Companies That Hire Computer Software Engineers

Try it Out with an Activity or Project

STEM Activities

STEM activities are fun hands-on explorations that usually take from 10 minutes to one hour and use readily available household or classroom materials while introducing you to STEM concepts common in this career.

Science Project Ideas

Project Ideas are in-depth STEM explorations that have a strong focus on controlling variables, taking accurate measurements, and analyzing data suitable for investigating the scientific method or the engineering design process.

On the Job

Role Models

Meet Jeff Hagen, an Engineering Manager at Medtronic. Find out how he directs a team of engineers working on a website that enables patients with heart troubles to get the help they need to live fuller lives.
I direct a team of software test engineers to test the new version of our website that is used by doctors & nurses ...Each release of our website helps more patients with heart troubles get the help they need to live fuller lives.  
Jeff Hagen, Engineering Manager

Nature of the Work

Computer software engineers apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the software and systems that make computers work. The tasks performed by these workers evolve quickly, reflecting new areas of specialization or changes in technology, as well as the preferences and practices of employers.

Software engineers can be involved in the design and development of many types of software, including computer games, word processing and business applications, operating systems and network distribution, and compilers, which convert programs to machine language for execution on a computer.

Computer software engineers begin by analyzing users' needs, and then design, test, and develop software to meet those needs. During this process, they create the detailed sets of instructions, called algorithms, that tell the computer what to do. They also may be responsible for converting these instructions into a computer language, a process called programming or coding, but this is usually the responsibility of computer programmers. Computer software engineers must be experts in operating systems and middleware to ensure that the underlying systems will work properly.

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, maintenance, and expansion of an organization's computer systems. Working with the organization, they coordinate each department's computer needs—ordering, inventory, billing, and payroll record keeping, for example—and make suggestions about its technical direction. They also might set up the organization's intranets—networks that link computers within the organization and ease communication among various departments.

Systems software engineers also work for companies that configure, implement, and install the computer systems of other organizations. These workers may be members of the marketing or sales staff, serving as the primary technical resource for sales workers. They also may help with sales and provide customers with technical support. Since the selling of complex computer systems often requires substantial customization to meet the needs of the purchaser, software engineers help identify and explain needed changes. 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 to release a product.

Work Environment

Computer software engineers normally work in clean, comfortable offices, or in laboratories in which computer equipment is located. Software engineers who work for software vendors and consulting firms frequently travel overnight to meet with customers. Telecommuting is also becoming more common, allowing workers to do their jobs from remote locations.

Most computer software engineers work at least 40 hours a week, but about 17 percent work more than 50 hours a week. Software engineers also may have to work evenings or weekends to meet deadlines or to solve unexpected technical problems.

Like other workers who spend long hours typing at a computer, computer software engineers are susceptible to eyestrain, back discomfort, and hand and wrist problems, such as carpal tunnel syndrome.

More Information

Ask Questions

Do you have a specific question about a career as a Computer Software Engineer that isn't answered on this page? Post your question on the Science Buddies Ask an Expert Forum.

Sources

Top
Free science fair projects.