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.