Modern web development seems daunting at first. A brave wanderer is expected to learn a lot of things in order to qualify as a knowledgeable web developer. And even more if they are after the notorious "full-stack" role.
The term "full-stack developer" is so relevant in web development for these very reasons: the "arsenal" or the "stack" of things needed to be put on top of one another in order to make a web app work is so large, just "developer" doesn't cut it. You have to know or at least understand several layers.
With full stack comes the full responsibility.
The speed of progress and innovation in this field makes things somewhat worse. For one technology conquered, you face three new ones next year. This hydra appears to be indestructible, but seeing it as a constant opponent is actually the wrong thing to do. Don't fight the hydra, but rather learn to harness and ride it. Learn the underlying principles that don't change for decades. Once you dig deep enough, things become clearer and much more stable. And simple, for that matter.
When I started learning web development, I felt lost and confused for a long time. Books and courses were teaching me to make websites or interact with databases or make requests, but the more techniques I learned, the more questions I had left with.
Here are some of the questions I had:
- does it always work like that or was it some special case?
- who decides how HTTP works?
- is "server" a special thing or… what is it?
- is "database" a program? a file? what makes it a "base"?
- what the heck is DNS?!
- okay, this works on my computer? how do I make it work on some domain?
This book is created to help you see the big picture. To clear the fog of war, rise above the minutiae and understand what the hell is going on.
It is written for two groups of people:
- Absolute beginners who are about to start their long and fascinating journey into web programming. You will see the landscape ahead from 50 000 feet.
- Novice web developers who feel like they don't see the whole picture or struggle to connect the dots.
In other words, this is an attempt to lay the foundation. I hope you'll like it.