Also known as developers, software engineers are the brains behind the computer programs we use on a daily basis. They may develop single applications or be responsible for engineering the software to run an entire system. Depending on their job and employer, software engineers may perform other functions as well. For example, while some software engineers work in tandem with computer programmers, others must do their own programming.
Within software engineering are two specialties: applications and systems software. Although both call upon the same computer science skills, their scope of work can be significantly different.
To be successful in their jobs, both applications software developers and systems software developers need to be creative problem-solvers. It is their responsibility to identify user needs and then create software to meet those needs.
Although some software engineers work independently from home, these professionals often work as part of a larger project team. So it makes sense there would be more positions available in areas where a significant number of start-ups or technology firms are located. Software engineers in Iowa, for instance, may find they don’t have the same job opportunities or income potential as those living in California. Use this salary tool to see how job growth and average incomes compare in states across the nation.
Although software engineering is an in-demand field, students shouldn’t expect a job to be handed to them at graduation. Employers may prefer job applicants who have hands-on experience, and an internship can be an excellent way to demonstrate competence. Not only do students get in-the-field work experience when they serve as an intern, they also have the opportunity to make networking connections that could help them land a job once they have a degree in hand.
Each internship program will have their own requirements, but they are typically available to those nearing graduation. Depending on the college or university, some schools may arrange internships for their students. For those who need to find an internship on their own, here’s a list of software engineering internships worth considering.
Where: Irvine, California
Description: Canon hires software interns to work with its engineers on projects such as creating mixed reality experiences. Applicants should have experience with writing and debugging complex applications as well as knowledge of C#, Unity 3D development and various APIs among other requirements.
More Info: https://www.usa.canon.com/cusa/about_canon/careers/internship_programs
APS/IBM Research Internship for Undergraduate Women
Description: The American Physical Society and IBM co-sponsor 10 week salaried internships for women enrolled in graduate science and engineering degree programs. Interns are allowed to choose their own focus for research conducted during the program.
More Info: http://www.aps.org/programs/women/scholarships/ibm/
American Indian Science and Engineering Society
Description: The AISES coordinates 10 week summer interns for its student members. Interns must be sophomores, juniors or seniors and have a GPA of 3.0. The program provides transportation, lodging and weekly stipend to participants.
More Info: http://www.aises.org/scholarships/internships
Where: Eagan, Minnesota
Description: Thomson Reuters offers paid internships to students enrolled in computer science, information technology and similar degree programs. Intern duties may include programming and testing software, creating databases and researching prototype projects. Internship opportunities may also be available at other Thomson Reuters locations.
More Info: http://careers.thomsonreuters.com/students/internships/
Where: Menlo Park, California
Description: Facebook offers a variety of 12 week , paid internships. Software engineering interns need a degree in a computer science degree and expertise with C++ or Java. They must also have knowledge of one or more of the following: Perl, PHP, Python, SQL and relational databases.
More Info: https://www.facebook.com/careers/university
Where: Kansas City, Missouri
Description: Travelport hires interns who are in their junior year of college or later for a 12 week, paid program. Software engineering interns need to have knowledge of C++, C# and .net as well as an understanding of productivity applications.
More Info: http://www.travelport.com/Careers/Internship-US
Thermo Fisher Scientific
Where: Madison, Wisconsin
Description: Thermo Fisher Scientific offers paid software internships at its Madison location. Participants must be at least a junior level student in a software or computer engineering degree program and should have knowledge of at least one development tool such as C# or Java.
More Info: http://www.thermofisher.com/global/en/about/careers/leadership.asp
Where: Poway, California
Description: Brooks Life Division hires software interns to help analyze log files, verify content and design performance data processing applications, among other tasks. Applicants should be proficient in Microsoft Word and PostgreSQL as well as an additional programming language such as Java, C# or VB.NET.
More Info: http://www.brooks.com/company/careers/current-job-openings
Where: Boise, Idaho
Description: HP software internships may include responsibilities such as managing software, conducting research and offering technical support. Interns should have experience with Linux, Perl, Python, C, C++ and Java. Other internship opportunities may be available at other HP locations.
More Info: http://www8.hp.com/us/en/jobs/students.html
Where: Cedar Rapids, Iowa
Description: Software engineer interns for Genova Technologies assist with writing code, developing model-based software and special projects. Applicants should be entering their junior or senior year and pursing a degree in software engineering.
More Info: http://www.genovatech.com/careers/
Where: Sioux Falls, South Dakota
Description: Daktronics gives students a chance to shadow an engineer for a semester. Interns may help develop, debug and maintain software applications as well as write code and assist in product development. Applicants should be pursuing a bachelor’s degree in software engineering or a related field and must have knowledge of object oriented programming.
More Info: http://www.daktronics.com/en-us/employment/internships
Where: Cambridge, Massachusetts
Description: iZotope offers an internship for computer science students to work as a software test engineer. Applicants must be proficient in an object oriented language and have knowledge of a scripting language.
More Info: http://www.izotope.com/careers/
Where: Seattle, Washington
Description: Junior software engineer interns with Nuance may be assigned to enterprise research and development where they assist as an Android/Java developer. Java and Android skills are required while experience with Maven and Gradle is preferred.
More Info: http://jobs.nuance.com/careers/intern-jobs
Where: Farmington Hills, Michigan
Description: Software engineer interns for Cengage Learning must have experience with JUnit or test driven development, XML parsing and application development. Applicants should be full-time students at an accredited college who are at least sophomores.
More Info: http://www.cengage.com/careers/internships.html
Where: Salem, Oregon
Description: Garmin hires paid interns for its summer program. Both college students and early career professionals are invited to apply. Software engineering interns must be trained in a high level language such as C, C++, C# or Java.
More Info: http://www.garmin.com/us/company/careers/students/
Where: Westford, Massachusetts
Description: Red Hat seeks interns to help with proof-of-concept projects such as creating tools for Fedora container-base images. Applicants must have experience with Python, be familiar with containers and willing to work in an open source community.
More Info: http://jobs.redhat.com/job-categories/internships/
Where: Pittsburgh, Pennsylvania
Description: Software development interns hired at IBM’s Pittsburgh location may help with the Watson project and work to enhance cognitive computing abilities. Applicants should be skilled in C/C++, Java or Scala development.
More Info: http://www.research.ibm.com/careers/internships/
Where: Clearfield, Utah
Description: Northrop Gumman’s software engineering internship offers to write and support software systems written in many different languages. Applicants should have the ability to use programming languages, work full-time and obtain secret clearance.
More Info: http://www.northropgrumman.com/Careers/StudentsAndNewGrads/Pages/Internships.aspx
Where: Richardson, Texas
Description: Metaswitch Networks hires interns to install and configure software. Interns may also be responsible for some light software development in Linux.
More Info: http://careers.metaswitch.com/internships/
Where: Cedar Rapids, Iowa
Description: The Trapeze Group hires paid software developer interns to work a variety of projects. Applicants must have experience with object oriented analysis and design, relational databases and web development.
More Info: http://careers.trapezegroup.com/careers/details/software-developer-internship
Where: New York, New York
Description: Knewton offers paid software engineering internships that may be a good fit for those interested in coding. Applicants must have coding experience and knowledge of Java.
More Info: http://knewton.theresumator.com/apply/6WpWPK/Software-Engineering-Internship.html
Where: Huntsville, Alabama
Description: Intergraph offers several internship opportunities for software engineering students. Interns may need to have knowledge of the following: Windows operating systems, Microsoft .Net, Oracle and MS SQL/Server.
More Info: http://www.intergraph.com/careers/
Where: Boulder, Colorado
More Info: http://www.logrhythm.com/company/about-us/careers.aspx
Where: Jersey City, New Jersey
Description: Software developer interns for SunGard provide support work, C# development and technical documentation. Applicants should understand web code as well as broker code.
More Info: http://sungard.com/Campaigns/Corporate/student_center_americas/HomePage
Description: Intel hires interns at all its major U.S. sites. Eligibility requirements may vary depending on whether the intern position is intended for a bachelor’s, master or doctoral student.
More Info: http://www.intel.com/content/www/us/en/jobs/locations/united-states/students/internships/degree-program-internships.html
Students interested in software engineer careers have several education choices. Associate degree programs offer engineering basics and may be sufficient for entry-level jobs. However, a bachelor’s degree is more typical. Those who wish to work on complex projects may want to pursue a master’s degree which can provide specialized skills.
However, before enrolling in a degree program, it’s important to know how to pay for it. While student loans may be the norm, there is plenty of free money to be found for software engineering programs.
Rather than graduate under a pile of debt, students should look for other ways to pay for college. Scholarships are one way to get money for a software engineering degree. These programs may require individuals to meet certain income or grade requirements, but otherwise, scholarships offer free money that does need to be repaid upon graduation.
School financial aid offices may have a list of scholarships available to their students, and here are 25 scholarships open to students studying to become software engineers.
|$1,000||Open to females studying at an accredited institution in Washtenaw County, Michigan (home of the University of Michigan main campus). Applicants must be pursuing a career in a computer or technology related field and have at least two semesters of coursework remaining.||http://www.aaacf.org/scholarships/aaacf-scholarship-funds/awc-scholarship-fund-women-computing|
|$250||Open to Arkansas residents enrolling in a post-secondary technical program. Applicants must have a minimum 2.5 GPA in high school and score at least a 19 on the ACT, 730 (combined math and science) on the SAT or graduate in the top ten percent of their high school class.||http://ace.arkansas.gov/cte/Pages/highTechScholarship.aspx|
|$5,000||Open to female U.S. citizens planning to major in an engineering discipline.||http://www.swe.org/scholarships|
|$5,000||Open to incoming freshman who reside in certain Northern California counties and are enrolled in an accredited four-year program with a major in math, science or engineering. Applicants must have a 3.0 GPA and have at least 50 percent Filipino heritage.||http://asianpacificfund.org/information-for-student-applicants|
|Unspecified||Open to student members of the Association of Information Technology Professionals and a declared computer science major with a GPA of at least 3.0. Applicants must be enrolled in a full-time program and have completed at least 12 semester hours of college.||http://www.edfoundation.org/bettystevensfrecknallscholarship.htm|
|$500-$5,000||Open to students who are at least one-quarter American Indian and enrolled in a recognized U.S. tribe. Applicants must be enrolling in a full-time accredited program to study in one of six priority areas including math, science and computers.||http://www.catchingthedream.org/Scholarship.htm|
|$10,000-$50,000||Available to individuals younger than age 18 who have completed a significant piece of work in areas such as science, technology and engineering.||http://www.davidsongifted.org/fellows/|
|$36,000 yearly stipend plus tuition and other benefits||Open to doctoral students who are studying fields that rely on high-performance computing to solve complex problems in the realms of science and engineering.||http://www.krellinst.org/csgf/about-doe-csgf|
|$3,000||Open to women and minority students enrolled in degree programs leading to computer and video game arts careers. Applicants must have a 2.75 GPA and enrolled in an accredited four-year program.||http://www.esafoundation.org/scholarship.asp|
|Unspecified||Open to Native American students studying select fields including computer science, engineering and math.||https://www.fordscholars.org/scholarships/american-indian-college-fund|
|$2,500||Open to Hispanic students studying in a STEM (Science, Technology, Engineering and Math) field. Applicants must have plans to enroll in an accredited four-year program and have a minimum 3.0 GPA.||http://hsf.net/en/scholarships/programs/hsf-procter-gamble-scholarship-program|
|Unspecified||Open to students enrolling in a participating Minnesota school who are studying science, math or engineering and interested in working for NASA. A 3.5 GPA is typically required.||http:// www.aem.umn.edu/msgc/|
|$500 - $2,000||Open to seniors graduating from a public high school in King, Pierce or Snohomish counties in Washington state and enrolling full-time in a Washington college.||http://www.carmanscholarships.org/|
|$500 - $10,000||Open to students enrolled in a two-year or four-year undergraduate or graduate program who are studying in a science, technology, engineering or math field. Applicants must have a 3.0 GPA and either be Hispanic or actively involved in the Hispanic community.||http://www.greatmindsinstem.org/college/henaac-scholarship-application-guidelines|
|$3,000||Open to Pennsylvania sophomores enrolled in one of the designated degree programs which include software engineering. Applicants must have a 3.0 GPA.||https://www.pheaa.org/funding-opportunities/other-educational-aid/nets-scitech-scholarship.shtml|
|$25,000 - $38,000 stipend plus tuition reimbursement||Open to students enrolled in an undergraduate or graduate program in the areas of math, science and engineering. Recipients must be will to participate in summer internships with the Department of Defense and accept employment with the department after graduation.||https://smart.asee.org/|
|$1,000 - $3,000||Open to SHPE members studying in the fields of science, technology, engineering and math. Applicants of Hispanic descent are preferred.||http://www.shpefoundation.org/scholarships/ahetems-general-scholarships/|
|Unspecified||Open to females graduating from high school and pursuing a degree in engineering or a related field. Applicants must resident in the greater San Francisco Bay Area.||http://ggs.swe.org/scholarship.html|
|Varies||The Society of Women Engineers offers a wide range of scholarship opportunities to females studying engineering and related fields. Each scholarship has its own eligibility and applicant requirements.||http://societyofwomenengineers.swe.org/index.php/scholarships#activePanels_|
|$500 - $5,000||Open to first-generation college students from low-income families in the states of California, Illinois, Texas and New York.||http://telacu.com/site/en/home/education/applications.html|
|$10,000||Open to female students enrolled in a full-time undergraduate or graduate program and majoring in computer science, computer engineering or a related field.||http://www.google.com/anitaborg/us/|
|$10,000||Open to students transferring to the Illinois Institute of Technology.||http://admissions.iit.edu/undergraduate/apply/transfer-applications|
|$5,000||Open to students working toward a bachelor’s degree in five areas including engineering and computer science. Applicants must have a minimum 3.0 GPA and be currently enrolled in an accredited program.||http://www.entelec.org/about/waynevblackscholarship|
|$3,000||Open to students enrolled in an engineering, science or technology certificate or degree program. Recipients must agree to work in the engineering, science or technology sector in West Virginia after graduation.||https://secure.cfwv.com/Financial_Aid_Planning/Scholarships/Scholarships_and_Grants/WV_Engineering_Science_and_Tech_Scholarship_Program.aspx|
|$1,000 - $10,000||Open to minority students enrolled in a degree program in the technical sciences or engineering disciplines.||http://www.xerox.com/jobs/minority-scholarships/enus.html|
Just as there are many different types of students, there are many types of software engineering programs. Generally, colleges and universities offer three ways for students to earn their degree.
Campus-based programs: These are traditional degree programs that require students to attend classes on-site and submit work in person. Campus-based programs are most commonly offered during weekdays but some schools may offer night and weekend programs as well.
Online programs: Online degree programs are offered entirely online. They may be synchronous, meaning all class participants may long in at a specific time, or asynchronous, in which students may log in and complete work at their convenience.
Hybrid programs: A hybrid program is a third option for students wishing combine the convenience of online degrees with the hands-on experience gained through campus-based program. Students may complete the majority of their work online but have campus-based elements such as labs or hands-on experiences as well.
Online degree programs are revolutionizing the way education is delivered in America, but it still has some limitations. Some careers require clinical experience while others may benefit from having hands-on instruction. However, earning a software engineering degree online isn’t a problem.
Computer technology makes it easy to electronically teach software engineering basics, assess student progress and expand upon specialized skills. Using a variety of communication options from Skype to Blackboard to Adobe Connect, students can collaborative with their peers and receive immediate feedback from instructors. Assignments can be completed remotely and submitted via email or the web.
As mentioned previously, an online software engineering degree program can be structured in two ways: synchronous or asynchronous. Students who have erratic schedules and are self-disciplined enough to work independently may want to consider an asynchronous software engineering degree program. These allow students to self-paced and work on a schedule convenient to them. However, those who benefit from the structure of a designated class times may wish to enroll in a real-time, or synchronous program, which requires students to be online for specific times to listen to lectures or participate in class activities.
Before signing up for a software engineer degree online, students should be sure they have the necessary equipment. Generally, online schools may require a computer, broadband connection and certain web browser, the video viewing and word processing programs. However, software engineering degrees may have more intensive requirements. Students may have to buy specialized programs or need a computer with processing power beyond that provided by a typical consumer computer. Students investigating software engineer online degree programs should inquire into equipment requirements and the price before enrolling in a program.
The associate’s degree in software engineering is a two-year program that provides students with the basic knowledge to become software developers. The first year may focus more on general concepts while the second year is devoted to learning specific programming languages. Students often graduated with an Associate of Applied Science in Software Engineering. The table below illustrates a typical associate degree curriculum, but specific courses and requirements will vary by school.
|First Semester (Freshman)||Credits||Overview|
|Introduction to Computer Science||3||An overview of the key concepts of computer science and an introduction to programming basics.|
|Business Practices||3.5||Introduction to how computer science applies to modern business practices.|
|Elementary Database||4.5||An introductory course to database concepts.|
|Technical Mathematics I||3||First of a two-course series that teaches intermediate algebra and trigonometry and their technical application.|
|Second Semester (Freshman)||Credits||Overview|
|Technical Communications||3||Practical review of how to communicate technical information and data.|
|Database Systems||4.5||A more in-depth look of database systems.|
|Matrix Algebra and Problem Solving||3||Overview of matrix theory and linear algebra.|
|Technical Mathematics II||3||Expands on the technical application of algebra and trigonometry.|
|Success Planning||2||Provides strategies to map out a successful career.|
|Third Semester (Sophomore)||Credits||Overview|
|Competing for Employment and Promotions||3||Career-focus course designed to assist students in their job search.|
|Elementary Java||4.5||Introduction to the programming language Java.|
|Elementary Visual C++||4.5||Introduction to the programming language C++ with a focus on theory and the use of sample code.|
|Calculus I||3||First of a two-course series on Calculus theory and practice.|
|Fourth Semester (Sophomore)||Credits||Overview|
|Intermediate Java||4.5||Expands on basic Java skills to reinforce exception handling and event handling. Begins to introduce advanced concepts.|
|Intermediate Visual C++||4.5||Provides intermediate C++ programming skills including creating and troubleshooting actual code.|
|Calculus II||3||Conclusion of Calculus theory and practice.|
|Administering SQL Database||4||Covers starting, pausing and stopping a SQL server, importing and exporting data and managing security, servers and clients.|
|Team Building||2||Overview of basic teamwork concepts and team building strategies.|
Students may enter into a bachelor’s degree program directly from high school or they may earn associate degree first before continuing their education in a four year program. At the junior and senior level, students may gain more freedom to take elective courses and to specialize in a particular area of software development. Although classes will vary by school, the chart below shows what students can typically expect during years three and four of a bachelor degree program.
|Fifth Semester (Junior)||Credits||Overview|
|Software Process and Project Management||3||Overview of the principles, techniques and tools for model-based project management.|
|Secure Software System Development||3||Delves into common programming errors and how those can leave software vulnerable to security threats.|
|Engineering Fundamentals of Computer Systems||4||Introduction to data compression, data storage, digital systems and error detection.|
|Engineering Elective||3||An engineering class chosen by the student.|
|General Elective||3||A general education class chosen by the student.|
|Sixth Semester (Junior)||Credits||Overview|
|Software Systems Architecture||4||Overview of software architecture and review of methods to document and evaluate systems.|
|Applications Elective||3||Class chosen by student that focuses on application software.|
|Software Process Elective||3||Class chosen by student that focuses on a software process model.|
|Software Verification and Validation||3||Theory and practice of software testing procedures.|
|General Elective||3||A general education class chosen by the student.|
|Seventh Semester (Senior)||Credits||Overview|
|Software Engineering Project I||3||The first half of a capstone project related to the student’s academic focus. May focus heavily on conceptualization.|
|Software Project Management||3||Review of project management methodologies as they relate to software development.|
|Wireless Mobile Software Development||4||Design and deploy a mobile application for an Android device.|
|General Elective||3||A general education class chosen by the student.|
|Eighth Semester (Senior)||Credits||Overview|
|Software Engineering Project II||3||The second half of the senior capstone project. May involve implementation, testing and review.|
|Computer Ethics||3||Ethical implications of computer technology, data collection and store and analysis of developer responsibilities.|
|Technical Elective (Based on Specialty)||4||A technical elective that allows the student to learn a skill or explore an interest in the technical field but not necessarily aligned with the major.|
|General Elective||3||A general education class chosen by the student.|
Students wishing to learn advanced techniques should consider earning a master’s degree in software engineering. Some master’s programs may cater specifically to career-minded individuals and focus on practical, hands-on learning opportunities. Others are intended to prepare students for doctoral degrees and may have a heavy emphasis on theory. Students should take care to enroll in a master’s degree program that caters to their education and career goals.
While there may be differences from school to school, most programs combine a set of core courses with an individually chosen “track.” These tracks provide the opportunity to specialize and examples of master degree concentrations include artificial intelligence, programming languages, and theory and scientific computation.
Concentration tracks will differ significantly depending on the student and institution. However, the following chart illustrates some of the common core courses a software engineering student might take.
|Master’s Program Core Courses||Overview|
|Software Design||Introduces the fundamentals of software design with students designing and implementing a service-oriented project.|
|Dependable Software Systems||In-depth look at software testing and software reliability. Topics may include syntax testing, N-version programming and test execution automation.|
|Requirements of Engineering and Management||Advanced focus on the intersection of engineering, business planning and information systems.|
|Software Project Management||Advanced review of software project management theory and practice.|
|Fundamentals of Computer Hardware||Covers the organization and architecture of all elements of computer hardware, processors, control units and memories.|
|Information Technology Integration||Advanced topics in software measurement, estimation and technology alternatives.|
While a master’s degree in sufficient for most practical needs, software engineers interested in research or working in academia may need a doctoral degree. Earning a PhD in software engineering can take up to four years or more of post-master’s degree coursework.
Unlike undergraduate and master’s degree programs, doctoral degrees are highly individualized. Coursework will depend upon the student’s particular interests and specialty. However, all PhD candidates work closely with a faculty advisor as they select courses and prepare a final dissertation project.
|SCHOOL NAME||CITY, STATE||STUDENT POPULATION||SCHOOL TYPE||TUITION||PROGRAM TYPE||PROGRAMS|
|University of Phoenix-Online Campus||Phoenix, AZ||307,871||Private, 4-year||$9,216||Online||View Programs|
Bachelor’s - ONLINE
|Arizona State University||Tempe, AZ||72,254||Public, 4-year||$9,208||Both||View Programs|
Bachelor’s - ONLINE
Master’s - ONLINE
|Liberty University||Lynchburg, VA||64,096||Private, 4-year||$18,562||Campus||View Programs|
|Miami Dade College||Miami, FL||63,736||Public, 4-year||$2,483||Campus||View Programs|
|Houston Community College||Houston, TX||63,015||Public, 2-year||$744||Campus||View Programs|
|University of Central Florida||Orlando, FL||58,465||Public, 4-year||$4,426||Campus||View Programs|
|Ohio State University-Main Campus||Columbus, OH||56,867||Public, 4-year||$9,168||Campus||View Programs|
|University of Minnesota-Twin Cities||Minneapolis, MN||52,557||Public, 4-year||$12,060||Campus||View Programs|
|Texas A & M University-College Station||College Station, TX||50,230||Public, 4-year||$5,297||Campus||View Programs|