Computer Software Engineer
Computer Software Engineer
Education and Training: College
Salary: Median—$80,519 per year
Employment Outlook: Excellent
Definition and Nature of the Work
Computer software engineers develop and maintain computer software programs, which are coded instructions that tell the computer what to do in logical steps. Software engineers work on a wide range of projects. They work in manufacturing, industry, engineering, government offices, and educational institutions. Sometimes they work on improving computer systems already in use. When asked to develop a program, a software engineer would first analyze the task and apply techniques of computer science, engineering, and mathematical analysis to come up with the best solution. The software engineer would then prepare systems flow charts that show diagrammatically how information would flow through the computer and its peripheral equipment to get the job done. Finally, they would create an outline of the actual program. In a large organization, such as a computer software company, computer engineers would instruct computer programmers to write the actual code that makes up the program and intercede only when the programmers have a problem. Once the program has been developed, the software engineer may test it for problems and examine it for errors in logic or data. Some programs require days to write, while others may require a year or so.
Software engineers generally fall into two camps—computer applications software engineers and computer systems software engineers. Computer applications software engineers develop applications programs that have a specific task, such as controlling a robot arm in a factory. They use different programming languages for different tasks. C and C++ are useful for programs used by scientists, whereas Java is useful for Web applications. Applications software engineers meet with clients and designers to understand the scope of the project before they begin to design a program. They work alone or in teams, depending on the budget, deadline, and the size of the project.
Computer systems software engineers develop the software necessary to run computer systems. They design the software around a client's present and future needs. In a large company they may coordinate each of a department's needs. A systems software engineer may, for instance, design a program that links the inventory systems to the accounting department so that changes in inventory are automatically updated in the accounting records. These engineers typically work for computer design firms or manufacturers that configure, implement, and install computer systems for other companies. Systems software engineers will work with a team of engineering, marketing, manufacturing, and design people to set up a system for the client company.
Education and Training Requirements
Most employers require that computer software engineers have a college education in computer science or software engineering. For more demanding jobs, a graduate degree is preferred. Knowledge of the major computer languages is a must. National certification courses are offered for most major computer languages, including C++, Java, and XML.
Sometimes employers will hire inexperienced college graduates who show promise and train them further at the company's expense. It usually takes a year or more before new programmers are capable of working without supervision. Programmers usually continue their training for the rest of their careers as new programming languages and technologies continually arrive on the marketplace.
High school students interested in pursuing this type of work should study mathematics, computer science, and physics. They should also take computer- programming courses in school or learn computer languages in their spare time. When in college, students should try to gain experience by getting an internship with software engineers.
Those interested in becoming a computer software engineer must be analytical and detail oriented. They must be good at solving logic problems. Because they often supervise programmers and work with team members, software engineers should be able to communicate effectively.
Getting the Job
A good way to find a job as a computer software engineer is to contact the larger computer manufacturers and consulting firms. The federal government has computer systems in operation all over the country. If candidates are interested in a government job, they should apply to take the necessary civil service examination. College placement offices can help graduating students in contacting employers. Classified ads in newspapers and trade journals and Internet job banks are other sources of jobs.
Advancement Possibilities and Employment Outlook
Entry-level software engineers will likely spend their time testing and verifying programs in development. With experience, they will be asked to design and develop software on their own. Those who show management abilities may become department supervisors and managers. Some experienced software engineers start their own computer firms.
According to the U.S. Bureau of Labor Statistics, eight hundred thousand people worked as software engineers in 2004. Employment was expected to grow much faster than the average through the year 2014. New openings will occur as businesses continue to streamline and incorporate new technologies into their computer systems. Software engineers who can develop Internet applications will be in especially strong demand as the Web continues to expand into all aspects of American life. The rapid growth of computer centers that sell computer services to other businesses will also provide jobs.
Computer software engineers work in clean, comfortable surroundings. Most work a forty-hour week that at times includes evenings and weekends. Often they work long hours to meet deadlines. They are expected to work both independently and as part of a team. They meet with many people to define problems, discuss solutions, and explain new programs. Software engineers who work for a consulting or computer design company may have to travel to a client's location to work. Because they spend all day at a computer, they are susceptible to eye strain, back problems, and injuries such as carpel tunnel syndrome.
Where to Go for More Information
Association for Computing Machinery
New York, NY 10036
IEEE Computer Society
1730 Massachusetts Ave. NW
Washington, DC 20036
Institute for Certification of Computing Professionals
2350 Devon Ave., Ste. 115
Des Plaines, IL 60018
Society for Information Management
401 N. Michigan Ave.
Chicago, IL 60611
Earnings and Benefits
The Bureau of Labor Statistics reported that the median annual wage in 2004 for computer applications software engineers was $74,980, and for computer systems software engineers, it was $79,740. According to the "Computerworld Salary Survey 2005" (Computerworld, October 24, 2005), the median yearly wage for computer software engineers in 2005 was $80,519. Benefits generally include paid holidays and vacations, sick leave, and health insurance.