Web developers have different roles based on the type of work they are doing. Some developers are good at one or more roles, and some are good at many types. Here are the basic pieces of a web application and why they require different types of developers to make them.
Photographers and design-focused people do well in this type of role. Think "artistic".
Displays data from back end
Giving the user what they want/need from the back end is the primary job of the front end.
Collects data from the user
Formats data & checks for issues
This process is called validation and is done before sending to the back end for storage
Sends data to back end
Some processing can be done on the front end, but too much will slow down everything. The back end, sitting on the server, and not seen by the user is far more adept at crunching numbers
Creates User Interface (UI) Elements
UI includes dropdowns, text boxes, images, backgrounds, colors, and anything you would click on. Visual elements are part of the UI, but also what it does. UI slides, animates, appears, and disappears.
Processing & Database
Math nerds, critical thinkers, and those good with logic puzzles do well in this type of role. Think "scientific".
Retrieves data from the database
Common databases: Mongo,PostGreSQL, MySQL, Cassandra, Microsoft SQL Server, Oracle
Processes & formats data
Crunches the numbers
Financial, location, scientific, and other computations are done on the back end
Creates REST end points
A rest endpoint is a web address that allows the front end to receive data easily.
Java, PHP, Node.js, ASP.NET C#, Python, Ruby, C, C++, Mongo, SQL Server and other database technologies
Front End & Back End
An eye for design and a head for numbers are equally important, making full-stack devs harder to find.
Develop front & back end
Full stack developers should be good at just about everything from both lists and tend to be "jack of all trades" types.
Integrates different systems
Even if systems are not compatible, full stack developers can write code that will format data and provide a bridge across these systems, and create solutions that will serve whatever business needs the software needs to handle.
Typically good at using third-party APIs
Application Proggraming Interfaces (API) is a fancy way of saying the programmable part of popular web services like Facebook, Google, YouTube, and thousands of others. Almost every major web platform has some form of an API for developers to build on. APIs are setup for developers to easily get external information into their application to use in novel ways.
Full stack tends to be a buzzword that employers go for, thinking they will get a better developer for the money. Developers can do well in both roles in a lot of cases, but are nearly always stronger in one specific area. Employers tend to not know which type of developer they actually need or want the flexibility of someone who can do both, so they put full stack in hiring ads to attract the best of both worlds, even when the position isn't actually full stack. Many times it works out okay. Many times it doesn't.
What about mobile developers?
Good question. Not all mobile developers are web developers, though many times there is a heavy web-focused component. Mobile developers are a special type of developer who has to know how to deal with some very specific types of problems and creating solutions for them, but mobile developers can be considered full-stack developers in many cases. Some mobile devs are only front end developers, and there are back end devs who create server applications for mobile-only apps, but for the most part a mobile dev has to be fairly good at both roles to get the app to work. There is some cross-over, and it isn't always easy to classify these uniquely skilled developers, but as a cursory example, they tend to be full-stack in most cases we've seen.
Other Related Roles
There are other types of developers but these are the most common ones you'll run into. There are web development architects, scrum masters, project managers, software delivery managers, release engineers, test engineers, quality assurance engineers, development operations engineers (devops), and many other kinds of related roles that connect to and work with web developers, depending on the type of company and software organization inside a company. If you have a specific interest in any of the other types of related people and would like us to produce resources explaining those positions, please let us know.