“all-singing, all-dancing technical wizard” - Ian Peters-Campbell on the definition of a “full stack developer”
If you’re considering learning to code and starting a career in software engineering, then you’ve probably heard the term “full-stack developer.” For many engineers, that title signifies the pinnacle of professional development.
Whether you’re applying to jobs with this title or not, you should probably know what a full-stack developer actually does. We’ll go in-depth on the definition of a full-stack developer so you can decide whether that specific career goal is for you.
What Is A Full-Stack Developer?
A full-stack developer is someone who can build both the front end (the visible features that users interact with) and the back end (the behind-the-scenes processes and data storage) of a website.
Typically when a job posting or job title uses the word “full stack,” they are referring to someone who has both “front end” and “back end” development knowledge. Taken more generally, it can refer to someone who knows how to handle everything from project management to installing the correct operating system on a server. In other words, it is a programmer who can deal with the complete implementation of a website.
Here are the four things that you could include in your definition of a full stack developer. As I mentioned before, Frontend Development and Backend Development are most commonly included.
- Project Management - Can you work with clients / co-workers / designers and actually complete a project? Do you know how to plan timelines, make infrastructure decisions and gather the correct requirements? These often underrated skills are critical to becoming a productive and successful developer.
- Frontend Development - Typically refers to programming languages that the browser can run such as HTML, CSS, and JavaScript. This also includes JavaScript frameworks such as React. This is also often refer to as the “client side” development.
- Backend Development - All the code that runs on servers, such as applications and API’s that power your website. Some backend languages to choose from include Python, Ruby, and Java to name a few. You will also need to be able to work with and create databases, which requires knowledge of a programming language such as SQL.
- DevOps Knowledge - Getting your code from github into production. This may mean installing operating systems (ex. setting a linux server so that your app can run) or managing the complex set of dependencies (ex. Installing the correct version of python) as your code base grows. This can greatly vary based on your setup and there are is whole set of engineers who specialize in this field.
In the same way a programmer can be “full stack” by having experience in each of these skills, they also have a programming “stack”. This refers to the programming languages that they feel comfortable working with within each of these categories. You may have heard of a programmer having a “MEAN” stack - this means they are familiar with M ongoDB, E xpress.js, A ngular, and N ode.js.
There is no one perfect stack to know, but if you are just getting started I would recommend looking a job posts for companies you are interested in working for and learning those programming languages initially.