You have often heard the term full stack, especially in job descriptions - Full stack developer required, hiring full stack engineers, or in click-bait articles such as learn how to master the stack in 2 weeks. People often ask - does full stack mean knowing everything? As in all parts of the stack? The answer is partially yes, partially no (somewhere in the middle of membership degree in fuzzy inference systems).
Full stack does not mean mastery of all layers of the stack. It simply refers to familiarity and some experience with most of the layers, especially those that pertain to the job. A full stack web developer may mean someone who knows how to develop and code both front end and back end of websites. A full stack engineer, on the other hand may know everything from system engineering to application development. The web developer does not need a deep knowledge of operating systems, and the engineer isn't expected to design beautiful websites on Wordpress.
The definition of full stack changes not only from job requirements, but from time and development of technology as well. Nowadays. for a web developer, it is essential to know at least one CMS, along with proficiency in javascript.
There is an article at Sitepoint that describes skills that are required from a full stack developer. Here are some of the key ones:
- System Administration
- Familiarity with Cloud services
- Version Control
- Servers and back-end programming languages
- Database and query languages
- Front-end languages, especially HTML5, CSS3, javascript
- UI/UX design
- Mobile Technologies
The above list is not meant to be overwhelming to new developers, it's a just another guide on the internet. It is not possible to master all the above in a lifetime. And truly, full stack developers do not master all the layers. As I already mentioned in the opening paras, some experience and familiarity with the concept is enough. This does not, however, mean that if you know how to copy-paste code from templates you should add front-end skills to your resume. You have to know how everything fits together into an application you developed as bits and pieces to a puzzle. A lot of new web developers, who learnt coding from some free online bootcamp like to call themselves full stack developers. If you are one of them, do this self-test: do you find yourself frequently looking up unfamiliar terms while reading a tech article? Are you still in college? If your answers are yes to both the questions, it means you still have a lot to learn.
Full stack developers will never handle all the tasks in application by themselves. They have their own specialities, such as server-side programming. The benefit of having a full stack developer on your team is that they bring their experience to the table. They know what technologies on different layers of the stack will go best with what, in terms of optimisation performance, cost-effectiveness.
Evolving with the times is an essence of a full stack developer. In order to retain the label, one must stay aware of latest developments, frameworks and tools. Persistence and thirst for knowledge is what makes full stack developers widely sought after, especially among startups and small businesses.