Documentos de Académico
Documentos de Profesional
Documentos de Cultura
At a Glance
Computer software engineers design, develop, and test the set of programs that tell a computer what to do.
Core Tasks
Applications engineers develop software programs that perform specific tasks Systems engineers develop larger computer systems Analyze project requirements and design software products or computer systems Test and debug software or systems Some specialize in systems analysis, sales, or research and design
Workplace
Work for software companies, government agencies, and computer and electronics manufacturers Work primarily in offices or labs A lot of work is done at a desk, in front of a computer The work can be stressful Most work 40 hours a week, but overtime is often required
Earnings
Typical EarningsRange: $40 - $120
$54,000 to $143,000 a year for most The median is about $88,000 a year for applications engineers The median is about $94,000 a year for systems engineers Earnings depend on level of education, experience, and position
A bachelor's degree in computer software engineering or a related subject A masters degree or PhD is often required for senior and advanced research positions Register as a Professional Engineer (PE)
Level of Education
Logical and analytical Math and computer skills Communication skills Problem-solving skills Able to keep up to date with technological advances
JobDescription
From turning on the computer to reading this job description, youve used several different pieces of computer software. Each function you complete on a computer, whether its connecting to a network, surfing the web, writing an essay, or playing a video game, is made possible by a different piece of computer software. These complex systems are created by computer software engineers. Software is the name given to the different applications that enable computers to function. Each application is a series of coded instructions that tell a computer how to complete functions and how to react to user inputs. For example, a web browser allows us to surf the Internet. The code that makes up the browser tells it that when the user hits the back button it should go back to the previous web page. Computer software engineers apply their knowledge of computer science, engineering, and mathematics to create and customize a wide range of different types of software. Like computer programmers, software engineers need strong programming skills. However, engineers also need a more thorough knowledge of computer hardware and the science behind these systems. Engineers are often more concerned with developing algorithms and analyzing and solving programming problems than with actually writing code. There are two general types of software engineer: those who work in applications engineering and those who work in systems engineering. Applications engineers design and create application programs, which includes everything from programs that allow users to carry out basic tasks, such as word processors and web browsers, to operating systems. Operating systems, such as Linux or Windows, manage the way the hardware components of a computer system (for example, disk drives, video cards, sound cards, hard drives, and printers) work together. They also allow users to easily access the programs of their choice. Because software engineers understand the internal workings of a computers hardware, they are the best qualified to develop efficient operating systems. Engineers who work in computer systems engineering work on a larger scale, often designing, coordinating, and maintaining the integrated computer systems of large organizations such as businesses or governments. These engineers need to understand how every part of the organization works, what each part needs the system to do, and what hardware is needed to make this happen. When software engineers are faced with a new assignment, they first analyze the requirements for the software or system they are creating. This preliminary analysis and design work will likely be done on computers, using specialized software. Once they have a design they believe will work, engineers can make a test version of the software. To do this they often work with other engineers and programmers. When the test version is complete, the engineers spend a lot of time looking for and correcting flaws, or debugging the software. Some engineers specialize in areas such as system analysis (analyzing a companys existing system and suggesting upgrades or modifications), sales (selling software products or the services of engineering consulting firms), or research and design (experimenting with new ideas).
WorkingConditions
Computer software engineers work for companies that specialize in computer systems design, as well as for software publishers, government agencies, computer and electronics manufacturers, and in other related industries. Some work for consulting firms, while others start their own consulting businesses. Software engineers work primarily in office or lab environments. Their workplaces are generally clean and comfortable. Because this is a collaborative field, engineers frequently interact with co-workers and clients. The vast majority of a software engineers time is spent sitting at a desk, in front of a computer. Although this kind of work is not physically demanding, working at a computer all day can lead to back and neck strain, as well as repetitive stress injuries. The software publishing industry is fast-paced and highly competitive. Each company is trying to get new products to the market before their competitors. This atmosphere can make the jobs of applications software engineers very stressful at times, as their companies expect them to achieve results on tight deadlines. Systems engineers can face similar stress when their employer has to wait for them to correct a flaw in their system before they can carry on with their work. Long delays in fixing a crashed system can cost companies enormous amounts of money. Engineers who work as consultants may have to travel across the country (or around the world) to meet with clients, or to visit factories to inspect or troubleshoot equipment. Being away from home often, or for long periods of time, can make it difficult for engineers to balance their work and family obligations. People in this career usually work an average 5-day, 40-hour week. However, they frequently put in extra hours in the evenings and on weekends as project deadlines approach, or when there is an emergency.
Earnings
Earnings for software engineers vary depending on their level of education, their experience, and the type of position they hold. For example, those working in systems software tend to earn more than those who work in applications. Similarly, those working in the software publishing industry have a slightly higher median income than those working in the computer systems design and related services industry. Most computer software engineers earn an annual income of between $54,000 and $143,000. The national median earnings for applications engineers are about $88,000 a year. For systems software engineers the median is approximately $94,000 annually. The software engineers who have the highest incomes are those who establish reputations for quality work and who move into senior or supervisory positions. Some of these engineers progress to senior management positions, such as president or chief executive officer (CEO). These engineers can earn over $150,000 a year. In addition to their salaries, full-time software engineers receive benefits. Usually this includes things such as health and dental insurance, and paid vacation and sick leave. Some companies may also provide their engineers with the use of a company car and annual profit-sharing or performance-based bonuses. Self-employed engineers who work as consultants must pay for these benefits themselves.
MichiganWages
Occupation: Software Developers, Applications
Levelof Experience
Hourly
Annual
Entry Wage
$30.56
$63,560
Median Wage
$36.02
$74,930
Experienced Wage
$44.57
$92,710
Source:U.S. Department of Labor, Bureau of Labor Statistics http://www.bls.gov Occupation: Software Developers, Systems Software
Levelof Experience
Hourly
Annual
Entry Wage
$31.55
$65,630
Median Wage
$39.33
$81,820
Experienced Wage
$46.26
$96,230
MichiganOutlook
Occupation: Software Developers, Applications
Employment
2010
10,230
2020
12,630
Change
Number
2,400
Employment
2010
10,230
2020
12,630
Percentage
23.5
AnnualAverageOpenings
Total
Growth
Replacement
346
240
106
Employment
2010
6,550
2020
8,960
Change
Number
2,410
Percentage
36.9
Employment
2010
6,550
2020
8,960
AnnualAverageOpenings
Total
Growth
Replacement
310
242
68
Source:Michigan Department of Technology, Management & Budget, Labor Market Information http://www.milmi.org
Education
High school students interested in a career in computer software engineering should receive good grades in math, English, science, and computer courses. You should also try to get experience using and working with as many computer systems, programming languages, and related technologies as possible in your own time. A bachelors degree in computer software engineering, or a related subject like computer science or computer information systems, is usually the minimum requirement for this career. Some computer science programs offer an optional software engineering component. Relevant degree programs are available at colleges across the country. A bachelors degree usually takes 4 to 5 years to complete. Some programs include co-op or internship components, which can be helpful in securing employment for students when they have completed the program. Although a bachelors degree is enough for many entry-level jobs in this industry, employers often require a masters degree or PhD for more complex positions. A graduate degree can also help engineers advance more easily within a company. Masters degrees usually take 1 to 2 years to complete, and PhDs take at least another 4 years. Those who want to work as engineering professors at a college will need a PhD. Anyone offering their services directly to the public needs to be licensed as a Professional Engineer (PE) by their state licensing board. Candidates must complete an engineering program, acquire several years of work experience under the supervision of licensed engineers, and pass two exams.
RelatedCollegePrograms
Computer Software Engineering Computer Engineering, General Electrical and Electronics Engineering Computer Science
OtherSuggestedQualifications
Software engineers should be logical thinkers who have a good eye for detail and excellent analytical skills. They should also be curious and have an aptitude for math and science. The ability to communicate effectively is important because they work on teams with other professionals and different types of engineers. Most importantly, they must be interested in solving problems through the use of technology. In this field, you have to always be on top of the latest technological advances, so training and education continues throughout your career. Many engineers take ongoing education programs offered by trade groups and equipment vendors. They may also take night courses at colleges. A Master of Business Administration (MBA) degree or any other business-related qualification is an asset, and sometimes a requirement, for engineers who want to take on more administrative and project management responsibilities as their careers progress. Engineers who go on to become executives in their companies often have an MBA.
SuggestedHighSchoolSubjects
Grade9 Grade10
English Mathematics Science Social Studies - Geography Health & Physical Education Creative Arts Business Computers
English Mathematics Science Social Studies - History Business Computers Electronics & Communications Technology
Grade11
Grade12
English Mathematics Probability & Statistics Science Law & Government Computers Computer Programming Electronics & Communications Technology
English Algebra & Geometry Calculus Science Economics Computers Computer Programming Electronics & Communications Technology
Important
Check with your advisor to make sure that your course selections satisfy your graduation requirements. Courses available may vary from school to school.
SampleCareerPath
People take different pathways through their careers, but no one starts at the top. This is an example of how the earnings, education and experience requirements, and responsibilities might progress for someone in this occupation.
Level1
SampleTitle
Earnings
Requirements
Responsibilities
Under the supervision of senior software engineers, carrying out basic tasks, such as analysis and number crunching; working with other engineers and researchers to help solve problems.
Level2
SampleTitle
Software Engineer
Earnings
Requirements
Responsibilities
Working with less supervision; doing more complex analyses; taking on more complicated software design projects; supervising the work of junior engineers.
Level3
SampleTitle
Senior Engineer
Earnings
Requirements
Level3
Responsibilities
Reviewing other engineers work; assigning responsibilities to other engineering staff; making decisions about overall policy; evaluating new designs; liaising with other departments to ensure that the work is meeting the requirements of the company; possibly carrying out departmental administrative functions, such as budgeting.