Computer software engineers apply the principles and techniques of computer science, engineering, and mathematical analysis to the design, development, testing, and evaluation of the software and the systems that enable computers to perform their many applications.
Software engineers are involved in the design and development of many types of software, including software for operating systems and network distribution, and software for compilers (which convert programs for execution on a computer). In programming, or coding, software engineers instruct a computer, line by line, how to perform a desired function. Software engineers must possess strong programming skills, but are often more concerned with developing algorithms and analyzing and solving programming problems than with actually writing code.
Typically software engineers, working in applications or systems development, analyze first the needs of the user. They then design, construct, test, and maintain computer applications software or systems to meet these needs.
Computer Applications Software Engineers
Computer applications software engineers analyze user needs and design, construct, and maintain general computer applications software or specialized utility programs. These engineers use different programming languages, depending on the purpose of the program. The programming languages most often used are C, C++, and Java, with Fortran and COBOL used less commonly. Some software engineers develop both packaged
systems and systems software, or create customized applications.
Computer Systems Software Engineers
Computer systems software engineers coordinate the construction and maintenance of a company's computer systems and plan their future growth. Working with the company, they coordinate each department's computer needs - such as ordering, inventory, billing, and payroll recordkeeping - and make suggestions about the appropriate technical direction. The engineers also might set up the company's intranets, namely the networks that link computers within the organization and ease communication among the various departments.
Systems software engineers work for companies that configure, implement, and install complete computer systems. These engineers may be members of the marketing or sales staff, serving as the primary technical resource for sales workers and customers. They may also be involved with technical support to the company's customers. Since the selling of complex computer systems often requires substantial customization for the purchaser's organization, software engineers help to explain the requirements necessary for installing and operating the new system in the purchaser's computing environment. One of the major responsibilities of systems software engineers is ensuring a proper level of security across the systems they are configuring.
Additional information on software engineering can be found at the Sloan Career Cornerstone Center Webpage of software engineering.