Software Engineers develop computer systems and applications.
Software engineers design, develop, test and optimize the computer programs we use every day, e.g., business apps, operating systems, video games, network control systems and social networks. Software engineers can be divided into two classifications: Applications Software Engineers & Systems Software Engineers.
Applications software engineers analyze an end-user's computing needs and develop a custom program to meet those needs. They use a range of programming languages depending on the application's parameters and the platform on which the program runs. Modern languages used by applications software engineers include Java, C, C++, PHP, Objective-C, Perl and Python. Mobile app developers are specialized applications software engineers who develop apps for smartphones and tablets.
Systems software engineers coordinate the creation, maintenance and expansion of an organization's internal computer systems. They organize the computing needs of each department, e.g., sales, inventory, billing & payroll, and control the technical direction of the computer system's development. Systems software engineers may also be responsible for developing an organization's intranet and ensuring system security.
Universities and private tech schools offer a range of software engineer training courses and accredited degrees in system and application development. Compare the top-rated software engineer training programs in the U.S., Canada and online.
a.k.a. Software Designer | Applications Software Engineer | Systems Software Engineer | Computer Software Developer
Software Engineer Salary
Software Engineer Education Requirements
Software Engineer Training and Degrees
Find Software Training by Zip Code
Software Engineer Certifications
Software Engineering Jobs
Software Engineer Job Outlook
Skills & Responsibilities
Typical day-to-day activities and in-demand skill sets for software engineers may include the following:
- Software engineers analyze end-users' needs and develop software solutions within time and cost constraints.
- Software engineers are fluent in object-oriented programming languages such as Java, C, C++, Perl & Python.
- Software engineers program, test, debug, monitor and document changes to computer systems & applications.
- Specialized software engineers, known as mobile app developers, create applications for smartphones & tablets.
- Systems software engineers examine departmental goals and develop custom computer systems for organizations.
- Systems software engineers develop can a corporate intranet to help streamline interdepartmental communication.
- Applications software engineers upgrade existing computer programs to updated platforms with new specifications.
- Software engineers recommend changes and enhancements to existing software systems and computer applications.
- Software engineers coordinate system installation and monitor equipment functioning to ensure project specs are met.
- Software engineers are responsible for system security and data assurance across the systems that they're developing.
Software Engineer Salary
- The average software engineer salary in the U.S. is $90,000.
Average starting salaries for software engineers and related positions:
- Software QA Engineer: $77,000
- C++ Software Developer: $83,000
- Software Engineer: $90,000
- Applications Software Engineer: $91,000
- Systems Software Engineer: $91,000
- PHP Software Engineer: $91,000
- Firmware Engineer: $92,000
- Perl Software Engineer: $93,000
- Mobile Application Developer: $94,000
- Python Software Engineer: $94,000
- Ruby on Rails Software Developer: $94,000
- Java Software Engineer: $95,000
- Objective-C Software Engineer: $96,000
- Senior Software Engineer: $96,000
- Android Software Engineer: $96,000
- Lead Software Engineer: $98,000
- Web UI Software Developer: 104,000
- Principal Software Engineer: $104,000
- Senior Java Engineer: $109,000
Top five best paying U.S. cities for software engineers:
- El Centro, California | Salary: $128,000
- Haverhill, Massachusetts | Salary: $126,000
- Dalton, Georgia | Salary: $117,000
- San Jose, California | Salary: $116,000
- Punta Gorda, Florida | Salary: $112,000
The hourly wage for software engineers ranges widely, from $20 to $130 or more per hour, depending on geographic location, experience and current industry demand for known programming skills and languages.
Explore a deep dive comparison of software engineer salary ranges.
Sources: U.S. Bureau of Labor Statistics Occupational Outlook Handbook 2012 - 2013 • Indeed.com
Most employers require software engineers to hold at least a bachelor degree in software engineering, software development, computer programming, computer science or a similar programming-centric field of study. Hiring managers for software engineering positions may also require a portfolio with documented samples or live links to your best applications and software development projects.
Marketable skills to look for in a software engineer education program include object-oriented programming in Java, C, Objective-C, C++, Perl & Python, user-interface (UI) design, human-computer interaction, web development, project management, network & database fundamentals, systems analysis, game development, interpersonal communication and technical writing. The subject matter in software engineer training programs works very well in the online learning format.
Research and compare software engineering courses and degree programs online and your area.
Training Courses & Degrees
Browse the top-rated undergrad & graduate degrees, professional certificates, online programs and self-paced training courses matching the software engineer education requirements and career path.
Software Engineer Training
Program Highlights & Certifications
Find Software Development Schools
Software Engineer Certifications
Highly desirable certifications for software engineers may include the following:
- Oracle Certified Associate (OCA): Java SE 7 Programmer
- Oracle Certified Professional (OCP): Java SE 7 Programmer
- Oracle Certified Professional (OCP): Java ME 1 Mobile Application Developer
- CIW (Certified Internet & Web Professional) Perl Specialist
- CIW Web Foundations Associate
- CIW Web Design Specialist
- CIW Database Design Specialist
- CIW Web Development Professional
Software Engineer Jobs
Your software engineering education & experience qualifies you for a variety of in-demand positions including:
- Software Engineer: Browse and apply to software engineer jobs
- Systems Software Engineer: Browse and apply to systems software engineer jobs
- Applications Software Engineer: Browse and apply to software app engineer jobs
- Web Application Developer: Browse and apply to web application developer jobs
- Mobile App Developer: Browse and apply to mobile application developer jobs
- Java Application Developer: Browse and apply to Java application developer jobs
- Python Software Engineer: Browse and apply to Python developer and engineer jobs
- PHP Software Developer: Browse and apply to PHP developer and engineer jobs
- Perl Software Engineer: Browse and apply to Perl developer and engineer jobs
- Employers & Hiring Managers: Post job openings and find candidates at a discount
Software Engineer Job Outlook
Employment for software engineers is expected to increase by 22% from 2012 through 2022, placing it among the nation's fastest growing career paths. Demand for software engineers will rise along with technological advancements in computer networking, for example, the increased adoption of virtualization strategies will create demand for applications software engineers who can develop effective and secure web- and cloud-based programs. Likewise, as the increased sophistication and adoption of electronic data-processing systems in business, government, health care, telecommunications and other industries continues to rise, the responsibilities of implementing, safeguarding and updating these systems will fuel demand for systems software engineers for years to come.
Proliferation of wireless and mobile technologies will play a big part in job market growth for software engineers. As mobile devices continue to become increasingly capable and accessible, the demand for new and innovative mobile apps – and talented software engineers to develop them – will continue to rise. Mobile application development represents one of the largest skills gaps in the global job market, meaning there are currently more mobile software development job opportunities than skilled developers to fill them. Also, as smart-phones and tablets continue to become an integral tool in the business environment, software engineers will be required to integrate existing computer systems with emerging mobile technologies.
Source: U.S. Bureau of Labor Statistics' 2014-2015 Occupational Outlook Handbook (BLS.GOV)
- Mobile App Developer
- Computer Programmer
- Video Game Designer
- Web Developer
- IT Security Specialist
- Database Administrator
- Network Administrator