What Does Full-Stack Developer Mean Today?
With the trend towards coding bootcamps around the world, more and more courses are promising to teach students to become “full-stack developers” in a short period of time. But what does this title actually entail? There are varying definitions of this term today and, arguably, its definition has changed with the expansion of programming languages.
Full-stack developers must know front-end and back-end development, i.e. have the ability to work with both the database and visible browser components of code.
Traditionally, full-stack developers needed to be proficient in the following:
- Servers, networks, and hosting;
- Data modeling;
- How the API (application programming interface) interacts with the real world;
- User interface and user experience (UI and UX);
- Business logic;
- Security; and
- Customer service.
However, given the development of programming, it is now impossible to be a true expert in all aspects of so-called “full-stack development.” Even Facebook, who is famous for hiring full-stack engineers, likely doesn’t expect applicants to be a complete expert in everything. Rather, today’s full-stack developer should be highly familiar and proficient in the following:
- System administration including Linux, cloud computing, background processing, search, caching, and monitoring
- Version control for web development as well as virtualization;
- Back-end web servers, programming languages, and database tools;
- Transforming Photoshop web designs into front-end code;
- To an extent, mobile technologies.
Because there are now so many new coding languages out there, it seems that some common front-end and back-end ones can qualify as “full-stack” for a web developer. This is probably the case, particularly for start-ups, who need versatile developers. Being a full-stack developer is no longer as clear-cut as it once was, and different full-stack jobs likely require different levels of proficiency in the aforementioned elements.