Full Stack Developers and Where to Find Them
Take a look to see whether full stack developer means the same to you as it does to this author, and what it takes to become one.
Join the DZone community and get the full member experience.Join For Free
In response to the question of what a Full Stack Developer is, we first must define what we mean by “stack." A stack relates to all of the elements needed to run an application. This involves frameworks and components internal to an application, such as the UI frameworks, MVC frameworks, data entry libraries, etc. It can also involve things external to an application, such as the operating system, application server, and database.
Thus, a full stack developer is a developer that works in all parts of an application, from high-level frameworks all the way back to the servers that host the application components. In some cases, the definition of a stack is limited to the internal components of an application, not including things like servers and operating systems. Nevertheless, the concept is the same: full stack developers are capable of working all over several layers of the stack. They are not limited to a single aspect, such as the UI.
At this stage, the question becomes: can anybody truly be a full stack developer? After all, applications and platforms can be very strong and complex.
The reality is that no individual can be a professional at everything. There are too many layers in modern systems. Gaining and keeping expertise in all of those areas seems impossible. Furthermore, expertise in one particular area can go stale over time. For example, if I work heavily on web UIs for a length of time, I may become a specialist. But, when I move on to another area, such as data access, my expertise in UIs will fade. This is true not only because it is no longer fresh, in my mind but also because technology and practices change over time.
So then, is there genuinely such a thing as a full stack developer? I think the answer is yes, but not in the sense that the developer has expertise in every aspect of the stack. Rather, a full stack developer is someone who has knowledge and experience in most or all layers of the stack and is secure working in any of these places. Also, this breadth of knowledge helps the developer learn easily and move among different layers of the stack.
Is a Full Stack Developer Good or Bad?
Is this a good or a bad thing? Does this mean that a full stack developer is a “master of nothing?”
Even though it’s true that a full stack developer has knowledge of the complete stack, this does not actually equate to a lack of expertise in particular areas. Instead, I have found full stack developers typically do have expertise in particular areas, and are the very best in those areas.
I believe this is true not because full stack developers are simply excellent developers, but because of the person. There are specific traits required in order to become a full stack developer, among them are flexibility, easy understanding, and self-inspiration. Working throughout the stack can be very challenging, and these characteristics are needed to be successful in doing so.
Moreover, you can see that these characteristics are not special to full stack developers. Rather, these are things that can help build any person successfully. That is why I say that an “expert” full stack developer is far more about the person. What can make this person precious is not merely their knowledge and experience, but their personal traits that helped them become a “full stack developer.”
Full stack developers are a resource to any team. Not only do they have large ranging knowledge and experience, but they also tend to be adaptable, self-motivated, and rapid learners. In addition to being good developers, these characteristics also develop them into good people to work with.
Opinions expressed by DZone contributors are their own.