Roadmap to Full-Stack Development: Roles, Responsibilities, Skills
Tags: webdev, beginners, career, programming
Published: 2021-11-23 14:42:39

**Consider a simple example:** 
You have used *Facebook* at least once in your life, so let us think of building another Facebook, how will you build that?
If you are a complete beginner in coding then it might sound funny. But trust me it's not that complicated.
Let us differentiate the whole process into *3* parts.

1. You might think of building the user interface (UI) of the application, i.e. the part by which the user interacts on the browser.

2. But where will you store the data? Like your friend list, likes count, and comments as well. Where will you store your posts? For storing the data you probably need a database.

3. And the last requirement is business logic which is called backend which includes authentication i.e. login and signup function, setting up a connection between the database and client-side, sending data between them as per client's requirements.

And at last, you need to deploy Facebook on the server so that people can use your application.

If you can work on these 3 processes then you are a full-stack developer.


#Technical Aspect of Full Stack Development
![Full-Stack Architecture](https://media.credencys.com/wp-content/uploads/2019/03/full-stack-development-architechture-layer.png)

######Full-Stack Development is broadly categorized into *3* *layers* and we name them as follows:
####1. Presentation Layer
Also known as Front-End Development. You have to code the user interface of the application, like where to place the button, what contents to be placed for the navigation throughout the application, what should be the color, size, and design of various components, showing out different animations to the user on different operations. In short, you decide and develop how the application will look and feel to your clients.

####2. Business Logic Layer
Also known as Backend Development. You have to decide and develop the logic of the whole application, like whenever a user clicks this button this page will load on the browser, when user clicks on submit- the data in the form should store at someplace so that user can access them later, setting up authentication to provide the security to the application, protecting the routes, caching, fast loading of the application, sending data between client-side and database and many more.

####3. Database Layer
Basically in this role, you perform CRUD (Create, Read, Update, Delete) operations on your data using some API which is regulated by the backend. In simpler terms, it is where you store the data so that you can access and manipulate them when necessary.


#Skills required to become a Full-Stack Developer
![Full-Stack Developer Skills](https://media.geeksforgeeks.org/wp-content/cdn-uploads/20190531175841/Full-Stack-Web-Developer.png)

**1. Presentation Layer (Front-End)** - To master the Front-End part you should have the fundamental knowledge of HTML, CSS, and JavaScript. But as the technologies are evolving you also need to learn a JavaScript framework to build the User Interfaces, most popular JS frameworks nowadays are React, Angular, Vue, and there are other frameworks as well but these are most popular and there are a lot of jobs in the market favoring these technologies.

**2. Business Logic Layer (Back-End)** - This category requires a lot of skill-set, firstly you need to learn a programming language that runs on the server, popular languages like python, java, c++, ruby, and JavaScript as well which runs on the server with a runtime environment called node js.
Then as a backend developer, you should develop problem-solving skills, security, authentication, building REST API, caching, how to handle HTTP requests are the fundamental skills required to have a grasp on the business logic layer.

**3. Database Layer** - Nowadays we have *2* types of databases: 
**i)** Storing data in the form of tables, examples - MySQL, PostgreSQL, etc.
**ii)** Storing data in the form of documents, examples - MongoDB, Firestore, etc.
You can learn any one of them and can surely build projects above them.

**4. Additional Skills** - Apart from Technical skills you should have soft skills as well, to communicate with your fellow developers. You should know about version control systems like git and managing your code history on the cloud using GitHub. You should also learn how to deploy your applications to the cloud servers like AWS, azure which are the most popular ones.

*Full-Stack Development is not like a 100-meter race, instead it's a long marathon. One who is learning and practicing consistently wins the race.
In the Full-Stack journey, the most important skill is to learn new things daily and implement them in the form of projects.*