What is a Full-Stack Developer?
Written by Hannah Westberg
We have talked before about different types of programmers, but we have yet to touch on the elusive “full-stack developer.” Varying definitions of this title exist: from a developer specialized in everything from front-end to back-end; to a developer who has a general knowledge in all steps from concept to finished product; to a fictional figure with a virtually unattainable skill set.
Full-stack die-hards would consider a full-stack developer to have specialized knowledge in all stages of software development. Thus, a full-stack developer would be proficient, if not fluent, in:
- Server, network, and hosting environment
- Relational and nonrelational databases
- How to interact with APIs and the external world
- User interface and user experience
- Quality assurance
- Security concerns throughout the program
- Understanding customer and business needs
Is this possible in Web 2.0? Naysayers argue that with the increasingly diverse aspects of web development, it’s virtually impossible to be a true full-stack developer. Frankly, it may not even be practical to do so.
Others are of the opinion that a full-stack developer is simply someone who is familiar with all layers in computer software development. These developers aren’t experts at everything; they simply have a functional knowledge and ability to take a concept and turn it into a finished product. Such gurus make building software much easier as they understand how everything works from top to bottom and can anticipate problems accordingly. In our opinion, this is the most realistic definition of a full-stack developer.
Often times, this class of developers stems from start-up environments, where a vast knowledge of all facets in web development is essential for a business’ survival.
Clearly, it takes years of work experience in different languages, roles, and industries to reach this level of qualification. Because of this, full stack developers are few and far between, making those who exist very employable and in-demand.
What do you think? Can anyone ever be a true full-stack developer, in the traditional or modern sense? Thoughts are welcomed below.