“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.
Learn to Code with Thinkful
Take the proven path to a high-income career with professional mentorship and support, flexible ways to pay, and real-world, project-based learning.
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 MongoDB, Express.js, Angular, and Node.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.
The reality is that you should be constantly adding new full-stack web development skills to your arsenal, both frontend, backend and all the weird in between stuff (do you know about to set up mail forwarding for a domain? How are your bash scripting skills?). You can build up your skillset by trying out online tutorials, enrolling in an online web development course, or signing up for a relevant web development certificate.
If you're ready to become a full-stack developer, check out our web development bootcamp.
FAQs:
What's the difference between a full-stack developer and a web developer?
A web developer could be anyone who knows how to code, whether they specialize in front-end, back-end, or full-stack coding. "Full-stack developer" is a more specific term that refers to someone who knows both front-end and back-end coding languages.
Does Thinkful offer courses in full-stack development?
Full-stack developers typically earn more, so our curriculum is designed to make you a full-stack developer. You'll learn a variety of coding languages, and you'll get hands-on practice building both the front-end and back-end of a site.
How much do full-stack developers make?
According to Indeed.com, one of the largest job boards, full-stack developers make an average $108,183 per year. Web developers who aren't necessarily full-stack tend to make less, at an average $75,874.
Learn to Code with Thinkful
Take the proven path to a high-income career with professional mentorship and support, flexible ways to pay, and real-world, project-based learning.
- Front End Developer Resources
- Full Stack Developer Resources