👋 Hi! My name is Tomas.
I have been programming for the web for 15+ years, developed reactive frontend frameworks at Facebook, and absolutely love JavaScript (well, as much as anyone loves JavaScript).
In that time, I've had the chance to teach a few people about frontend development; inevitably they'll ask me, "hey, this is all great, is there anywhere I can go to read more", or worse, "I was doing some reading online and read an article that says {some hyperbole about how a certain framework / library / technology solves all problems}. Why don't we just use that?" And that's when I explain three truths about the frontend ecosystem:
- It's quickly evolving and highly volatile: what was true last year (/ month / week) may not be true today.
- It's very hype-driven: because so few technologies have been around to stand the test of time, technology popularity is heavily influenced by marketing hype instead of robustness.
- A lot of the documentation is targeting first time programmers: For whatever reason, frontend attracts a lot of new developers, which is awesome; however, a lot of the documentation excludes context, tradeoffs, and nuance because it assumes the reader won't be able to, or care to, evaluate it themselves.
That last point, in particular, upsets me. I think frontend has many real engineering problems to work on, and the lack of experienced-developer-facing documentation discourages many developers from engaging with it.
So that's why I'm here: I want to share frontend with you. I wanted to write a document that:
- Teaches frontend: assuming little to no background knowledge.
- Targets experienced developers: including any relevant context, trade-offs, and nuance. If you're just looking to get started, there are better documents for you.
- Is short: I've worked really hard to keep this whole thing front-to-back readable, and under 20 pages.
Perhaps you're a backend developer dipping your toes into frontend for the first time; perhaps you're a frontend developer who wants to go deeper; perhaps, you've just always been curious. Regardless of the situation, if you've been coding for a while and want to learn more about frontend, this is for you.
Lastly, two quick editorial notes:
- While I aim to be fair with this, I'm certainly not impartial. My goal is to pass on both my opinions and their reasoning, hopefully allowing you to bootstrap your own.
- There is a lot to cover and this is very much a work in progress. If you feel I missed something, got it wrong, or just could have gone deeper feel free to DM me on Twitter (link in header).
Anyway, I only have ~19 pages left, so let's dive in!