A software developer usually works on more than one platform or technologies in the organization he is working on. But those platforms or technologies usually fall under two categories.
The Front End and the Back End. Or Client Side and Server Side.
Front End Development
The front end is everything to do with what the user sees, including design of web pages, user interfaces and the entire user experience. Designing and maintaining the user experience is an important part of any software product, and it’s generally referred to as Front End Development.
Front End Technologies are HTML, CSS, Vue.JS, EmberJS, etc.
Back End Development
The back end, or the “server-side”, is basically how the software product works, updates, and changes. This refers to everything the user can’t see in their interface, like databases and servers.
Developing and maintaining the databases, servers and of course the actual business logic of the application is known as back end development.
Back End Technologies are much more varied. We have PHP, .NET, Java, Python, NodeJS and many more. It usually comes down to developer preference as all these tools are quite versatile.
In an application like Google Maps the Front End would be the actual application on your Android or iOS phone. The ability to scroll, pan across the loaded area of the maps, the option to search for locations and type in your destination are all to do with the front end. But once you’ve typed in your destination, the back end takes over. The data from the GPS module on your phone and your typed in destination are sent to Google’s servers. The back end receives this data. It determines your current location from the longitude and latitude values from your GPS. It determines the shortest route to your preferred destination. It also calculates all alternative routes and sends it back to your mobile phone. Then the front end takes the responsibility of displaying the optimal route along with alternatives in an easy to understand at a glance format.
Full Stack Development
Full stack developers have the ability to design complete web application and websites. They work on both the front end and the back end of their product of application. It naturally follows that they are well versed in technologies of both categories.
A technology stack is the set of technologies used to build an application. A technology stack usually comprises of a Server Platform, a Front End framework, a Back End language and a Database.
Here are the most popular Full Stacks used:
MEAN Stack: MongoDB, Express, AngularJS and Node.js.
MERN Stack: MongoDB, Express, ReactJS and Node.js
Django Stack: Django, python and MySQL as Database.
Rails or Ruby on Rails: Uses Ruby, PHP and MySQL.
LAMP Stack: Linux, Apache, MySQL and PHP.
Tags: back end, front end, full stack