According to the StackOverflow survey (Yes, the one you are thinking of) conducted in 2018, most developers could be considered “Full Stack”, an intrinsically superior profile, very demanding in knowledge and with high demand in the sector.
We are talking about a developer capable of designing and implementing projects, both on the server-side and on the client-side, which means knowing the strengths and weaknesses of each technology and staying updated as new technologies evolve and/or appear.
Origins of the Full Stack
Starting the current millennium, a term called “Full Stack Developer” began to gain strength. Various technologies, including the web, were among the least complex and there was not much to choose from back then. I will try to translate a little the circumstances of the time:
- Bandwidth used to be up to 50 times less than what we know today.
- There were a few server applications, in which languages and environments varied, but the Client-Server model, development patterns, and techniques used were relatively similar.
- When talking about databases, the term “Relational Model” was inevitable when entering a conversation on the subject.
- Let’s continue … It turns out that someone came up with the idea that the same developer could take responsibility for all development, and that’s how the Full Stack profile was born. In fact, as a curious fact, I was able to know that a great person, such as Facebook, during its expansion stage, apparently only hired developers with this profile, can you believe it?
Since then, the evolution of Back End and Front End technologies has been exponential:
- There has been a fundamental paradigm shift in where the status of an application resides, which has had the Back End as the protagonist. This paradigm shift has also changed the center of gravity of the Full Stack developer’s knowledge, which went from being, at first, a Back End expert with knowledge of Front, to now being more of a Front End expert with good knowledge of Back End.
- Browser’s have evolved, from the mere presentation of documents that we discussed at the beginning of this article, to become a true platform for applications.
After taking a look at the past and assimilating the present, let’s try to answer the next question, are they Myth or Reality?
To answer this question, let’s propose the profile of a Full Stack developer. Assuming that a single person can potentially be more productive than two, three or even four people. Especially from a business perspective, the potential to pay a person a little more to do a job that previously required four is extremely tempting, isn’t it? Now let’s look at what I call DFRV.
But Anderson, what does that mean?
Relax, it is not a mythological term, it is just the acronym for “Realistic Viable Full Stack Developer” and below we will summarize it in some skills that revolve around this desired profile:
1. HTML / CSS
These are the foundation for any developer to create a website. HTML is implemented to add web content, while CSS is used as a personalization tool on any website.
It is considered the mandatory language used by any Full Stack developer. Therefore, having vast knowledge about this will lead you to the destination. As theory-based practical knowledge is always considered a welcoming skill in any sector.
3. Back end
As a Full Stack developer, one needs to have the knowledge related to coding the background process. To get a better exposure, you need to have an immense knowledge of various programming languages. The more you know the better. Some of the languages are Java, C #, Python and many more.
4. HTTP / HTTPS
It plays a vital role in establishing communication between the client and the server due to its implementation in the security sector of any application.
5. Database / web storage
Storage will be quite difficult due to the huge amount of data generated, usually daily. Also, creating any website or app store will be a problem. Therefore, knowing the relationship between databases and memory is crucial.
As all development is done over the Internet, security becomes a major concern. Therefore, each developer needs to have a basic understanding of security. As a Back End web developer, knowledge about security issues is a must.
7. There are others clearly, I invite you to consult them XD
Finally, I want to highlight that each and every one of the profiles is important and has their end.
Maybe I won’t be a Full Stack Developer, maybe I will be an Adaptive Developer, yes! I just made it up XD. And I say this because at the end of the day there is no definitive guide to determine who we are, we determine that ourselves, no matter what develops: Front, Back, DB or all of the above, I am happy if when starting up my ability algorithmically, he managed to solve a challenging problem.