A full-stack developer is someone with the ability to work on all “layers” of software development.
The three layers of a standard web application are:
- Presentation layer 🖼️.
- Business layer 🎯.
- Database layer 🗂️.
Although full-stack developers are usually capable of working with each layer, they are not necessarily experts on anyone in particular.
Generally, the main areas a full-stack developer focuses on are divided into two:
- Front-End Development
- Back-End Development.
Focused on the Presentation layer aka User-Interface/User-Experience. The basic front-end development technology includes:
Usually, front-end developers also work with frameworks/libraries such as
Angular to add further functionality on top of
Concerned with server-side management, and handling the interaction between web and databases. Back-End Development focused on the Business and the Database layer.
The most popular back-end tech includes:
The most popular DB includes:
and @captemulation mention in comments:
Lately it seems the full stack can also include many DevOps components such as containers, setting up automated tests, GitHub/slack/ci integrations, Kubernetes, deployments, etc...