- Software Engineer - a person who designs and writes and tests computer programs
- Software Developer - No Definition
- Analyst - a person who analyzes
- Programmer - a person who writes computer programs.
Long ago we compartmentalized the field. Analysts analyzed the needs of the customer and came up with the design then handed it off to programmers who actually created the application. As the field has matured we learned a little bit about ourselves, we all like to design but secretly need to create too. Software Engineers and Developers have come to embody a unified process of design, development, and implementation. As you go up the technical ladder you design and mentor more than you write and test, but those things do not go away absolutely.
What is the difference between engineers and developers? At first glance an engineer is a highly exact individual from a school of engineering. However, in reality the difference is field of work. Web companies, business groups, and application centered hardware agnostic positions tend to be described as Software Developers. Technology companies and hardware centered positions tend to be described as Software Engineers. As members of the software field both have to design the application to the users specification, write the application, and develop tests of that system. Its the nature of the field.