If I tell you “I’m a full-stack developer” what kind of question would you ask me next?
If you’d ask me “Oh! What language are you coding in?” then this article will be perfect for you.
If, on the other hand, you ask me “Which stack are you most comfortable in?” or even “Which tech you mostly use for your back-end?” then I assume what I about to explain will seem obvious to you (and if not just let me know!).
When people talk about Full-Stack developers, they do not often know exactly what this means. In this article, I will try to give a simple explanation of what it means.
What is a web developer?
In the professional field of software engineering which is a branch of STEM (science, technology, engineering, and mathematics), there are “sub-categories” or areas of expertise, and a web developer is one of them. It is probably one of the most popular expertise due to the number of services provided on the internet.
The importance of choosing a role in this field
Web development is not the only one. You can also find software engineers working in machine learning, game development, IoT, blockchain, and many other.
However, the knowledge you acquire in one field does not necessarily make you understand the others.
What makes this role similar to others?
Ultimately, software engineers learn how computers work and how to give them a set of instructions to accomplish a specific task. Even if each sub-field requires extra knowledge. The foundations are the same. Hence, if you have the basic set of skills it is only a question of time and your own motivation to become a machine learning engineer or a blockchain developer even if you were previously a web developer.
Now, web development has also its own “sub-categories”. The most notable ones are:
What does “Frontend” mean?
To put it real simple, the frontend is the part of the website that you CAN SEE.
The frontend of a software program or website is everything with which the user interacts. From a user standpoint, the frontend is synonymous with the user interface. From a developer standpoint, it is the interface design and the programming that makes the interface function.
One of the primary goals of frontend development is to create a smooth or “frictionless” user experience. In other words, the front end of an application or website should be intuitive and easy to use.
Back at the beginning of the internet, most web pages will only have a frontend application. They were called “static” web pages. The main issue comes with its description… Those websites could not load dynamic pages.
For instance, a Twitter with only frontend tech would have been impossible to achieve. Because these technologies do not allow the website to load new tweets made from users or even have a specific home feed per user. The magic of a dynamic website is possible thanks to the backend part of a web app.
What does “Backend” mean?
The backend is the backbone of your web app. It is where the business logic is implemented. It runs behind the scenes and ensures that data is processed in the right way.
In programming terminology, the backend is the “data access layer,” while the frontend is the “presentation layer.”
As we said earlier most modern websites are dynamic, meaning webpage content is generated on the fly. A dynamic page contains one or more scripts that run on the web server each time the page is accessed. These scripts generate the content of the page, which is sent to the user’s web browser. Everything that happens before the page is displayed in a web browser is part of the backend.
Some of the things the backend is responsible for are:
- Answering client requests
- Communicates with the database
- Get the desired data to build a page
- Encrypting data
- Deleting, getting, or updating record on the database
Backend developers have also a wide range of tools to facilitate their job. If you hear about terms such as Flask, Django, Ruby on Rails, ExpressJS, Meteor, Laravel then you’re hearing about frontend frameworks.
Backend + frontend = fullstack
Well, now that you know what the front and the backend are, it is super easy to understand what a full-stack developer does. He or she does both at the same time.
While in big companies like Google or Netflix, you will most likely work on one of the two stacks. Full-stack developers are often seen in startups or small companies which have a small team in charge of the entire tech par of their products.
Pros and cons about this position?
- You hold more value to the eyes of the company as you are responsible for the entire functioning of the web app
- You get to learn more aspects of the tech you work on
- You carry out several tasks
- You have to keep up with the new trends
- You have to be polyvalent and understand both stacks well
- It is harder to be a specialist for a specific field