In the context of web development – a full stack developer is one who can handle most of the things needed in front end and back end development of a web application.
There is no hard and fast rule to say that you have to learn this set of languages and platforms and you are a full stack developer. The term full stack denotes that you need to be able to do anything for developing a web application.
Requirements for web development vary from case to case. Some responsibilities of a full stack developer are –
Develop the backend: Create the backend components. The application code, servers and databases are the main components in this section.
Integrate front end and back end: Write the necessary code or create the configuration needed for connecting the back end code with front end.
Implement security: Create the security protocols and implement coding standards.
Debug: Debug the entire codebase where necessary.
Apart from that, a full stack developer is needed to pick up newer technologies from time to time, depending on the requirements of the project. He/she is also required to work with other professionals in the team to integrate components or plugins to the system.
A full stack developer is usually a freelancer, teams hardly look for someone knowing all aspects of development.
But some teams do pick up fullstack developers and support them with other professionals in the team.
It takes time to become a full stack developer. Development is not easy and it needs tremendous practice.
Learning front end development is a full time job itself and there are many frameworks and technologies to choose from. Same with back end.
The choices for backend development are many. Programming languages like C, C++, Java, Python, PHP etc. are the heavyweights in this category.
Then comes the server side stuff. Apache, Nginx are the best choices for doing any server side thing, though some new entrants are making their presence felt.
An application will probably need a database to store and retrieve data. So you need to be acquinted with MySql, Oracle, MangoDB etc. Remember that you do not have to be an expert in all these choices, just pick one and be the best in it.
Lets talk about stacks. LAMP is a stack for back end developers. What that means is – when you know LAMP you know the full back end stuff required to make an application work.
There are several development stacks on the market today. The MEAN stack, the MERN stack, the MEVN stack etc.
MEAN – MongoDB, Express.js, Angular.js and Node.js
MERN – MongoDB, Express.js, React.js and Node.js
MEVN – MongoDB, Express.js, Vue.js and Node.js
Choose the one you are comfortable with and keep working on it. Specializing on any one is enough to call you a full stack developer.