What do software developers do?
Software developers create computer applications or systems software. According to the IEEE Computer Society, software development is distinct from software engineering in its emphasis on the iterative process of developing software rather than the initial research and design phase. Developers are involved with a software product from start to finish, identifying user requirements and operational specifications, coding the program's components and testing the product.
- Applications developers often work on a team, developing specialized utilities and end-user apps in collaboration with database developers.
- Systems developers produce software for operating systems, including compilers and network distribution programs.
As the high-tech sector matures, the role of software developers is evolving. While all developers apply the principles of computer science and mathematical analysis to the creation of computer programs, this discipline takes many forms in practice.
Many developers specialize in a specific type of program, such as systems software, productivity applications, enterprise software, mobile apps or computer games. The required skill set depends in part on the developer's specialization. Developers who create enterprise intelligence, modeling and integration applications, for example, may rely on SAS programming expertise. Mobile app developers may need to be familiar with Java or C++. Work methodologies also differ by specialty; some developers work within a waterfall process model, while others are skilled in so-called agile or "extreme" models.
What is the job outlook for software developers?
Software developers have been spared the jobs outsourcing that decimated the programming job market. The tech recruiting site WetFeet.com predicts that "software projects -- especially those with tight deadlines, rapidly changing requirements, and applications specific to American regulations and culture -- will stay in this country," while Dice.com adds, "Job seekers who have the mind-set of an engineer coupled with an ability to ensure technology is aligned with business needs are the kind of technologists companies seek to fill jobs." As Mark Diamond of consulting firm Coutoural points out, the top software engineering jobs will "require a comprehensive view of how systems work together and how technology aligns with business needs."
The U.S. Department of Labor agrees. Job prospects in software engineering for the 2008-2018 decade are rated excellent, with 32 percent job growth expected. Computer programmers, by contrast, can expect a 3 percent decline, due in large part to outsourcing.
Developers with both management and technical expertise should fare the best in tomorrow's job market. Key areas for job growth include Web development, electronic data-processing systems software, secure software applications and systems, mobile apps and mobile networking technology.
What is the salary for software developers?
Software developers command just under $100,000, according to various salary surveys. ComputerWorld's Salary Survey 2011 records an average 2010 income (salary and bonus) of $86,395 for U.S. software developers. The Bureau of Labor Statistics generalizes its developer salary data to include software engineers; in 2009, software applications engineers and developers earned a median wage of $90,170, while systems engineers and developers earned $96,620. Salary.com estimates the median salary for an intermediate-level software developer at $75,350, including bonus.
What training or certification is needed to become a software developer?
Formal training is a requirement for a career in software development. A bachelor's degree in computer science, software engineering or information systems generally serves as the entry point into a software development career. Some developers advance their careers with a master's degree in engineering or management information systems.
Continuing education allows developers to keep pace with advances in technology. Training and certification programs focus on particular vendor technologies or development skills. Key developer certifications include:
- SAS: The SAS Certified Base Programmer and SAS Certified Advanced Programmer certifications are especially relevant for business software developers. SAS ranked as the #1 certified skill according to eWeek.
- Siebel: Siebel 7.7 Certified Consultant (SCC) and Siebel 8 Consultant Certified Expert are among the certifications that have been gaining in market value, according to Foote Partners.
- Oracle: Oracle manages certifications in the Java programming language. Formerly Sun Certified Java Developer (SCJD), the new class of Oracle certifications include: Oracle Certified Associate, Java SE 5/SE and Oracle Certified Professional in Java. Specialty certifications exist for Web component developers, Web services developers, business component developers and mobile application developers.
- Microsoft: Microsoft Certified Solution Developer (MCSD) certification demonstrates a developer's expertise with the popular .NET programming framework.
Skilled software developers are in high demand across the economy. In addition to software publishers and tech companies, many enterprises employ in-house developers to build internal software solutions. Training in software development offers a versatile skill set for career opportunities in today's technology-driven economy.