Hello, is someone able to tell me the difference between developer and engineer ?
In a generalized comparison, think of the a developer being the link between user and user-interface. They deal with the hands-on concerns (UX), accessibility, SEO, and all matters front end. More the content and aesthetics side of things.
The engineer is the link between the technologies and the developer. They deal with the hands-off concerns of data management, security, server maintenance, software engineering, and all matters back end. More of the science and technical side of things.
Thanks for your explanation.
You said engineer is more like a technical back end person, so why do we say “front-end engineer” ?? isn’t it contradictory ?
It’s a contradiction, in a way. The front-end engineer is still focused on the software that drives the site in an AJAX or serverless environment. Frameworks often bring down all the data and then drop their host port. In this sense they are running 100% on the client with no server. The view is taken entirely from locally stored data. They do install a payload though, which drives the framework, itself. For instance
react-dom.js that drive the react environment and the HTML DOM interactions.
Same applies to any other framework. We need to import them before they get called. Once present, they are essentially function objects like jQuery. The ECMA engine is just given a different set of abstracts, as directed by the creators. The advantages at this point would take an engineer to figure out. Pun intended.
The model is the program component, the view is the viewport component, and the controller is the data component. Under this paradigm we can manage a serverless site interaction. If the user refreshes the page, the changed files are downloaded and the view updated according to what data may have changed, mostly, but also what software may have changed, too.
It’s engineers who invent this sort of stuff, even while we hobbyists, interns, apprentices, practitioners, &c. are able to learn it and implement it. Facebook engineers developed React.js, and Google engineers developed Angular.js. Their interns were doing a lot of the typing, but they were doing the heavy thinking. Yes, front end, for sure. But still disconnected from the user. The developer is focused on the user experience. It’s the demands that surface in the UX world that are passed on to the engineers to find a way to solve. There isn’t really a dividing line between the two as much as they are supporting roles.
I asked this question myself circa 2010 and was interested to see if the general consensus in the community had evolved since then. During my search this time around, I found the following two articles, which lead to the following summary:
A Software Developer
Working on either (or both) front-end or back-end, a developer understands that coding is one part of their responsibilities. Among these are also documenting features, conceptual analysis, in some cases, design, testing and debugging, and optimization.
A Software Engineer
Instead of paraphrasing this one, I’d offer a quote directly from the second article provided above:
“… a software engineer has a solid educational background and applies engineering concepts to create software solutions. Software Engineers tend to have a much wider experience in multiple domains. Similar to what you would see with a full-stack or a MERN stack developer, you might see a back-end engineer, a systems engineer or a network engineer. There is less room for creative solutions and instead, they need to be more systematic.”
The first article also echoed the same traits:
“This sort of grounding puts more responsibilities on a software engineer as we expect an engineered piece to be reliable and radiate confidence. No art and creativity we can tolerate from a developer is expected from an engineer. In some countries, you have to be certified to be called an engineer because this profession is often connected to life-threatening situations if something goes wrong. While this is not yet the case with computer and software engineering, we can clearly see how they will reach that point once we delegate even more decision-making functionality to computers and software.”
Hope this helps.