What is Software Engineering?

The more classical software engineering description:
Software Engineering is a methodological process for creating software following an engineering approach, applying the principles of an engineering discipline. Some might call Software development a subset of software engineering (developing part of a larger system, for example.)

The more common usage in practice:
Software Engineering and the term Software Development are often used interchangeably in business to just mean the process of developing software.

What is the difference between computer science and software? engineering? Software Engineering vs Computer Science

Software Engineering could be considered the application of Computer Science. Some consider it a branch of Computer Science. Think of Computer Science as understanding the technical details of how hardware and software work together and the science behind it. Software Engineering is the process of using that information in practice to create software.

See also Wikipedia Software Engineering

What Careers are there in Software Engineering?

  • Software Engineer: Develops software applications and programs using programming languages such as C#, Java, Python, Ruby, PHP, C++, and others. They do work like coding, testing, and debugging errors.
    • Different levels of seniority can be Application Engineer, Senior Engineer, Staff Engineer/ Lead Engineer, Senior Staff Engineer/ Senior Lead Engineer.
    • Some different areas of software development are Mobile Developer, Front end Developer, Back end Developer, Web Developer.
  • Software Architect: If we related this to buildings, this would be something like creating the blueprints. It is about understanding and describing how high-level software systems and technologies will work and perform together. Sometimes, this can be at a lower level of how components will operate together or how sets of components will work together. It can also go up to a level of how products or services will interact together throughout a company (Sometimes called Enterprise Architects).
  • Software Engineering Manager: These are people who are the manager of Software Engineers. The manager doesn’t have to be someone from a computer science or engineering background if it often is for line managers.

Find more information in our book Essential Software Development Career + Technical Guide

Did we miss anything?