What to expect from software engineering schools
Similar to mobile application developers or software developers, systems software developers and software engineers create the software that runs consumer computer systems. However, unlike software and mobile developers, software engineers can also create the software that runs a car's anti-lock braking system, a hospital's MRI machine, a computer or phone's operating system or a new software compiler for computer programmers. As such, the educational requirements for a degree in software engineering may be more technically and mathematically focused than in other software development programs.
Programs in computer software engineering may include computer science, programming, software design and machine organization, as well as computer theory. These courses may require students to have taken mathematics classes such as calculus and differential equations, or to take these math classes during the course of earning a degree.
Degrees in computer software engineering are typically awarded as bachelor's or master's degrees and sometimes doctorate degrees. According to the Bureau of Labor Statistics (BLS), employers generally prefer to hire system software developers with a bachelor's degree in computer software engineering (bls.gov/ooh, 2012). A master's degree may help a student improve programming skills or keep up to date with new software tools and computer languages. Earning a doctoral degree in computer software engineering may provide a graduate with enough experience and education to become a computer research scientist. According to the BLS, computer and information research scientists typically have a doctorate degree (bls.gov/ooh, 2012).
Popular tools software engineers may have to learn
During the development phase, software engineers can be expected to use a computer-aided software engineering (CASE) tool or a set of databases, programs and methods for creating new software systems. Similar to the software used by a CAD drafter, a CASE program can help an engineer debug a group of software, create software standards, distribute a project's workload and visualize the software's design tree. Some of these CASE programs include the following:
- CodeMine - This is a software analytics platform from Microsoft that collects software data for an engineer to analyze during the development phase of the software's life cycle.
- Cloud Dev - Another CASE from Microsoft, this tool helps developers shorten the integration cycle of cloud-based code.
- Tigris.org - This is an open source community for software engineers. In addition to providing open source tools, Tigris.org also provides open source projects for software engineers to participate in and experiment with.
Skills software engineers need
Because software engineers and systems software developers may create work of vital importance to the safety and security of others - such as an aircraft's autopilot system or medical device software - systems software developers may benefit from being detailed oriented.
According to the Bureau of Labor Statistics, systems software developers may benefit from having the following skills (bls.gov/ooh, 2012):
- Communication skills - software engineers may have to communicate to hardware or mechanical engineers what their software is expected to do.
- Teamwork skills - many software engineers work in teams and may benefit from effectively sharing the work.
- Problem-solving skills - as software engineers may be responsible for creating a number of new and never before created software, problems will undoubtedly arise that need quick solutions.
- Technical skills - as some of the software a software engineer creates can be entirely new, software engineers may benefit from knowing the limitations of their machines and computer languages.
Job outlook for software engineers
According to the Bureau of Labor Statistics Occupational Outlook Handbook, from 2010 to 2020 software developers of systems software can expect to experience an employment outlook growth of up to 32 percent, nationally (bls.gov/ooh, 2012). This growth is projected to be the result of an increase in the number of products that use software. Phones, cars, appliances and tools have all begun to involve software at some level.
As of May 2012, software developers of systems software made a national median annual wage of $99,000 with the highest and lowest 10 percent earning up to $148,850 and $62,800, respectively (bls.gov/oes, 2013). The two states with the highest employment concentration of software developers of system software were Massachusetts and Virginia.
Bureau of Labor Statistics, U.S. Department of Labor, Occupational Outlook Handbook 2012-2013 edition, Software Developers - http://www.bls.gov/ooh/Computer-and-Information-Technology/Software-developers.htm#tab-2
International Organization for Standardization, Software Engineering - Guide to Software Engineering Body of Knowledge, 2005 - http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=33897
Institute of Electrical and Electronics Engineers, http://www.ieee.org/index.html
Bureau of Labor Statistics, U.S. Department of Labor, Occupational Employment and Wages, Software Developers, System Software, May 2012 - http://www.bls.gov/oes/current/oes151133.htm
California State University at Chico, Class Catalog - http://catalog.csuchico.edu/viewer/13/ENGR/CMPENONEBS.html
Microsoft Research, Projects, Tools for Software Engineers - http://research.microsoft.com/en-us/projects/tse/