Computer software engineers write computer programs that instruct computers what to do. Software engineers may be application or system developers. Application developers write software that will be used by end users, such as accounting and customer management systems. System software developers write operating systems or system utilities that are primarily used by technicians or computers themselves. The specialty carries its own set of stresses, but can be very rewarding monetarily as well as in pride of accomplishment.
Software engineering pays well, according to the Bureau of Labor Statistics. As of 2009, the average annual salary of a systems software engineer was $96,620. As of 2008, the average annual salary of an applications developer was $87,900. Both tracks are expected to grow faster than the average for all U.S. jobs between 2008 and 2018, with an estimated growth rate of about 32 percent. Software engineering was listed by "U.S. News & World Report" as one of the best careers for 2010.
The typical work environment is clean and well lighted. Many software engineers work in cubicle arrangements, the typical arrangement for software developers of all kinds. Some software engineers leave the work environment to go out in a support role on customer calls. Some companies provide diversions such as game rooms to relieve some of the stress that accompanies software development.
Software engineering can be very stressful, especially when tight deadlines are involved, which is often. Engineers also meet with demanding users and must be able to communicate reasonably and personably with these difficult customers. Debugging programs brings its own level of stress when problems are difficult to find and fix, which can delay the timely implementation of software.
Most software engineers work 40-hour work weeks, typically from 8 a.m. to 5 p.m. Occasional project demands may require overtime and weekend work. Since most engineers are salaried, it is a con that there is typically no extra pay for the extra work. On the other side of this coin, many companies offer compensatory time off when the project is done.
Software engineers must stay on the cutting edge of technology in order to keep their skills relevant and up to date. This is both a pro and a con. It is a con in that it sometimes requires time off the clock to stay current, and a pro in that most companies pay for formal training oriented toward new technology and skills.
Alan Hughes has more than 30 years of experience in IT including mainframes, programming, client/server, networks, project management, security, disaster recovery, information systems and hardware. He holds a master's degree in applied computer science and several certifications. He currently teaches information technology at the university level.