Programmers often use the term software engineer as a synonym to describe their profession.

It’s common and I’d say it’s almost equivalent these days.

Software engineering however describes a specific kind of engineering that I could say is parallel to the craft of programming.

You could be a great programmer and not use even one of the main practices grouped under the umbrella term “software engineering”:

  • testing
  • requirements analysis
  • software design

All those things are focused on creating a well defined path towards building reliable, correctly working, and high quality software in our industry.

I’ve been to an engineering school, and I have a degree in computer engineering, so I know how those topics are very highly praised in the field.

Knowing about all those things will make you a more well rounded developer, so let’s dive into each one of them.

I will expand on 3 topics in this module:

  • Software lifecycle
  • Requirements analysis
  • Testing

but I want to say that the topic is really, really, really vast.

Take those things as starting points.

Go to the next lesson