DEV Community

Discussion on: What's the difference between Front-end and Back-end development?

Collapse
peerreynders profile image
peerreynders • Edited on

Just to augment what's already been stated (from Front end and back end):

  1. Back-enders work with only one environment, their server. They have the option of changing their environment; for instance by installing new software or upgrading the hardware.

  2. Front-enders work with an unknown number of radically different environments, ranging from state-of-the-art desktop computer to three-year-old, crappy phones with limited memory and processor time. They cannot change these environments because they have no power over their users’ browsers. Still, their code should work in all of them.

Either area has it's own unique challenges and have gotten more complex over the years. The front end is known for "JavaScript fatigue" and there are always the obligatory "How it feels to learn JavaScript in 20xx" articles but the back end added over the years containerization, container-orchestration, cloud-native computing and dev ops into the mix.

This typically isn't an issue in larger organizations where individuals can focus and master a particular area (e.g. database administration) but can be challenging in smaller teams where everybody has to fill multiple roles - lest they use some SaaS to take care of the some of the details (trade off: that vendor now controls their view of the world and dictates the required skill set).

And even when you can specialize you have to communicate with other people. Members of a product team will tend to have varying technical expertise, so while it isn't necessary to become a "fullstack developer", full stack awareness makes team communication a lot more effective. Ultimately all these bits and pieces have to work together to create a working whole.

The reason why front end is often seen as "easier" is because it seems easier to get started - learn HTML/CSS/JS and your off to the races, right? This overlooks the variety and combinations of rendering options on the web, each of which is suitable for different use cases.

"Just learn React!" somebody says;

"Indeed, we've started to notice that many newer developers aren't even aware of an alternative approach, as they've spent their entire career in a framework like React."
SPA by default (Hold)

Also the industry doesn't even apply the term front end developer consistently. At the very least a front end developer has to communicate effectively with visual design and UX experts. Visual design is often acknowledged to require a very different mindset from development. Yet there is a growing demand for designer-developers - a designer-developer is more versatile and one person is cheaper than two or three but it also cuts communication overhead which can speed things up (unless there is too much to do for one person at any one time).

It's not that one has to know everything to get started—far from it. But it should be clear that either way working in the back end or front end area is a continuous journey (and not necessarily strictly separated) of learning (often resolving fewer "known unknowns" than it adds).