Hey Everyone, I am back today with a post under the developer category for you all. I hope you must have heard somewhere the term Full Stack Developer, or simply Full-Stack. Most of the people say like Full Stack Web Developer. If you have heard you may have knowledge of what it means, but if you have not heard of them, don’t worry. I will, in this post of mine, I will throw a light on the same to let you all know of what the heck is Full-Stack. Also will tell about some of the differences between other developers and full-stack developers
So let us start with some terms, like what is a Stack, in terms of Developers language.
The stack we generally refer to the programming language and tools we require to build a software or an application, that the end-user can use like WhatsApp, a chat application or Gmail, a mail client application. Ex like For simple web project, we need a combo of HTML, CSS, JS at a minimum may be accompanied along with bootstrap or JQuery. These together build up a stack of language and tools. For some higher project, there may be some packages that are simple modules or plugins to provide ready-made functionality.
Above we told above about the stack, now full-stack means the combination of everything that is required to build a project like HTML, CSS, JS, Bootstrap, and JQuery. And Full stack we use often for a person, a single person, who knows everything required to build a project. For more complex projects, these front end tools are accompanied along with Backend tools like Database, Server. So knowledge and ability to work on these along the front end is the power of a full-stack Developer.
I Will not talk more about here for backend and front end, so if you want to know, go read my old post at the link below.
So now you all clear with what is full stack; let us discuss some difference between full-stack and Other Developers.
Note: Here Other developers are referred to as developers working on a single language like PHP or like SQL for DB, and not everything.
As you all know startups can be anything from a team of 10 people to single people or more than 10 people, but they all start with a great idea but a small budget. So most of the startup teams are small teams, that can be hired for the initial investment. The Startup at beginner stage requires the idea to be shaped and built from scratch, So there are no schedules or planned work like, This week The work be done on UI, the work is done on the backend, or the work is done on SEO. Also, there are no dedicated people required, as the product is still in shape.
There may be at a point, the backend needs to be worked on, some time Ui needs to be worked on. So simply hiring two people, one for backend, one for the front end is simply a waste of resources, as well time, because, the one needs to sit free, waiting for others to do their task. That’s why most of the startups look for Full stack as he can flexibly work on UI as well backend both, when and as required.
So he always keeps on doing work and resources as well time and money saved, for employing multiple employees, for a single task. So as the Full Stack can do multi-task, he is the backbone for any startup.
As the tech is changing proportionally to time, or I say two-four times than previous times, there is a need to be updated with the latest stack of technology. The same is applied for Programming, the language we may choose for a project one week ago can be replaced by the latest version or a completely new language having better features than the older one. So to tackle the changing environment, it is necessary that people learn new things as they come and go.
So let us take a simple example of SQL and CQL, both are database languages. A person dedicated to working on SQL may feel difficult to move to CQl, or he may not change at all saying SQL is better. As he was dedicated to learning and working on SQL only, and not learning new. Whether he learns or not technology will keep changing, so in case the SQL dev needs to be replaced with CQL dev to support the changed Stack.
But a full stack on another side is doing multiple things and is ready to change to new languages as they come because he is flexible to work with anything. Also, he is flexible with changing tech and can adapt to a new stack or language faster, when required.
There are many principals that any developer needs to follow but they can be generally differentiable like :
- Language-based Principals
- Programming based Principals
Language-based principals are like, how the loop works in a language like C or if-else in C, whereas Programming based principal is like how loops work in an application or an if-else loop. There is a principle like SOLID for programming based, that are followed by mostly every full stack Developer. Solid is a set of programming principles that helps to write code to a full-stack developer, with any language he may choose.
Language-based principles change based on language, like there may be different principles of a C Dev, vs Angular Dev. But Programming based principles stay the same for every language. For example, MVC principal says, Model stays the same only view changes, in easy terms The UI of Whatsapp keeps changing but a model of messaging from one end to other end stays the same, there will be always a sender, and a receiver connected to each other. So, a full stack developer never has issues with changing stack, because he follows the same principals for every stack he uses, which helps him adapt better to change than others.
As a full-stack working on multiple things, he knows about multiple things like how things work in UI, how animations are made, how APIs are connected. whereas A front end developer only knows about UI and animations whereas back-end developer knows about APIs, connecting to the backend, etc. Both may or may not know each other’s work.
So full-stack developers have the advantage of multi-domain knowledge over others. He has knowledge of like, front end, database, backend, etc.
A full-stack developer accompanied by other dedicated developers can be a part of a team. So there can come issues while development, maybe in front end or back end, at the times, a full-Stack can help better. He may not know the exact solution for a problem, but still, he can suggest some resources, which help the team to reach one step ahead of solving the issue.
There may be issues, like A UI built by front end dev not able to display data from API created by backend dev, So a full stack can help in identifying the issue here. In many cases, he can help the team and back any project with his knowledge.
As you all know, the one thing that works for me may not work for you, as an example of a simple color, the color I like may not be color you like. Another example is like, a tablet is good for a designer, over desktop for a developer. Similarly, in every project, there is need for using a different stack, like HTML/CSS/JS for simple web page whereas PHP along with these for dynamic application.
So selection is the most important factor before starting any project, as once it is under process, changing to some other stack may not be possible if possible not cost worthy. So a PHP dev will say take PHP, whereas Python-Dev will say take python. But a Full-stack will study both and say like, python has more packages, community as well as support available over PHP for a big project versus, PHP for a small project. He may also suggest using packages and generators that provide, basic functionalities ready than creating applications from scratch, like Jhipster, Django, NGX-starter, etc.
There are a long time gone, when people make use of Computers or laptops for browsing over the internet; But now more craze has for mobile and tablets. So The product needs to be available on the different platforms like, Web, Android, IOS.
It is not true for everyone, but most of them, the full stacks can build multiplatform apps like web and mobile. They can develop multiple platforms easily as they have knowledge of both, if not already, they can learn faster to make the same.
Whereas a web developer may not be able to create a mobile application, and same applicable for a mobile application developer to create a web. So nowadays, companies prefer full stack more Than hiring the web, and mobile application dev both. So the full stacks are adapt to working on multiple platforms than other developers.
Up to this point after reading, all the above points you may have realized this. If not, you may be thinking about how it affects career, are these really important? So the answer is yes, this affects very much for the same. Full-stack have a better and secure career over other developers and opportunities as they can
a. adapt quickly to new tech
b. They are flexible
c. can work on multiple things
d. a better leader and team helper
e. better decision-maker
The salary may not be more than other developers at the beginning; but it increases with the skills and knowledge and depends on dev itself, of how quickly he grows. Whereas other developers may start from high salaries with a limited growth.Also, career opportunities for the full stack are more.
Other developers are mostly employees in MNC’s like IBM, HCL; where everything is running from long and there are the same procedures for doing anything, there may be new development but not more often. So Dev stays Doing single tasks at a job like monitoring logs, monitoring DB, Cleaning data, Help Support.
Whereas Full Stacks are hired by startups; mostly new startups where there is a budget for only one or two devs; and full-stack has more advantages over other developers. Their tasks at a job vary from time to time like; sometimes setting up tables in databases, sometimes creating UI, sometimes working on Functionalities.
Finally, the most important difference. Think of a game like a snake that has the same single-stage, you need to play daily repeated for like days. You will like it at the start, you will still like after 4–5 days, then so on and later. You start getting bore of the same, after long like a month. Also, there is no option of a new game, so you are have to play the same game whether you like or not. Same is for the devs working on like same things in MNC; like creating queries daily, monitoring daily. The task you enjoy, but gradually as you become experts in same; you may not be happy as at the start; but you need to do still because it is your job paying you.
Now take a game like GTA, you can complete missions, ride a bike, ride car, in simple terms; you can change what you playing and you have to change based on need. Same applies for jobs for full-stack; they keep on doing stuff; new stuff changing from one thing to other, so you never have to bore.
So a full stack enjoys his work more, than other developers. There may be an exception though for some developers.
Not all Full Stack is full Stacks, some can be
a. Full Stack Mobile Dev
b. Full Stack Web Developer
c. Full Stack DevOps
d. Full-Stack Software Engineer
So, having knowledge of multiple languages is also a full-stack; and multiple platforms or DevOps and software are also a full-stack.
You may think I am being biased to One side supporting only Full Stack, but no being myself a Full Stack Developer; I am just sharing what I learned from experiences of mine working in different environments. Don’t feel bad if you are not a full-stack; you can also become the same if you do hard work and try to learn things. So have a happy coding life, enjoy what you do.
Feel free to share what you think, in the comments below. If you like the post, do share it with your loved ones; so my thought can reach more and help everyone. Keep visiting back for more updates coming and new posts like this. Thanks for reading!
Note: This is just my views, and I may not be right, so just let me know in the comments.
Originally published at Tekraze.com