Guide to College Majors in Software Engineering
--Rick Cook
What is Software Engineering?
According to the U.S. Bureau of Labor Statistics (BLS), software
engineering is the "design, development, testing, and evaluation of
the software and systems that enable computers to perform
applications."
Software engineers work with a variety of programming languages
such as C++ and Java. They might work to modify existing software
applications or creating new ones from scratch. The duties of a
software engineer may also include setting up and maintaining
computer networks.
Employers usually require entry-level software engineers to possess bachelor's degrees, but an associate's degree combined with work experience may sometimes be sufficient for a startup or a rapidly expanding company. Experience and continued education can enable a software engineer to advance to management or a top executive position.
Because technology changes quickly, it is essential for software engineers to remain current in their field. Graduate degrees are looked upon favorably (especially for management positions), though not required. Many software vendors, such as Microsoft, Java, and Cisco, offer certification programs to assist software engineers in their professional development.
Not surprisingly, nearly all of these degrees are available from online colleges and universities, as software and Web development become more tightly integrated.
The outlook for careers in software engineering is very favorable. The BLS expects software engineering to be one of the fastest-growing occupations over the next 10 years. Continued growth in the computer systems field and related industries should create more job opportunities for software engineers.
Successful Software Engineering Majors Have:
- Technical skills. During their
college degree programs, software engineering majors should
develop strong technical abilities through repeated exposure to a
variety of new and traditional technologies. Students learn the
principles of technical innovation by tracing the history of
computers and software through to present systems and beyond.
Software engineering majors often get the earliest opportunities to experiment with new technologies. Many technical innovations come from experiments at major engineering colleges and universities. The Internet allows students to quickly distribute their new software for peer review and testing. Based on the results, some software engineering majors start to enjoy their first tastes of professional acclaim while still attending classes. - Problem-solving skills. Any strong software
engineering degree program will teach students to think critically
about the problems facing companies and consumers. By developing
efficient solutions to common problems, software engineers continue
our culture's constant innovation.
Software engineering majors don't just solve problems in front of computer monitors, however. Many colleges and universities offer courses in logic, debate, and even game theory, to help tomorrow's software engineers expand their ability to leverage technology to resolve non-technical dilemmas. - Interpersonal communication skills. Generally,
software development requires a team effort. Many students who have
hacked around on their own for years may find it challenging to
collaborate with other developers on complex projects. Therefore,
software engineering majors learn to interact with their peers and
team leaders effectively.
To prepare students for careers in corporate environments, many software engineering programs encourage students to participate in collaborative projects over the course of each semester. Whether part of inter-campus competitions or a school's public outreach agenda, these programs can unite students around complex problems, forcing them to learn to work as a team to tackle large software projects. - Writing skills. Software engineers must also
learn how to present their ideas and recommendations to
non-technical colleagues. Software engineering majors learn the
basics of corporate communications, including proper formats for
departmental communication and project reports.
Software engineers with entrepreneurial tendencies can benefit from courses in public relations. These added skills can help them write press releases and customer communications for their own fledgling companies. Regardless of the format, software engineers who can write well are tremendous assets to their companies. - Oral presentation skills. While developing
solutions for companies and customers, software engineers must
often orally present suggestions or research findings to various
groups within their organizations. Software engineering majors
develop the ability to blend modern presentation tools with classic
storytelling skills to engage audiences.
Software engineering majors must be prepared to debate other team members about the inclusion of features into a software project, or justify changes to a project's budget or timeline. Many software engineers, especially those working at startup firms, often find themselves addressing audiences of potential investors or reporters. The most effective software engineers can explain their projects in plain language, without resorting to insider jargon. - Accounting and budgeting skills. The exploding
technology industry of the late 1980s and early 1990s
revolutionized the roles of software engineers. Instead of working
completely behind the scenes like their predecessors, today's
software engineers must prepare to play a significant role in the
financial stability of their companies.
In small startup companies, software engineers must pinch pennies to meet deadlines under budget. When relying on small groups of investors, or even your own credit cards, to fund a venture, entrepreneurs must accurately predict the length of time it will take for a product to reach its market and generate revenue.
In larger technology companies, software engineers must often manage their own budgets of funding and human resources. They must be able to assign team members to reasonable schedules and meet their deadlines without triggering expensive overtime charges or other staff expenses.
Because of these additional requirements, many
software engineering programs (and employers) enroll their
students in basic courses in
accounting, business, and
time management. By balancing sound business skills with their
technical abilities, software engineering majors can prepare
themselves for lucrative post-tech-bubble careers.
Career Education in Software Engineering
Preparing to enter a college degree program
Software engineering degrees are available at all levels, from
undergraduate certificates to
doctorates. Most careers in software engineering require at
least a
bachelor's degree. However, with extensive experience, a
certification
or associate's
degree may be sufficient.
Online degree programs in software engineering are available at
nearly every level.
Certificates in Software Engineering
An
undergraduate certificate in software engineering is typically
considered preparation for an associate's or bachelor's degree. The
program usually consists of four to five basic software engineering
courses, such as Principles and Techniques of Software Engineering,
Design and Development, and Software Safety.
Associate's Degrees in Software Engineering
Associate's degrees in software engineering are considered
preparation for entry-level positions in the software engineering
field. The associate's degree focuses on general education courses
and courses related to software engineering. Courses on programming
languages, database design, and technical communications are
common. An associate's degree typically takes two years to
complete, and can be used as the foundation for a bachelor's
degree.
Bachelor's Degrees in Software Engineering
A
bachelor's degree in software engineering is usually required
to launch a career as a software engineer. It includes general
education courses as well as those specific to the software
engineering field. Extensive education on programming languages,
network systems operation, and software design and testing is
common. A bachelor's degree typically takes four to five years to
complete. Many bachelor's degree programs in software engineering
require internships or on-the-job training, which can take
additional time.
Online bachelor's degrees in software engineering are available
for working professionals or students who simply need increased
flexibility in their studies.
Master's Degrees in Software Engineering
Designed to build on the knowledge earned from the bachelor's
degree,
master's degrees in software engineering are suitable for the
recent college graduate or for experienced software engineers.
Advanced Database Design, Software Specifications, and Advanced
Computer Networks are just a few of the courses that may be
required. Master's degree programs in software engineering may also
offer courses in management, which are designed to help the
software engineer advance to a management level within his
corporation or business. Master's degrees typically take two years
to complete and are also available online.
PhD Degrees in Software Engineering
Doctorates in software engineering are highly
research-intensive. Though programs vary by university, the student
typically has a focus within the software engineering field and
chooses a relevant research topic and coursework. A PhD typically
takes around six years to complete. PhD graduates are positioned to
teach, perform research and influence policy throughout the
industry.
What can you do with a Major in Software Engineering?
Career options for aspiring software engineers
Software engineering majors don't just become software engineers (though many do). Here are a few of the different career paths available.
- Software engineers are typically divided into
two fields: computer applications software engineers and computer
systems software engineers.
Computer applications software engineers design and maintain computer applications (such as Microsoft Office or Adobe Photoshop) to meet specific needs. Meanwhile, computer systems software engineers construct and maintain a company's total computer network, while planning for future technical growth.
Both applications and systems engineers must have strong programming skills. They must be able to analyze and solve problems quickly. Software engineers must often interact with clients, making excellent verbal and written communication skills essential.
Software engineering is a constantly changing industry, and engineers must keep up with current technology and trends. Though licensure is not required of software engineers, certification is often available through software vendors. These certifications insure that software engineers stay up-to-date on current applications.
Most entry-level software engineering jobs require a bachelor's degree, although some exceptions may be made for very experienced engineers. - Computer and information systems managers
often begin their careers as software engineers and advance to the
managerial level through a combination of work experience and
education. They are typically responsible for constructing their
companies' technology plans. Computer and information systems
managers must oversee the planning, design, and execution of all
computer-related activities, insuring that budgets are adhered to
and deadlines are met.
Long hours and late nights are often required of computer and information systems managers. In addition to engineering experience and an undergraduate degree in software engineering, they often possess graduate degrees in business or management. - Sales engineers use their technical
knowledge to sell products and services. Software sales engineers
usually get straight engineering experience first, and use that
knowledge to help them sell computer software, services, or other
related equipment.
Sales engineers are responsible for accurately explaining and demonstrating their products. Because so many software companies rely on upgrade cycles to generate repeat business, many sales engineers develop close relationships with their clients. By allowing clients to suggest new features and by granting them sneak peeks at new software releases, sales engineers can make a significant impact on a company's success.
Jobs in sales engineering are often very demanding. Many sales people work on commission instead of salary, creating intense pressure to make each sale. Long hours and travel are common. - Chief Technology Officers (CTO) are top
executives in their industry, and are responsible for the technical
divisions of corporations or businesses in which they work.
Chief technology officers oversee and supervise the technical staff, including software engineers and computer and information systems managers. They set and establish the policies and procedures of their department and ensure that the company is proceeding in the proper technical direction. CTOs are usually given private offices and support staff to assist them with their duties. Long hours and travel are usually required, but CTOs are among the highest paid workers in America.
Education and experience are both important components for becoming a chief information officer. CTOs often begin their careers in software engineering and earn graduate degrees in management or business. - Video game designer. In recent years, video
game companies have earned more from sales of software than major
motion picture studios have earned at the box office. This
fast-growing form of popular entertainment requires teams of
skilled professionals to dream up escapist fantasies and bring them
to life on the small screen.
Video game developers often specialize in one portion of the team's mammoth task. For example, one team member may spend his entire time developing game logic, while another programs backdrops and atmospheric elements. Software engineers coordinate their efforts with game writers and graphic designers to expand the boundaries of the medium. Before new video games reach store shelves, they must first pass through another team of software engineers. These quality control specialists oversee the testing of the games by sampling new titles the same way that home players would. Testing engineers note flaws or problems in game design and make suggestions for revisions to the original design team. While developing a new title, the design team and the testing team may volley dozens of revised editions between each other. The result is a finely honed piece of software that entertains and engages audiences without technical problems. - User Interface Designer. Some software
engineers specialize in refining the experience that end users
enjoy when using a particular program or system. In the early days
of computers, technicians designed software for other technicians,
and designers put little effort into usability. Since computer
technicians understood computers, there was no need to streamline
the process of getting information into or out of complex
systems.
A few decades later, computers have permeated every facet of our daily lives. As more non-technical people rely on software to carry out everyday tasks, a new breed of software designers uses graphics and input devices to create intuitive, attractive user interfaces.
Today's user interface designers hope to innovate beyond the current mouse pointer and desktop by building custom interfaces for common tasks and dedicated appliances. For example, Internet-connected refrigerators that alert you to replenish groceries require specialized controls that function well in a kitchen environment. Set-top boxes that allow television viewers to record and store programs must make it easy for customers to set up complex instructions with simple remote controls.
With the widespread use of mobile phones, personal digital assistants, and tablet computers, user interface designers strive to build controls that are effortless, if not invisible. The most powerful user interfaces allow device owners to get their needs met without having to think about the complex technology behind their familiar screens.
Salary Expectations for Environmental Engineers
In 2006, the Bureau of Labor Statistics reported a median annual
income for computer application software engineers of $79,780.
Computer systems software engineers came in slightly higher at
$85,370. Computer and information systems managers had a median
annual income of $101,580.
A sales engineer's income is often commission-based. In 2006, sales
engineers reported a median annual income of $77,720. This figure
does not include benefits such as a company car or earned frequent
flyer miles.
Chief technology officers are considered top executives in their
companies and firms. Though their hours may be long, their salary
is the top of their field. The median annual income ranges from
$101,000 to $157,000, according to Robert Half International.
Certification and Licensure
A license is not typically required to work in software
engineering, but professional certifications and certification
through software vendors are available. Requirements for achieving
certifications vary, but most are helpful resume additions.
The Institute of Electrical and
Electronic Engineers offers the designation of Certified
Software Development Professional, one of the most widely
recognized professional certificates. The first step in completing
this certification is passing an exam that tests general knowledge
of software engineering. In addition to from successful completion
of the exam, the IEEE requires candidates to hold a bachelor's
degree and have completed at least 9,000 hours of work experience
in one of the IEEE's 11 recognized knowledge areas.
Professional Certification is also available through the Institute for the Certification of Computing
Professionals (ICCP). Requirements for certification through
the ICCP are similar to the IEEE. Successful completion of an exam
and at least four years of related experience are mandatory.
Many software vendors, such as Microsoft and Cisco, also offer
training programs for computer professionals. These programs
typically last between one and four weeks, though attending the
program is not required for taking the exam. A certificate is
awarded upon successful completion of the exam. Though they are
excellent tools for training and continuing professional
development, professional certifications are no substitute for an
undergraduate or graduate degree. Software engineers are usually
required to hold a
bachelor's degree at minimum.
Other Associations and Certification Bodies:
- Association for Information Systems
- Association for Systems Management
- Center for Advanced Computing Research
- Computer Society, IEEE
- International Association for Computer Information Systems
- Information Technology Association of America
- National Academy of Engineering
- Society of Women Engineers
- Online Degrees in Software Engineering
- Online Degrees in Systems Engineering
- Online Degrees in Computer Engineering
