What Does Full-Stack Developer Mean Today?

Image source: https://s3.amazonaws.com/external_clips/attachments/34760/original/full-stack.png?1417393522

Image source: https://s3.amazonaws.com/external_clips/attachments/34760/original/full-stack.png?1417393522

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.

First, it is important to understand the differences between front-end and back-end development. Essentially, front-end development involves the visible elements of a website and uses languages like HTML, CSS, and JavaScript. In contrast back-end development is server- and data-management focused, involving languages like PHP, Ruby, Python, Java, .Net and employing MySQL, Oracle and other tools.  For both of these, developers must be familiar with various frameworks associated with the 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:

  1. Servers, networks, and hosting;
  2. Data modeling;
  3. Databases;
  4. How the API (application programming interface) interacts with the real world;
  5. User interface and user experience (UI and UX);
  6. Business logic;
  7. Security; and
  8. 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:

  1. System administration including Linux, cloud computing, background processing, search, caching, and monitoring
  2. Version control for web development as well as virtualization;
  3. Back-end web servers, programming languages, and database tools;
  4. Front-end web development including HTML, CSS, Javascript, browser compatibility, and responsive design;
  5. Transforming Photoshop web designs into front-end code;
  6. To an extent, mobile technologies.

Many coding bootcamps are claiming to teach “full-stack web development” because they teach elements of both front-end and back-end web development.  For example, Dev Bootcamp’s full-stack course includes Ruby, JavaScript, Ruby on Rails, common JavaScript libraries, SQL, HTML, and CSS.

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.

Source: Peter Yared, Techcruch, Viking Education Inc.; Michael Wales, Udacity; Laurence Gellert; Michael Girdley, Codeup; George Fekete, Sitepoint