Being a Full Stack Developer is a great way to have a solid career in tech.

In this tutorial I want to talk to you about all the steps you need to become a Full Stack Developer.

First thing, what is a full stack developer?

A Full Stack Developer is a particular niche in the field of Web Engineering.

Traditionally speaking, on the Web we always had Frontend Developers, and Backend Developers. Sometimes they are also called Frontend Engineers and Backend Engineers.

A Frontend Developer is usually the one that does the CSS, HTML, JavaScript. It’s also the React/Vue/Angular Developer. A Backend Developer is usually responsible for the API, the Database, scaling the Server side stuff. And in bigger teams, DevOps take care of the more configuration, setup and maintenance part of the backend.

A Full Stack Developer is a person that takes care of technologies and procedures that overlap between the positions of a Frontend and a Backend Developer.

It’s broadening the list of topics in an horizontal fashion, rather than going vertically into each topic and dive deep into those.

A Full Stack Developer might have a shallower knowledge of the intricacies of the perfect and more performant CSS selector, compared to a Frontend Developer. But they know more things in other fields.

A Full Stack Developer might work on the React application that powers the web application, and also create the API and manage the database.

Is full stack developer in demand?

Definitely. High demand. Take the Full Stack tag in RemoteOK.io.

Full stack developers are generalists. And there’s always demand for generalists at companies, people that can own a part of the codebase.

Generalists will never say “I don’t touch the API, that’s a backend developer job”. Generalists don’t refuse to learn React just because it’s not their specialization.

Yes, generalists might sometimes learn things that appear unrelated to their main occupation or favorite technology, but over time they just increase their value to the company because they know how to glue together many different tech stacks.

Of course there’s also demand for specialists.

Some companies, like startups, might be more willing to hire a generalist, because maybe you are the third hire and everyone needs to do everything.

Some more established companies might only hire specialists because they need to fill that role, and they have 100s other developers for other specializations.

It really depends on the goal of the company with the new hire.

Makers and Indie Hackers are Full Stack Developers

I come from a background of indie hacking, which basically means I worked on my own applications and products on my own.

In this scenario, you are by default a full stack developer. You build an application from zero to launch and maintenance.

If that’s you, your knowledge is really, really valuable to startups and small companies, because you have a lot of experience with many different topics. Design, UX and marketing included.

What do I need to know to be a Full Stack Developer?

The exact list of topics depends on the definition you give to a Full Stack Developer. Which is not set in stone (unfortunately!).

Some people think about being full stack as knowing:

  • HTML, CSS and JavaScript
  • Rails and Ember
  • Laravel and Vue.js
  • React and Node.js

and all those definitions are true.

It depends on your tech stack of preference.

My definition of a Full Stack Developer knows:

Click those links to know more about each specific thing, because I wrote extensively on all those topics.

You can of course swap Express with any other Node.js server framework and React with any frontend framework.

How to become a Full Stack Developer?

And to the question “how do I become one?”, my answer is: it takes both time and hard work. Learning technologies is a start. Download all those ebooks I wrote, and read them. Take online courses.

Then the most important thing is to practice a lot what you learn.

My recommended way to practice is to do 100 days of code. This is a challenge that requires you to code at least 1 hour every day and create nice little projects along the way.

As days go on your skills improve, so your projects complexity.

Or you can just start the project you have in mind, the big app you’re going to launch next year. The motivation is always key, so starting with the goal of finishing a big project can be beneficiary to your progress.