If you're interested in learning to code, you might hear the term "full stack developer" used. What is a "stack," anyway? What does "full stack developer" mean? How do you become one?
What does "full stack developer" mean?
The term "full stack" refers to all of the technologies that make up a web application.
A web application has the following parts:
- The frontend (or client): This is what you see in the browser when you load up a website. The frontend includes the design of the website and all of the functionality needed for the user to interact with it.
- The backend (or server): This is the computer where the website is running. The server also has a program that contains a set of instructions for what to do when the client asks for something. This is called an API (Application Programming Interface).
- The database: This is where all the information pertaining to the application is stored.
If you were building a mobile or desktop application, the pieces of the stack will be slightly different, but will still have the same structure of a database, a backend with business logic, and a client.
An Example of the Full Stack
Let's imagine you were building a web application to track your collection of books.
- Your frontend would be the website where you would view your collection, add books, and remove them.
- Your backend would be the server that would know what to do when you tried to get, add, or remove books.
- Your database is where your book collection is stored. This way, every time you come back to the app, you don't have to re-enter all of your book information.
If you needed to delete a book from your collection, here's how it would happen in the stack:
- Frontend: You click the "delete book" button. The frontend sends a request to the backend that says, "Hey server, delete this book."
- Server: The server receives the request and says, "Hey database, delete this book."
- Database: The database receives the instruction from the server and removes the book.
Typically, after the request to delete the book is successful, the database tells the server everything went fine, and the server relays that back to the frontend. The frontend will display a message to the user like a popup or a box that says, "The book was removed!"
Full Stack Developer Skills
Because you'll be working on all parts of the web application, you'll need to learn a variety of skills to become a full stack developer. The skills you'll need to become a full stack developer include:
- UI (user interface)/UX (user experience) design and implementation (usually using CSS and HTML)
- API design and implementation
- Data structure design and database implementation
There are many languages and technologies that you can use for each part of the stack. For example:
- Frontend: JavaScript, HTML, CSS
- Backend: JavaScript, Python, Ruby, Java, C#
- Database: For databases, you'll learn a technology rather than a language. Examples include MySQL, Postgresql, SQL Server, MongoDB, and Redis. There different reasons to learn different ones, but MySQL and MongoDB are good places to start.
How to Become a Full Stack Developer
You can become a full stack developer through traditional education, a bootcamp, or self-education (I'm a self-taught full stack developer!).
If you're going the self-taught route, there are a few different ways you can go depending on your learning style. I recommend either starting with a backend language or starting to learn the frontend languages of HTML and CSS.
For a backend language, here are some choices and why they may be good for you:
- JavaScript: JavaScript is used all over the place, from the web to your Smart TV. JavaScript can be used everywhere in the stack.
- Python: Python is both easy to pick up and very powerful. Python is used a lot in data science and academic science, but it's also used all over the web.
- Ruby: Ruby is an extremely fun language to learn. It's got a very gentle learning curve. It is slightly less popular than it used to be, but it's still very possible to make a good living writing Ruby.
- Java or C#: Java and C# are very similar languages in style and use. They are typically used in big enterprise companies like health care and finance. I started my developer journey with C#. C# is also used in the game development platform Unity, so if you have any interest in creating games, it's a great pick!
Which one should you pick? Here's a secret hardly anyone will tell you: in the beginning, it doesn't matter. You will learn a ton from any language you pick and most of the concepts you learn will carry over to other languages you might learn later. I started with C#, dabbled in Ruby, and now mostly write JavaScript. Pick something, do your best, and enjoy the process.
Best Full Stack Developer Courses
To get you started, here are some helpful resources for learning full stack web development.
- Web Developer Bootcamp by Colt Steele - a classic (paid) course used by tons of people to learn HTML, CSS, and JavaScript.
- freeCodeCamp: incredible and free courses about HTML, CSS, JavaScript, and Python. Absolutely essential resource.
- JavaScript 30: A great free course to practice JavaScript.
- The Complete Java Masterclass: The most popular (paid) Java course on Udemy.
- C# Tutorial - Full Course for Beginners - a free 4-hour workshop on C# from the freeCodeCamp folks
- Learn Java - a free course from Codecademy
- Learn Ruby Online - free interactive tutorial to learn Ruby
- Learn Python - free interactive tutorial to learn Python.
Good luck on your full stack journey! Tweet at me if you found this helpful or want to share your progress, and sign up for my newsletter below for practical, actionable ways to improve your career as a developer (or future developer!).