It takes a lifetime; don’t trust anyone who says they are full-stack.
I’m doing this since 1998. I did a lot of server maintenance, network building, application programming, web programming, and so on. I really do know a lot about how all the things work behind the scene, yet, I don’t even dare to call myself a full-stack developer.
If you want to learn it, you should start from the basics. Here is a list of questions, assuming you are into web development:
- What are computers made of?
- Which part does what?
- How are they inter-connected?
- How computers are connected?
- What other devices are in a network?
- How computers communicate over the network?
- How applications communicate with each other?
- What is the protocol used for communication?
- What are the important parts of a message?
- What software can you use to serve static files?
- How about dynamic content?
- Learn a backend language. This can be a lot of things, from PHP to JavaScript (node.js), but let it only be backend!
- Learn databases.
- Learn about at least one SQL server and its dialect.
- Learn about at least two NoSQL servers. I suggest two because NoSQL gets more and more popular, and you already have plenty to choose from.
- Learn about running environments.
- How to run your code directly on the OS?
- How to run your code in a VM? How to instrument new VMs when you have to scale?
- How to run your code in a containerised environment? Again, what do you have to do to scale?
- Learn HTML. Not just the tag names, but what they do, what they can be used for, how they are rendered.
- Learn CSS. You should know about browser differences, selectors, and all the like. Don’t get surprised when you hear the term “box model” and such.
- Learn native JavaScript. Again, there are a lot of differences between browsers. Don’t use a framework yet, not even jQuery, however tempting it may be.
- Now learn a JS framework of your choice.
And at this point, when you have mastered all the above, you may consider calling yourself a full stack developer. But you won’t, if you have a bit of honesty in yourself.