Full stack developer : Front End developer + Backend developer
Building a web application typically involves the following sections:
The front-end layer involves designing and developing the user interface. This involves using HTML, CSS and JavaScript fundamentally. In practice, it involves using frameworks and libraries like Sass along with CSS and AngularJS, jQuery, React or Backbone along with JavaScript. A developer in this area is called Front End developer
The backend layer involves writing server side code that uses at least one language and framework like Ruby (framework is Ruby on Rails, Sinatra, etc.), Python (Django, Flask or Bottle), Node.js (Express JS), PHP (Laravel), Java and Scala (Play Framework) etc. This layer receives requests from the client (The front end that we wrote previously or mobile apps) and eventually responds. A developer in this section is calledBackend developer.
Then there is the database layer which includes databases like MySQL, Postgres, MongoDB etc. This may require a developer to know SQL or MongoDB query language, etc. To summarise, building a practical application needs a minimum of one from each. Thus a full stack developer can contribute and build an end-to-end application
Full stack web developer simply means one who works on storage(db/cache generally), application/business logic(models, controllers) and the presentation(view, templates, front-end, JS/CSS/HTML).
In general, web development has 3 parts:
Storage – Database usually, sometimes file systems and extremely optimized search engines like Elastic Search/Solr less frequently.
Application/Business logic – Creating models to interact with database, writing business logic to filter or manipulate data, managing application states, developing APIs for consumption if needed and delivering data to the presentation layer.
Presentation – Using templates and the data delivered from the previous section to create html pages, writing JS, CSS to enable interactivity in the browser and present the data in appropriate layouts and designs, collect data from user and pass that to the application layer for processing.
Front-end developers get to work on the Presentation layer only. They deal with JS/CSS/HTML – design and interactivity.
Backend developers get to work on the Storage and Application layer. They write logic to handle and store data from the presentation layer and also decide what data needs to be provided to the user.
Front End developer + Backend developer = Full Stack developer