What is a software engineer
theArchitectRole career roles
Moving from maker to multiplier is a switch that takes time to understand. For me it has taken years to be honest.
I have never understood properly the standard career framework of a software engineer, and because of that, my progression has taken turns that have affected me.
I've suffered a bit because for some years I was in a work relationship that was dysfunctional for me and I felt my progression was stagnated.
With the pass of the time, I have come to understand better the different stages of the career, and what sense to make of the career of a software engineer.
The first thing is:
There is a difference between a programmer and a software engineer.
What is a software engineer?
For example, (definition of coursera)
Software engineering is the branch of computer science that deals with the design, development, testing, and maintenance of software applications. Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users.
So, a software engineer does: * Development * Testing * Maintenance
Applying * Engineering principles * Knowledge of programming languages.
In the same article, the suggest that within the tasks of a software engineer appear:
- Designing and maintaining software systems
- Evaluating and testing new software programs
- Optimizing software for speed and scalability
- Writing and testing code
- Consulting with clients, engineers, security specialists, and other stakeholders
- Presenting new features to stakeholders and internal customers
In short: The Software engineer designs complex systems, from a broad perspective. They are involved in all the phases of software development. The SDLC involves planning, defining, designing, building, testing, and deploying software.
What is a developer?
A developer is a person who designing, planning, and writing code for pieces of software. They can be also involved on planning a piece of the system.
They are involved in the actual process of the creation of software. They can be involved in the design and planning of smaller systems.
What is a programmer?
The programmer is a person who focuses only on the code itself, and does not get involved in planning or design of the system.
Web developers?
They are in charge of building web applications, from the Backend or Frontend side. Yet these are areas of work that require high expertise, the entry barrier is flatter as the one required for other types of software.
The software engineer is the architect
The software developer is the carpenter
The engineer stays close to theory and translates the client's needs into software systems
The developer uses computer science background knowledge, and mixes it with patterns, and creativity to find solutions. They connect on the functional level and are the creative driving force of the process of creation of software
Sources
https://bootcamp.cvn.columbia.edu/blog/software-engineer-vs-developer/
https://www.indeed.com/career-advice/finding-a-job/software-engineer-vs-developer